Getting cited by ChatGPT or Claude means the assistant fetched your page while answering someone and used it as a source, usually with a link in the answer. I run SEO for Windsor.ai, and both assistants cite our pages every day. I wanted to understand what gets a page cited and what changes an AI Overview, so I could influence how often our pages show up in those answers. To get there I joined 30 days of our server logs with 90 days of Search Console data for the same pages. In the steps below I outline my process to improve visibility and citations, with the numbers that back each suggestion.
The main finding is that the pages that get cited are the pages that rank. Both assistants fetch far more of the pages that already earn Google clicks, and the ones with no Google clicks are mostly ignored. A small set of technical and structural details then decides whether a page that ranks also gets used.
In this article
- What counts as a citation in your logs
- Where the numbers in this article come from
- Step 1: rank the page first
- Step 2: get into the index each assistant searches
- Step 3: open with the sentence you want quoted
- Step 4: use your unique data
- Step 5: serve the URL the assistant requests
- Step 6: keep reference pages as current as your best articles
- Step 7: when an official integration takes the Overview, move to the adjacent intent
- Step 8: measure the traffic where it arrives, in branded search
- How to run the measurement
- The tools behind this
- Conclusion
What counts as a citation in your logs
Three different bots from each company touch your site, and only one of them shows that your page was considered for an answer.
| Company | Training crawl | Search index crawl | Citation fetch |
|---|---|---|---|
| Anthropic (Claude) | ClaudeBot | Claude-SearchBot | Claude-User |
| OpenAI (ChatGPT) | GPTBot | OAI-SearchBot | ChatGPT-User |
The citation fetch is the request the assistant makes when it opens your page to answer a specific question. A fetch from one of the User bots is a potential citation: the assistant considered your page while it formulated the answer. It does not guarantee that the answer cited the page.
The other two are not citations at all: the index crawl builds the search index the assistant queries, and the training crawl visits most pages a few times and is no signal of visibility. Perplexity works the same way with PerplexityBot. Gemini and Copilot fetch through Google’s and Bing’s crawlers, so they leave no separate citation signature in your logs.
What to count differs by assistant.
-
Claude: count just the
Claude-User/1.0variant. Two other requests carry the same name and serve a different purpose. The bareClaude-Userstring is Claude’s MCP client calling a connected tool, andClaude-User (claude-code/2.1.x)is Claude Code fetching a page for someone working in the terminal. Both are product use, not an answer to a search. - ChatGPT: the measure changed in summer 2026. ChatGPT now answers from its own search index (internally called Labrador, according to Peec AI) instead of fetching pages live. Peec AI documented the change in September 2026 from ChatGPT’s server-side events, and our logs show the effect from late August. ChatGPT-User counts are falling for everyone as a result, so count OAI-SearchBot coverage, which pages it crawls and how often, as the ChatGPT-side measure, and read ChatGPT-User as a partial signal. Step 2 has the numbers.
Where the numbers in this article come from
- Pages: 238 pages on windsor.ai about connecting data sources to Claude (148 integration pages, 70 how-to guides, a hub page, documentation and a few blog posts).
- Logs: 30 days of Cloudflare request logs, 15 August to 16 September 2026, grouped by bot family and status code.
- Search Console: 90 days of clicks, impressions and position per page, pulled through the Search Console connector for Claude.
- Join: on the URL path, with trailing slashes normalised and duplicate rows summed.
- Totals: 860 citation fetches from Claude and 6,415 from ChatGPT in the 30 days; 36,142 Google clicks from 1.57 million impressions in the 90 days.
Step 1: rank the page first
Do this. Treat a citation as a consequence of ranking. Before any AI-specific work on a page, get it into the top results for its query in Google, with the same content, structure and internal linking work you would do anyway.
Why. Grouping our pages by Google clicks:
| Google clicks, 90 days | Pages | Fetched by Claude at least once | Claude fetches per page | ChatGPT fetches per page | Average position |
|---|---|---|---|---|---|
| 1,000 or more | 9 | 100% | 28.3 | 199 | 4.7 |
| 200 to 999 | 21 | 95% | 12.4 | 107 | 6.5 |
| 50 to 199 | 30 | 73% | 6.0 | 44 | 8.6 |
| 10 to 49 | 52 | 56% | 1.8 | 12 | 11.0 |
| 1 to 9 | 89 | 19% | 0.5 | 4.5 | 13.9 |
| 0 | 37 | 27% | 0.7 | 1.3 | 20.8 |
Claude fetched every page with more than 1,000 clicks, and fewer than one in five of the pages with under 10 clicks. ChatGPT’s counts are larger and follow the same pattern. Fetches concentrate on the same pages as clicks. The top 20 pages take 80% of Google clicks, 62% of Claude fetches and 59% of ChatGPT fetches, and about 200 pages share the remaining 8% of clicks.
ChatGPT made 6,415 fetches vs Claude’s 860 for the same pages, a ratio of 7.5 to 1, most likely because far more people use ChatGPT. Compare each assistant’s fetches with its own earlier weeks.
How to tell it worked. Join citation fetches per page to Google clicks per page and band the pages as in the table. A page that moves up a click band should start appearing in the citation fetches within the month. If it ranks and still gets no fetches, go to step 2.
Step 2: get into the index each assistant searches
Do this.
- Claude: its web search runs on Brave’s index. Search Brave for the page’s target query and, if the page is missing, submit it at search.brave.com/submit-url (Brave has no webmaster console or site verification, only that form, and indexing takes a few weeks). Allow Claude-SearchBot in robots.txt.
- ChatGPT: it increasingly answers from OpenAI’s own index. Allow OAI-SearchBot in robots.txt and check in your logs that it crawls the page.
Whether to allow GPTBot and ClaudeBot (the training crawlers) is a separate policy decision and does not affect citations.
Why. On our site 14 pages ranked in Google’s top 10 and were fetched by ChatGPT dozens of times but by Claude once or never. Ranking in Google was not the problem for those pages; presence in Brave’s results was the first thing to check.
On the ChatGPT side the logs show the index change directly. Comparing the first full week of logs with the latest one, on the same pages:
| Bot | 18 to 24 Aug | 10 to 16 Sep | Change |
|---|---|---|---|
| Claude-User (citation fetch) | 139 | 265 | +91% |
| Claude Code | 124 | 228 | +84% |
| ChatGPT-User (citation fetch) | 2,321 | 907 | -61% |
| OAI-SearchBot (index crawl) | 93 | 188 | +102% |
| PerplexityBot | 260 | 330 | +27% |
| Googlebot | 398 | 284 | -29% |
ChatGPT’s live fetches fell 61% in four weeks and stopped touching 48 of the pages, while its index crawler doubled. Every one of the top 25 pages lost half or more of its ChatGPT fetches at the same time, which rules out a page-level cause. This matches what Peec AI documented from ChatGPT’s server-side events (a result source field showing answers served from OpenAI’s own index rather than a live fetch) and what Botify measured across seven billion log lines earlier in the year (OAI-SearchBot up 3.5x, ChatGPT-User down 28% between December 2025 and March 2026). OpenAI has not announced the change.
How to tell it worked. For Claude, the page appears in Brave’s results for its query, and Claude-User/1.0 fetches follow within weeks. For ChatGPT, count the pages OAI-SearchBot crawls each week. Treat a falling ChatGPT-User line as expected, and read a rise in OAI-SearchBot coverage as the win.
Step 3: open with the sentence you want quoted
Do this. Make the first sentence under the H1 a plain definition or a direct answer to the query, with no build-up. Do the same under each H2 that answers a question people search for. Put comparisons in a table and rules in a list, because the assistants and Google’s AI Overview quote structured blocks more readily than prose.
Why. For our pages I checked 62 of their top non-branded queries on a live Google SERP: 57 showed an AI Overview and windsor.ai was cited in 30 of them. Two earlier audits across 27 head terms on educational pages showed where the losses come from. On “what is bigquery”, a course provider’s page holds the opening-definition slot with a one-sentence definition, and our page is cited only for a feature list further down, because our page opened with a narrative paragraph. On “etl vs elt”, the cited page carries a plain key-differences block (transformation location, speed, best use case); pages with the same facts spread through prose lose that slot.
How to tell it worked. Re-check the page’s top queries after the edit and record which domain holds the definition slot. Ahrefs records the SERP features per keyword and country, including whether an AI Overview is present, and the Ahrefs connector pulls that into Claude. Per country matters when a page ranks in several markets and the Overview behaves differently in each. One warning for anyone checking with a SERP API instead: Google loads many Overviews a moment after the page, so a check that does not wait for the delayed Overview reports “no Overview” or “no citations” for queries that have both.
Step 4: use your unique data
Do this. Give each page at least one fact, figure or measured result that only you have: your own data, a test you ran, a count from your logs. Pages that just repeat what others say lose the citation to the original source. The core of a page can match what others say, as long as you add something next to it.
Why. This is the pattern in our AI Overview audits rather than a count I have run. The windsor.ai pages that kept their citations through the summer were built with our own numbers (field counts, tested field combinations, usage patterns), and the educational pages that restate a definition available on a dozen other sites are the ones where a course provider or the vendor holds the slot instead. The GEO research points the same way: original data is the content trait most associated with being cited.
How to tell it worked. Check two things: whether your domain now appears in the AI Overview for the query your number answers, and whether citation fetches on that page went up. The measurement section shows how to run both.
Step 5: serve the URL the assistant requests
Do this. Pull every citation fetch that returned a 301 or 404, list the requested URL and where it landed, and fix the ones that end anywhere other than the page the assistant wanted. Collapse redirect chains and confirm every documentation URL returns HTML. If you can serve the no-slash URL directly with a canonical to the slash version, do it.
Why. Assistants often request a URL in a form your site redirects, without the trailing slash or through an old URL. On our site 325 of the 860 Claude citation fetches returned a 301, almost all because Claude drops the trailing slash. Claude follows the redirect, so those citations were not lost, but a count built on status 200 alone undercounts by a third.
Some redirects did lose the citation. A few short URLs bounced to the homepage instead of the page they name, one documentation URL served an image file, and one reference URL went through a two-hop chain. In each case the assistant read the wrong page or nothing.
How to tell it worked. The share of citation fetches returning 301 or 404 falls month over month, and the fetches that used to land on the homepage or an image now land on the page. Count 301s as citations when you measure, and count where they land as the health check.
Step 6: keep reference pages as current as your best articles
Do this. Put your reference pages (documentation, help pages, pricing, anything that answers one question) on the same review schedule as your articles. Compare each page’s last edit date with how often the assistants fetch it.
Why. Across our whole site, Claude’s citation fetches went 17% to API and field reference pages, 13% to the homepage, 13% to documentation, 11% to robots.txt, and 5% to the how-to articles this study started from. The page the assistants fetched most in this cluster was a documentation page last edited in July. Fetches also spread far down the list: the 300th most-fetched path still had seven fetches in the month.
How to tell it worked. Fetches per page grouped by page type, monthly. If reference pages hold or grow their share after a refresh, the schedule is right.
Step 7: when an official integration takes the Overview, move to the adjacent intent
Do this. When a platform ships its own integration or help page for the query you rank on, do not fight it for the head term. State in the first paragraph the thing the official page does not do, so the Overview has a reason to quote a second source, and target the questions the official page leaves open.
Why. Between July and September, Anthropic’s own posts and help pages took the Overviews for “claude salesforce connector” and “claude google sheets”, and our pages lost both the citation and most of their ranking on those queries. Once the official page existed, the Overview cited it for the head term. Our pages kept a citation only where they answered a question the official page does not cover.
How to tell it worked. The adjacent queries start showing an Overview citation for your page and impressions on them grow, while the head term stays with the platform.
Step 8: measure the traffic where it arrives, in branded search
Do this. Do not judge citations by referral traffic from the assistants. Track weekly branded clicks in Search Console next to the citation-fetch series.
Why. Requests to windsor.ai content pages with claude.ai as the referrer ran at one to three a day, so almost nobody clicks the link inside the answer. The traffic arrives as branded search instead: people see the brand in the answer and search for it afterwards. Over the four weeks in which Claude’s citation fetches rose, our weekly branded clicks rose about 35% while non-branded clicks stayed flat. The same weeks of 2025 show branded clicks up 16% with non-branded flat, which is existing users back at work after the summer. The excess over last year is the part I read as citations. The 2025 base is small, so the size of that excess is rough.
How to tell it worked. Compare weekly branded clicks with the same weeks of the previous year, not only with the previous month, and put both next to the citation-fetch series. If branded clicks rise more than they did in the same weeks last year while citation fetches grow, the citations are sending traffic. If citations rise and branded clicks do not beat last year, the answers are not naming the brand, so go back to steps 3 and 4.
How to run the measurement
- Export 30 days of request logs with three columns: user agent, path and status code. Keep the rows where the user agent is Claude-User/1.0, ChatGPT-User, Claude-SearchBot or OAI-SearchBot, and drop everything else.
-
Pull 90 days of Search Console data per page: clicks, impressions and average position. With the Search Console connector for Claude the prompt is:
Pull Search Console page-level clicks, impressions and average position for pages containing “[folder or term]” for the last 90 days. Normalise trailing slashes, sum rows that collapse to the same URL, and list pages with at least one impression.
- Normalise the paths in both tables the same way: strip the trailing slash, lowercase, drop query strings. Where two rows collapse to the same path, add their numbers together.
- Join the two tables on the path. For each page you now have Google clicks, impressions, position, citation fetches per assistant and the status codes those fetches returned.
- Band the pages by Google clicks (1,000 or more, 200 to 999, 50 to 199, 10 to 49, 1 to 9, 0) and for each band work out the share of pages fetched at least once and the fetches per page, as in the table in step 1.
-
Flag two lists from the joined table:
Which pages rank in Google’s top 10 for their main query but received fewer than three citation fetches in 30 days? List them with their ChatGPT fetch count for contrast.
For the pages with the most citation fetches, what share of those fetches returned a 301 or a 404, and which URLs were requested?
-
Check the AI Overviews. Take each page’s top queries from the Search Console query table and find out which of them show an Overview. Ahrefs has the SERP features per keyword and country; through the Ahrefs connector the prompt is:
For these keywords in [country], list the search volume, the SERP features present and whether an AI Overview shows. Mark the ones where [your domain] ranks in the top 10 and an Overview is present.
Then open the marked queries on a live SERP, or a SERP API that waits for the delayed Overview, and record which domain is cited and the sentence quoted.
- Pull weekly branded clicks from Search Console for the last 12 weeks and the same 12 weeks last year (the Search Console connector has a branded versus non-branded field), and put both next to the daily citation-fetch series.
- Repeat monthly and track five numbers: weekly Google clicks and impressions for the page set, weekly branded clicks against last year, Claude citation fetches per day, and pages crawled by OAI-SearchBot per week.
The tools behind this
- Any log store that records user agent, path and status per request.
- Google Search Console, read through the Search Console connector for Claude, which is how the page and query tables in this article were pulled and joined. The connector is added from the Claude directory (Customize, Connectors, search “Windsor”, Add) and works on the free forever plan for one source, no credit card. Adding a second source to the same analysis needs a paid plan, from $19 a month for three sources.
- The Ahrefs connector, to see which keywords trigger an AI Overview and who is cited, per country if you want to get more granular.
Conclusion
Citations follow rankings. Rank the page, get it into the index each assistant searches, open it with the sentence you want quoted, carry numbers nobody else has, and make sure the URL the assistant requests returns the page. Measure the citation fetch and the index crawl, not the training crawl, and watch branded search for the traffic against the same weeks last year. A page that answers the question well still gets found, through Google, Bing or an LLM answer, and the assistant route arrives as branded search.
If you want to run the same comparison on your site, the Search Console connector for Claude covers the Search Console side, and the keyword cannibalization check uses the same page and query tables for a different question. Free forever plan, no credit card.
FAQs
How do I get mentioned by ChatGPT?
Rank for the question in Google and in the index ChatGPT uses, open the page with a plain sentence that answers it, include numbers or facts that are only on your page, and make sure the URL returns the page without redirect chains. On our site Claude fetched every page with more than 1,000 Google clicks in 90 days, and fewer than one in five of the pages with under 10 clicks.
Does ChatGPT send traffic when it cites a page?
Very little through the link itself. On our site, requests with claude.ai as the referrer ran at one to three a day for content pages, and ChatGPT is similar. The traffic arrives as branded search instead: people see the brand in the answer and search for it. Track branded clicks in Search Console next to your citation fetches.
Should I block GPTBot or ClaudeBot?
That is a training-data decision, separate from citations. Blocking GPTBot or ClaudeBot does not stop ChatGPT-User or Claude-User from fetching a page to answer a question. Blocking those two, or OAI-SearchBot and Claude-SearchBot, does remove you from answers.
Does Claude use Google search results?
No. Claude’s web search runs on Brave’s index. In practice the same pages rank in both, so ranking in Google predicts Claude citations well, but a page missing from Brave’s index will not be cited by Claude no matter how it ranks in Google.
Why did my ChatGPT-User traffic drop?
Through summer 2026 ChatGPT moved to answering from its own index and cache rather than fetching pages live. On our site ChatGPT-User fetches fell 61% in four weeks while OAI-SearchBot crawls rose 102%. Count OAI-SearchBot coverage as the ChatGPT-side signal from now on.
Is being cited by AI the same as ranking?
It depends on ranking but it is not the same. Ranking gets the page fetched; the opening sentence, the structure and the original data decide whether the answer quotes it. A page can rank and be cited for a secondary bullet while a competitor with a plain definition holds the main slot.
Can I see AI citations in Google Search Console?
Not directly. Search Console reports clicks and impressions from Google results, including impressions where an AI Overview showed your page, but it does not label them. The zero-click queries with high impressions are often the ones where an Overview is answering with your content.

