The small print behind the report: how each answer was captured, how the three marks are decided, and the files.
| Statement | Status |
|---|---|
| OpenAI documents separate crawlers for search (OAI-SearchBot), training (GPTBot) and user-initiated fetches (ChatGPT-User), each controllable in robots.txt. | Documented by the vendor |
| Google documents Google-Extended as a robots.txt token for use of content in Gemini models, separate from Google Search crawling. | Documented by the vendor |
| Allowing those crawlers is a precondition for being used as a source by the engines that honour them. | Reasonable, partly documented; not proof of citation |
| Clear factual pages, accurate structured data and consistent business details raise the chance of being linked. | Hypothesis: test with a baseline, one change, repeat runs |
| A specific wording, schema type or llms.txt file moves these results. | Hypothesis, unproven. No placement is guaranteed |
Checked 2026-10-31T15:39:59Z. one GET each for robots.txt, the sitemap and the homepage, with a neutral browser-style user agent; no crawler user agent is spoofed. robots.txt returned HTTP 200. Saved robots.txt, crawler.json.
| Crawler | Home page | /blog/ | Rule group |
|---|---|---|---|
| OAI-SearchBot | allowed | allowed | no matching group (robots.txt allows by default) |
| GPTBot | allowed | allowed | no matching group (robots.txt allows by default) |
| ChatGPT-User | allowed | allowed | no matching group (robots.txt allows by default) |
| Google-Extended | allowed | allowed | no matching group (robots.txt allows by default) |
| PerplexityBot | allowed | allowed | no matching group (robots.txt allows by default) |
| ClaudeBot | allowed | allowed | no matching group (robots.txt allows by default) |
This reads the rules a site publishes. It does not prove what a crawler fetched (that needs server logs), and a CDN or firewall can still block a crawler robots.txt allows.
Before the app capture, the same ten questions were also sent to the OpenAI and Gemini developer APIs with web search on, twice each. This is a different product from the apps: the apps add their own instructions, memory, personalisation and interface. The numbers on the main page never include it. In that test Plausible was mentioned in 36 of 39 answers and its site linked in 29; 1 of 40 calls failed (shown as failed).
| Run | Model | Answered | Tokens in / out | Est. cost |
|---|---|---|---|---|
| OpenAI API run 1 | gpt-6-luna | 10 of 10 | 192,804 / 7,096 | $0.209 |
| OpenAI API run 2 | gpt-6-luna | 10 of 10 | 211,547 / 7,079 | $0.241 |
| Gemini API run 1 | gemini-2.5-flash | 10 of 10 | 1,992 / 18,518 | $0.397 |
| Gemini API run 2 | gemini-2.5-flash | 9 of 10 | 1,972 / 15,394 | $0.354 |
| Total | $1.200 |
Estimates from each response's usage fields at list prices (OpenAI and Gemini pricing pages, read 2026-10-31). Gemini grounding is counted at the list price of $35 per 1,000 grounded prompts even though the API documents a free daily allowance, so the figure is a worst case. Not an invoice. A one-question setup check on both engines ran first ($0.059) and is not part of the sample; total spent on this page's API data, setup check included: $1.259. Every API answer links to its stored raw response; each raw file is checked against its SHA-256 when the page is built: 40 of 40 verified.
consumer.jsonresults.csvresults.jsonrun-log.jsonlquestions.yamltargets.yamlrobots.txt (saved)crawler.json
consumer.json holds every app answer; results.csv and results.json hold the separate developer-API test; the run log keeps every attempt and error.