AI visibility methodology
How we check ChatGPT, Claude, Perplexity and Google AI Overviews
Every LocalPulse report shows, for each of a client’s keywords, whether ChatGPT, Claude and Perplexity cite the client’s website or Google Maps listing, and whether Google AI Overviews cite the website. This page sets out exactly how that is measured: the question we ask, how each service is reached, what counts as a citation, and what the check cannot tell you.
Last updated 18 October 2026.
In short
- Services checked
- ChatGPT, Claude, Perplexity and Google AI Overviews
- The question
- “What is the best [keyword]?”, asked of ChatGPT, Claude and Perplexity once per keyword per scan; ChatGPT is required to search the web first (asked without that setting if OpenAI refuses it), Claude is asked to and asked once more when it does not
- How often
- Every 30 days for each property, and on each manual refresh
- Keywords
- Up to 10 per property, the same keywords as the rest of the report
- Counts as cited
- A link to the client’s website among the sources attached to the answer or the AI Overview, or, for ChatGPT, Claude and Perplexity, a link to the client’s Google Maps listing
- What we keep
- Cited or not, the position among the distinct sources, the page cited and the number of sources (the last two not for AI Overviews; for Claude the number counts its cited pages and its search results, the position its cited links only)
- Price
- Part of every LocalPulse report, at £15 per tracked property per month, no VAT
Which services, and how we reach each one
- 01
ChatGPT
OpenAI API, gpt-4o-miniAsked through OpenAI’s Responses API with its web search tool required and the approximate location set to the client’s country; if OpenAI refuses the required setting, ChatGPT is asked without it. The sources are the citation links ChatGPT attaches to its answer, in the order they first appear; a link repeated in the answer counts once. - 02
Claude
Anthropic API, claude-haiku-4-5Asked through Anthropic’s Messages API with its web search tool switched on (up to five searches for one answer) and the approximate location set to the client’s country. The sources are the citations attached to the answer’s text, in the order they first appear; a link repeated in the answer counts once. - 03
Perplexity
Perplexity API, sonarAsked through Perplexity’s API with the location set to the client’s country. The sources are the answer’s citation list, or its search results when that list is empty, in order, a repeated link counted once. - 04
Google AI Overviews
Google results via DataForSEONot asked a question. We collect Google’s results page for the keyword itself through DataForSEO, the same search the report uses for the client’s Google rankings: a desktop search from the place in DataForSEO’s location list whose name best matches the client’s town (the whole country when none matches), the top 50 results, including an AI Overview that Google loads after the rest of the page. The sources are the reference links in the AI Overview, in order, a repeated link counted once.
The question
ChatGPT, Claude and Perplexity are each asked one question per keyword: What is the best [keyword]? Claude’s carries one more line, and Claude is asked it a second time when it answered without searching (see below). The keyword goes in exactly as the agency entered it for the property. For the keyword “emergency plumber leeds”, the question is “What is the best emergency plumber leeds?”
We do not add the town or the business name. A keyword that should be local needs its town in it, the way people type it. The three services are given the country of the property’s address (the United Kingdom for UK clients) as an approximate location, never the town. Google’s results, by contrast, are collected for a location: the place in DataForSEO’s location list whose name best matches the client’s town, or the whole country when none matches.
For ChatGPT and Claude, an answer given without a web search cannot cite anyone, because their sources are the pages their searches find. ChatGPT is required to search: the request tells OpenAI’s API that it must use its web search tool. If OpenAI refuses that setting, the question is asked again without it, and so are ChatGPT’s later questions until our scanner restarts; ChatGPT may then answer without searching. Claude is asked instead: its question carries one more line, Search the web before you answer. When Claude still answers without searching, the same question is asked once more, and that second answer is the one recorded, whether it searched or not (if the second request fails, the first answer is kept).
The words around the keyword are always in English. Each question is a fresh request with no conversation before it and no memory of earlier questions.
How often
Each tracked property is scanned every 30 days. Every scan asks each of the three services the question once for each of the property’s keywords (up to 10), and reads the AI Overview from one Google search per keyword. A property with 10 keywords is 30 questions and 10 Google searches a scan, plus one more question to Claude for each keyword it answered without searching.
An agency can also refresh a property from its console, and a refresh runs the same checks. It can run 7 days after the last complete scan, sooner only when that scan’s rankings or maps came back incomplete, and at most three times in any 7 days. AI cells that say Not checked do not shorten the wait.
If a service returns an error, the question is retried a few seconds later; if the service refuses the country setting, it is asked again without it. If the retry fails too, that keyword’s cell for that service says Not checked, and the keyword is asked again at the next scan. If a service times out or cannot be reached on two keywords in a row, even after the retry, it is not asked again for the rest of that scan, and its remaining cells say Not checked too. A problem with our own account at a service, such as a rejected key, is not retried: it alerts us, and the cells say Not checked.
What counts as cited
A keyword counts as cited by a service when one of the sources that service attached to its answer is on the client’s website or, for ChatGPT, Claude and Perplexity, is the client’s listing on Google Maps. We do not read the answer’s text: a business that appears in the text without such a link counts as not cited.
For a website, the match is made on the host name of each source’s web address. We lower-case it, remove a leading “www.”, ignore the port and the path, and compare it with the host name of the website the agency entered for the property, treated the same way. The two must be the same: a page on example.co.uk counts for example.co.uk, a page on shop.example.co.uk does not, and neither does a link to the client’s Facebook page or a directory listing.
For ChatGPT, Claude and Perplexity, a link to the website listed on the client’s Google Business Profile also counts, when that is a different address of the client’s own (not a page on a shared site such as Facebook, Instagram, Yell or a directory), the property is linked to its Google Business Profile and map tracking is on. For Google AI Overviews only the property’s own website counts.
For ChatGPT, Claude and Perplexity, a link to the client’s Google Business Profile listing on Google Maps also counts as a citation, because, in our checks since late August 2026, the links ChatGPT attaches to its answers through the API have been Google Maps listings rather than websites. The link must be a Google Maps search or place link (on google.com or google.co.uk, or a subdomain such as www., with a path that starts /maps/search/ or /maps/place/) that carries the business’s name: the listing name in the link must be the same as the name on the client’s Google Business Profile when the property is linked to it and map tracking is on, otherwise the business name entered for the property. Capitals, accents, punctuation and one closing Ltd, Limited, LLP, PLC, GmbH or Inc are ignored, and the whole name must match, never only part of it. A link without an address, or for a property with no town, is matched on the name alone, unless the name is a single word (see below). When the link also gives an address and the property has a town, the town must appear in the address’s own town part, one of its last two comma-separated parts, alone or with its postcode (“Leeds” or “Leeds LS2 7EQ”), never only as part of a longer name such as a street: “Leeds Road, Bradford” does not count for a Leeds client, and neither does a business with the same name in another town. A link that gives the town only earlier in the address, before both a county and a country part (“Leeds, West Yorkshire, UK”), is not counted either, even when it is the client’s own listing. A business whose name is a single word (Smith, or Smith Ltd) is never matched on its name alone: the property must have a town, the link must give an address that passes that town check, and the part right after the name must carry a number (a house or unit number, or a postcode) or be the town itself, so “Smith, Jones & Co, Leeds” does not count for a client called Smith. Other Google links, such as a link to a Google search, do not count.
The position is where the first link to the client’s website or Google Maps listing falls among the distinct sources attached to the answer or the AI Overview, counted in order from 1. A source linked more than once takes one place. So “Cited #1” means the first source attached was the client’s site or listing. For ChatGPT, Claude and Perplexity we also keep the address of that page.
What we keep, and for how long
For each keyword and each of ChatGPT, Claude and Perplexity we keep whether the client’s website or listing was cited, its position among the sources, the address of the page cited, and how many distinct sources the service returned with its answer. For Claude that number counts the pages it cited and the results its searches found together, while its position counts only the links it cited; we also keep how many web searches it made. For Google AI Overviews we keep whether the website was cited and its position. When a service could not be checked, the cell records that instead of a result.
We do not keep the answer’s text or the other sources in it.
The results are kept with the property’s scan history while the agency’s account is open, so past months stay in the report. When an agency account is closed, its scan history is deleted 60 days later, as the privacy policy sets out.
What the report shows for each keyword
The AI search section of the client report starts with a count, for each service, of the keywords where it cites the website, then a table with one row per keyword and one column per service.
- Cited #2
- The website, or for ChatGPT, Claude and Perplexity the Google Maps listing, was the second distinct source attached to the answer or the AI Overview. For ChatGPT, Claude and Perplexity the path of the cited page is shown under it, or Google Maps listing when the link was to the listing.
- new
- Cited now, and not cited in the scan the report compares with (normally last month’s), which checked that service for this keyword. Shown for ChatGPT, Claude and Perplexity.
- Not this month
- Cited in the comparison scan, not in this one. For ChatGPT, Claude and Perplexity the earlier position is shown.
- Not yet
- Not cited in this scan, and not cited in the comparison scan either, or that scan could not check that service for this keyword.
- Not checked
- ChatGPT, Claude and Perplexity only: no answer could be collected from that service for this keyword in this scan. It is not counted as not cited. The AI Overviews column has no Not checked state.
On a client’s first report there is nothing to compare with, so no cell says new or Not this month. For Google AI Overviews, Not yet covers three cases the check does not tell apart: Google showed no AI Overview for the keyword; it showed one that did not cite the website; or Google’s results for the keyword could not be collected and the scan was saved as incomplete, in which case a keyword cited before shows Not this month.
Limits
- Answers change. The same question can get a different answer and different sources from one day to the next. Each scan records one answer from each service per keyword, so a scan is one sample, not an average.
- API, not app. ChatGPT, Claude and Perplexity are asked through their developer APIs with the models above. The apps people use may run other models and settings, and can answer differently.
- No personal context. There is no user profile, history or memory behind a question, and the location given is the country only. A real customer’s answer can differ because of their own history and exact location.
- One location per property. The three services are given the client’s country and Google’s results are collected for one location. To ask about another town, add a keyword that names it.
- Citations only. The check reads source links, not the answer’s text, so it does not show how an answer describes the business or which other businesses appear in it.
- Claude’s length cap. Claude’s answer is capped at 2,048 tokens (roughly 1,500 words). An answer that reaches the cap before it is finished, or that the service pauses during its searches, counts as an error: it is retried, and if the retry fails too the cell says Not checked.
- Four services. Gemini, Google AI Mode, Copilot, Grok and other assistants are not checked.
- English wording. The words around the keyword are in English whatever the client’s country.
Questions
Why does the report say Not yet when my client’s name is in ChatGPT’s answer?
The check counts links, not names. If the answer lists the business without linking to its website or to its Google Maps listing, or links to its Facebook page or a directory listing instead, it is not a citation. A link to a Google Maps listing counts only when the listing name in it is the business’s own name and, when the link gives an address, the business’s town is one of the address’s last two parts, alone or with its postcode, not part of a street name. A one-word business name needs that address too, with a number or the town right after the name.
Is the town added to the question?
No. The question is the keyword exactly as entered, so a local keyword should carry its town, for example “emergency plumber leeds”. ChatGPT, Claude and Perplexity are given the client’s country as an approximate location; Google’s results are collected for the place in DataForSEO’s location list whose name best matches the client’s town, or for the whole country when none matches.
Why did a citation disappear this month?
Each scan records one answer from each service per keyword, and the same question can get a different answer and different sources on another day. A keyword that was cited in the scan the report compares with, and is not cited now, is marked Not this month, so the change is visible.
Do you check the ChatGPT app, Gemini or Google AI Mode?
No. ChatGPT, Claude and Perplexity are asked through their developer APIs, which can answer differently from the apps people use. Gemini, Google AI Mode, Copilot and Grok are not checked.
Can I see the full answer?
No. We keep whether the website or Google Maps listing was cited and its position among the sources; for ChatGPT, Claude and Perplexity also the address of the page cited and the number of sources returned with the answer, and for Claude the number of web searches it made. We do not keep the answer text, the other links in it, or the page address for Google AI Overviews.
Does a link to any page of the website count?
Yes, as long as the host name is the same: the homepage and a blog post on example.co.uk both count, a blog on blog.example.co.uk does not. For ChatGPT, Claude and Perplexity the report shows which page was cited.
Get started
Put your brand on better reports.
Track your clients' local rankings and send white-label reports. £15 per tracked property per month - rank checks, the 49-point Maps grid, AI visibility, and the client PDF, all included.
Free to create your agency, no card required. The first client scan usually finishes within the hour.