What makes ChatGPT, Perplexity, Copilot, and Claude recommend a site
They recommend a site they can crawl, extract as entity facts, corroborate off-site, and date. Search bots differ from training. No secret ranking score.
William Spurlock Founder — Spurlock Studios 31 MIN
ChatGPT, Perplexity, Copilot, and Claude recommend a site when they can fetch it, lift a consistent entity fact from the HTML, see other domains repeat that fact, and treat the claim as current. That is a recipe, not a leaked ranking formula. Vendors publish crawler tokens and product behavior. They do not publish a score you can buy.
This is the recommendation recipe under the Answer Engine Optimization playbook. Which engine to prioritize is a surface map: ChatGPT vs Perplexity vs AI Overviews. Why ChatGPT names everyone else is a diagnostic: why ChatGPT recommends competitors. This spoke is what to build so a recommendation is even possible.
I have been SEO certified since 2021. The AEO version of that work is still eligibility plus extractable truth. I will not invent a secret ranking factor for your deck.
The short answer
- Four ingredients: crawl access, extractable entity facts, third-party corroboration, recency. Miss one and the recommendation usually fails before “content strategy” starts.
- Search and training are different jobs.
GPTBotandClaudeBottrain. Citations ride search and user-fetch twins:OAI-SearchBot,PerplexityBot,Bingbot,Claude-SearchBot,Claude-User. - ChatGPT mixes training memory with selective search. Perplexity is retrieval-first. Copilot grounds public-web answers in Bing. Claude splits training from search and live fetch.
- Shared work transfers. Retrieval neighborhoods do not. Ahrefs measured almost no shared top sources across ChatGPT, Perplexity, and Google AI Overviews in a June 2025 cut.
- Measure a frozen prompt panel on all four. One lucky ChatGPT run is not a program.
What actually makes them recommend a site?
A recommendation is a model (or its search layer) deciding it is safe to name you as an option. Safety here is boring: the system can retrieve you, compress you into a sentence, and defend that sentence against contradictory pages. It is not a trophy, a submission form, or a paid inclusion button for ordinary sites.
Vendors do not publish the weights. Treat the table as an operator model.
| Step | What happens | What you control | What you do not control |
|---|---|---|---|
| 1. Fetch | A bot or a user-triggered agent can read the URL | robots.txt, WAF, HTTP 200, no login wall | Crawl budget, fan-out queries |
| 2. Extract | A passage states who you are, what you sell, for whom | First-screen HTML, tables, matching schema | How aggressively the model compresses |
| 3. Corroborate | Other domains repeat the same entity facts | Directories, reviews, roundups, press, docs | Whether that domain is in this engine’s pool |
| 4. Date | The claim still matches the live offer | Visible dates, IndexNow pings, killing stale URLs | Recrawl SLA (none is published as a citation clock) |
| 5. Attribute | The product shows a source, a name, or both | Quoteable sentences with your name in them | Citation vs mention vs ghost citation |
If step 1 fails, nothing else matters. If step 1 works and steps 2–4 conflict, the system often names a competitor with a cleaner trail — that diagnostic lives on the competitors spoke, not here.
Recommendation prompts (“who should I hire,” “best X for Y,” “alternatives to Z”) are stricter than definition prompts. A definition can cite a glossary. A recommendation has to justify putting you on a shortlist. That is why corroboration and recency punch above word count.
- You can say in one sentence what a “win” is: named, cited, or both
- The money URL returns 200 to a fetch that does not execute your marketing JS
- About, offer, and schema agree on the same legal name and category noun
- At least a few independent URLs repeat those facts
- Pricing and service-area claims on the live page match the last 90 days
A pretty site with a blocked search bot is a brochure the engine never opened.
The four ingredients, in order
Do them in this order. Reversing the order is how teams ship a 40-post calendar nobody can fetch.
| Order | Ingredient | Pass test | Fail look |
|---|---|---|---|
| 1 | Crawl access | Citation-useful bots get 200 on About, offer, FAQ | “Block AI” robots.txt, WAF challenge, JS-only text |
| 2 | Extractable entity facts | First 60–80 words state who / what / for whom; schema matches | Hero slogan, then three screens of memoir |
| 3 | Third-party corroboration | Independent pages repeat name, category, geo | Only your domain and your LinkedIn |
| 4 | Recency | Live price, offer, and hours match the HTML a bot will copy | Old packages still ranking in Bing or in training residue |
Numbered procedure:
- Allow the citation tokens. Leave training tokens as a written policy call.
- Put one entity packet on About + homepage + offer + JSON-LD. Same strings.
- Get those strings repeated off-site. Directories and honest reviews before a thought-leadership sprint.
- Date the claims that change. Kill or 301 the URLs that still sell the old offer.
- Re-run the same prompts. Do not rotate the questions to chase a screenshot.
Shared baseline vs engine-specific bets:
| Work | Transfers across all four | Engine-specific |
|---|---|---|
| Entity packet | Yes | No |
| Answer-first money URL | Yes | No |
| robots.txt / WAF for that vendor’s search bot | Per token | Yes — different tokens |
| Bing index + IndexNow | ChatGPT Search (partnered) and Copilot | Copilot especially |
| Community threads (Reddit, forums) | Corroboration layer | Heavier in some Perplexity and ChatGPT studies |
| Prompt panel | Method transfers | Four logs, not one blended “AI score” |
Cap engine-specific experiments after the four ingredients pass. A Perplexity-only blog cluster on a site PerplexityBot cannot fetch is theater.
Search vs training: the split operators keep collapsing
This is the mechanical difference that wrecks otherwise competent teams. Training crawlers collect pages that may enter foundation-model datasets. Search crawlers and user-fetch agents decide whether a live answer can retrieve and cite you. OpenAI is explicit that the two robots.txt tags are independent: you can allow OAI-SearchBot for ChatGPT search results and disallow GPTBot so crawled content should not be used to train generative AI foundation models (OpenAI crawler docs). Anthropic publishes the same split across ClaudeBot (training), Claude-SearchBot (search quality), and Claude-User (user-initiated fetch) (Anthropic Help Center).
Perplexity’s published position is simpler: PerplexityBot surfaces and links sites in search results and is not used to crawl content for AI foundation models (Perplexity crawlers). Copilot does not ship a “CopilotBot.” Public-web grounding goes through Bing (Microsoft Support: Copilot web search).
| Product | Training / memory path | Live recommendation path | Collapse this and you… |
|---|---|---|---|
| ChatGPT | GPTBot; answers that never trigger search | OAI-SearchBot for search answers; ChatGPT-User for some user fetches | Block search while celebrating a training opt-out |
| Perplexity | Not what PerplexityBot is for, per vendor | PerplexityBot index + Perplexity-User live fetch | Treat Perplexity as “another GPTBot” |
| Copilot | Model weights; M365 work data if Work IQ is on | Short Bing query from the prompt | Optimize Google and skip Bing |
| Claude | ClaudeBot | Claude-SearchBot + Claude-User | Disallow the wrong token and call it privacy |
Hedge: if you allow both of OpenAI’s tags, OpenAI says it may use results from just one crawl for both use cases to avoid duplicative crawling. That is a crawl-efficiency note, not a reason to treat the tags as one switch.
Training residue still matters. An older Claude or ChatGPT answer can name a product you killed in 2024 until live search overrides it — or until you never trigger search and the stale sentence wins. Recency (ingredient 4) is how you fight residue. Blocking the training bot does not erase what already landed.
| Panel condition | You are looking at | Recipe move |
|---|---|---|
| Search / web is on and sources appear | Live retrieval | Ingredients 1–4 on the cited neighborhood |
| Search / web is on and zero sources | Memory or a failed fetch | Confirm the product actually searched; then crawl |
| Search / web is off | Training / product default | Turn it on for the panel or stop claiming a “search citation” |
| Two engines disagree on the same prompt | Different pools, same recipe | Do not average them into one KPI |
Copilot adds a fifth fork: web search can be off at the tenant. Microsoft documents that org policy can serve answers “without the benefit of current web information.” Your public pages cannot override that toggle. Log whether web was on.
Crawl access: eligibility, not a ranking secret
Crawl access is a gate. It is not a ranking factor I am pretending to have leaked. OpenAI’s wording is the template: sites opted out of OAI-SearchBot “will not be shown in ChatGPT search answers, though can still appear as navigational links,” and it can take about 24 hours after a robots.txt change for search systems to adjust (OpenAI crawler docs). Perplexity also says robots.txt changes may take up to 24 hours (Perplexity crawlers).
Match the product token, not a pinned version string. Version suffixes change.
| Engine | Citation-useful token | Training / other token | User-triggered fetch | robots.txt note |
|---|---|---|---|---|
| ChatGPT Search | OAI-SearchBot | GPTBot | ChatGPT-User | User fetch: rules may not apply; Search opt-out is OAI-SearchBot |
| Perplexity | PerplexityBot | Not this bot’s job, per vendor | Perplexity-User | User fetch generally ignores robots.txt; whitelist WAF IPs |
| Copilot | bingbot | n/a as a Copilot crawler | Bing retrieval | Copilot sends a short query to Bing |
| Claude | Claude-SearchBot | ClaudeBot | Claude-User | Disabling SearchBot or User “may reduce” visibility, per Anthropic |
Bing’s own crawler list names Bingbot as the standard crawler (Bing Webmaster: which crawlers). Microsoft Copilot Chat generates a short Bing query from the prompt and shows a Sources button with that query (Microsoft Support). There is no separate Copilot index you submit to.
WAF and CDN “AI bot” bundles are where eligibility dies silently.
-
robots.txtallowsOAI-SearchBot,PerplexityBot,bingbot,Claude-SearchBot,Claude-Useron public money URLs - Training tokens (
GPTBot,ClaudeBot) are Allow or Disallow on purpose, with a date and an owner - Cloudflare / AWS managed lists do not dump citation crawlers into a scrape bundle
- Logs or WAF events show 200s, not JS challenges, on About and the offer URL
- You verified IPs against vendor JSON where they publish it — UA strings are spoofable
Published IP lists (re-fetch; do not pin a copied range in a ticket from 2024):
| Token | Vendor IP JSON | Use it for |
|---|---|---|
OAI-SearchBot | openai.com/searchbot.json | WAF allow + log authenticity |
GPTBot | openai.com/gptbot.json | Training policy only |
ChatGPT-User | openai.com/chatgpt-user.json | User fetch; not Search opt-out |
PerplexityBot | perplexity.com/perplexitybot.json | Index crawl allowlist |
Perplexity-User | perplexity.com/perplexity-user.json | Live question fetch |
bingbot | Bing’s Verify Bingbot tooling | Copilot web grounding |
| Anthropic bots | IP list on their crawler help page | Do not IP-block as the opt-out — they say it may fail |
OpenAI: ChatGPT-User is not used to determine whether content appears in Search. Anthropic: blocking by IP may not persist, because it can stop the bot from reading robots.txt. Perplexity: combine User-Agent and published IP ranges in the WAF. Those are vendor notes, not folklore.
A blocked search bot is not a ranking problem. It is a missing fetch.
Extractable entity facts the model can quote
If the crawler gets a 200 and the first screen is a slogan, you failed ingredient 2. Answer engines cite passages they can lift. Google’s AI-features guidance is useful even when this post is not an Overviews tutorial: important content has to exist as text, and structured data should match the visible page (Google Search Central: AI features). schema.org’s Organization type is the shared vocabulary for name, URL, logo, and related identifiers (schema.org/Organization). Google’s Organization guide says homepage markup helps disambiguate the entity; add the properties that apply, and do not contradict the HTML (Google: Organization structured data).
| Fact | Put it in HTML as a sentence | Also in JSON-LD | Do not hide it in |
|---|---|---|---|
| Legal + trade name | First screen of About and homepage | name / legalName / alternateName | A footer SVG |
| Category noun | “We are a {category} for {ICP}” | knowsAbout or a clear description | “Solutions for tomorrow” |
| Offer / pricing | One current package sentence | Offer markup only if it matches | A PDF sales deck |
| Geo / service area | Plain sentence | areaServed / address | A map widget with no text |
| Founding / identity | One date, one city | foundingDate | Three conflicting blog asides |
Quote test — 60–80 words, no hero video required:
- Open the money URL with JS off, or view source.
- Copy the first 80 words of visible text.
- Ask: would this paragraph still be true if a model cited only that span?
- If the span is a metaphor, rewrite it as a fact.
- Check that Organization JSON-LD uses the same strings.
I have shipped hundreds of production sites. The pages that get named in recommendation answers are boring on purpose: noun, buyer, job, proof, next step. Cinematic heroes convert humans. They do not give a retrieval system a sentence it can defend.
| Page | Extractable job | Failure |
|---|---|---|
| Homepage | Who, what, for whom, where | Atmosphere without a category |
| About | Entity packet | Team photos, no legal name |
| Service / product | Criteria + scope | Feature salad |
| FAQ / proof | Objection-shaped facts | Marketing FAQ with no numbers |
| Contact / location | NAP that matches directories | Five addresses, none canonical |
Conflicting facts are worse than missing facts. A model that sees two founding years often stays conservative — or invents a third. Align the packet before you write more URLs.
Third-party corroboration the homepage cannot fake
Your homepage is one node. It is not the trail. Recommendation prompts look like “who is a real option in this category.” Independent repeats — directories, reviews with job language, roundups, association lists, trade press, docs on other domains — are how a system checks that you exist outside your own DNS.
This is not a secret “off-site ranking factor.” It is the same corroboration problem as the competitors diagnostic, pointed at construction instead of exclusion. Ahrefs’ June 2025 Brand Radar cut found 86% of top mentioned sources were not shared across ChatGPT, Perplexity, and Google AI Overviews, with only seven websites in the top 50 for all three (Ahrefs). Read that as: corroboration has to land in that engine’s neighborhood, not only on a domain you like.
| Corroboration type | What a model can use | What does not count |
|---|---|---|
| Directory / profile | Consistent NAP + category | Five profiles, five categories |
| Review | Specific job-to-be-done language | “Great service!!!” |
| Roundup / “best of” | You listed with the same category noun | A paid DR package on an unread blog |
| Press / association | Named, dated, checkable | Your own Medium cross-post |
| Community thread | A real answer other people already cite | Spam seeded for Perplexity |
Semrush’s February 2026 SaaS sample compared Google’s top 10 pages against pages cited by AI products: ChatGPT overlap with that top 10 was 2.1% — the lowest of the platforms they listed (Semrush: AI visibility). Sample: 10 SaaS queries. Treat it as a measured miss, not a universal law. It is still why “we rank on Google” is not a recommendation recipe.
Ahrefs’ 75,000-brand analysis reported branded web mentions correlating more strongly with AI Overview brand visibility than backlink count (Spearman 0.664 vs 0.218) — correlation, not a causal citation API (Ahrefs: AI Overview brand correlation). Mentions on pages engines already retrieve beat a bought Domain Rating report.
- One public name and one category noun on owned pages
- At least a handful of third-party URLs that repeat those strings
- Reviews (if you collect them) mention the job, not only the vibe
- You are not paying for links on domains your prompt panel never cites
- You did not spam Reddit because a screenshot showed Reddit in Perplexity footnotes
Fake reviews and directory stuffing are not corroboration. They are a trust problem you will still be paying for after the mention fades.
Recency: stale offers get skipped or invented
Recency is not “blog more.” It is “the live claim matches the retrieved claim.” Pricing pages, retainers, service areas, and product names go stale. Training residue and old press releases keep the corpse warm. Recommendation answers that quote a dead package either skip you or hallucinate you into the old offer.
Google’s recrawl language is the honest clock: crawling can take several days to several months depending on how often systems decide a page needs a refresh (Google AI features). IndexNow’s FAQ is equally honest: submitting a URL does not guarantee indexing (IndexNow FAQ). OpenAI and Perplexity quote ~24 hours for robots.txt adjustments, not for “you will be recommended tomorrow.”
| Claim type | Refresh when | Recency move | Not a recency move |
|---|---|---|---|
| Pricing / packages | The number changes | Ship HTML the same day; ping IndexNow | Bump lastmod with no edit |
| Service area | You add or drop a city | One sentence on location + directories | A new blog post titled “we’re expanding” |
| Product name | You rename | 301 the old URL; update roundups you can reach | Leave the old URL as a “legacy” ranking play |
| Evergreen explainer | The answer is wrong | Rewrite the lift-able span | Quarterly rewrite of a winning passage |
| News / research | The window expires | Date the method; demote or archive | Keep “2023 survey” in the H1 in 2026 |
Bing’s AI Performance preview tells publishers that accurate, up-to-date content matters for inclusion in AI-generated answers and points at IndexNow for faster discovery (Bing Webmaster: AI Performance). That is a freshness hygiene note. It is not a Copilot citation SLA.
Microsoft’s consumer Copilot transparency note says that when Copilot is grounded in web search, it “centers its response on high-ranking content from the web” and attaches hyperlinked citations (Microsoft Copilot transparency note). “High-ranking” is their language. It is not a published formula that “Bing #3 = Copilot recommendation.” Hedge it.
| Recency failure | What the answer does | First ticket |
|---|---|---|
| Old price still indexed | Quotes the corpse or skips you | Update HTML + IndexNow + kill mirrors |
| New offer, old About | Conflicting entity | Align the packet |
| Training residue only | Names a product you sunset | Live search path + third-party updates |
| Date theater | dateModified with no change | Real edit or leave it alone |
Do not rewrite a passage that already gets quoted. Recency is accuracy, not fidgeting.
How the recipe lands on ChatGPT vs Perplexity vs Copilot vs Claude
Same four ingredients. Four retrieval neighborhoods. Do not run four content calendars.
| Engine | When it recommends from the live web | When it recommends from memory | Operator bet after the four ingredients |
|---|---|---|---|
| ChatGPT | Search ran; OAI-SearchBot could index you; partner queries (Bing is named) returned corroborable pages | Search did not run; training residue answers | Allow OAI-SearchBot; Bing eligibility; quoteable criteria page |
| Perplexity | Almost every factual query retrieves; numbered citations to live URLs | Rare for “who should I hire” if retrieval is on | Allow PerplexityBot; unique HTML facts; WAF allowlist |
| Copilot | Web search on; Bing returns you in the rewritten query | Work IQ / files, or web search off | Bingbot + Webmaster Tools + IndexNow; spot-check if buyers live in M365 |
| Claude | Web tools ran; SearchBot indexed; User could fetch | ClaudeBot-era residue; no web | Allow Claude-SearchBot and Claude-User; do not confuse with ClaudeBot |
ChatGPT Search rewrites the prompt into one or more targeted queries and sends those to partner search providers, including Bing (OpenAI Help: ChatGPT Search). Independent August 2026 capture work argued OpenAI also serves an in-house index that does not match Bing’s top 20 on the same fan-outs (Search Engine Land / RESONEO). OpenAI has not documented that pipeline name. Hedge it. Keep Bing hygiene. Do not treat “ChatGPT = Bing only” as settled doctrine.
Perplexity describes the product as searching the internet in real time and attaching numbered citations (Perplexity Help). Third-party studies often find community URLs (notably Reddit) in the mix; percentages move. Earn those threads. Do not spam them.
Copilot: if your organization turns web search off, you get a model answer without current web insights (Microsoft Support). Your public-site recipe cannot override an admin toggle. Measure the consumer / web-on path your buyers actually use.
Claude: Anthropic’s own disable-language is the hedge — restricting SearchBot or User may reduce visibility and accuracy. That is not a published citation rate.
| Do this once | Do not do this four times |
|---|---|
| Entity packet + five quoteable URLs | Four “AEO programs” |
| Token table with owners | Four robots.txt religions |
| One frozen prompt list | Four vanity dashboards |
| Corroboration on domains the panel already cites | Four Reddit sprints |
Priority still follows buyers. The engine map decides where to spend extra. The recipe decides whether you are eligible anywhere.
Worked example: one hire prompt through the four ingredients
Prompt (freeze it): “Who should I hire for {category} in {metro}?”
Walk the recipe. Do not skip to a blog outline.
| Ingredient | Check on your site this afternoon | What the four engines do with a miss |
|---|---|---|
| Crawl | curl -A the citation UA (or check logs) on / and the service URL | ChatGPT Search never shows you; Perplexity never footnotes you; Copilot never sees a Bing hit; Claude User/Search never fetch |
| Extract | First 80 words of the service URL name the category, ICP, and metro | Retrieved but not shortlisted — slogan is not a criterion |
| Corroborate | Three independent URLs use the same category + metro | ChatGPT names directory-backed rivals; Perplexity footnotes a roundup you are not on |
| Recency | Price, hours, and service area match GBP and the HTML | Copilot quotes last year’s package from Bing; Claude memory names a sunset SKU |
Procedure for that one prompt:
- Run it in all four products with search / web on. Save the source list.
- Circle every cited domain. Mark owned vs third-party.
- If you are absent and rivals’ directory pages appear, you have a corroboration gap, not a headline gap.
- If you are absent and no small sites appear, check fetch first.
- If you are named with the wrong offer, it is recency or a conflicting packet — not “we need more thought leadership.”
| Panel result | Ingredient to touch first | Do not touch first |
|---|---|---|
| All four blank | Crawl / WAF | New cluster |
| Perplexity cites Reddit + a rival roundup; ChatGPT names the same rival | Corroboration | Copilot workshop |
| Copilot cites a Bing-indexed stale URL of yours | Recency | Training-bot debate |
| ChatGPT is accurate only when search is off | Residue vs live — force search in the panel | Celebrate the memory hit |
| Claude with web on invents a year | Packet + leftover URLs | Disallow ClaudeBot as the whole fix |
That loop is the recipe under load. It is not a ranking-factor hunt.
What is not a ranking factor
Folklore fills the vacuum vendors leave. Kill it in the brief so nobody buys it.
| Folklore | What is actually true | Source class |
|---|---|---|
| “Secret ChatGPT ranking factors” | Unpublished. Eligibility + extractability + corroboration + freshness are what operators can observe | Vendor docs do not list a score |
| FAQ schema forces recommendations | FAQPage JSON-LD does not mint citations. Extractable Q&A in HTML might get lifted | No vendor “FAQ = cite” rule |
llms.txt is a citation switch | Optional hint file. Not a Search Console for ChatGPT | Not in OpenAI’s search-inclusion wording |
| Paying for ads buys chat citations | OpenAI documents OAI-AdsBot for ad landing-page safety, not foundation training, not a citation shortcut (OpenAI crawlers) | Ads ≠ answers |
| Google #1 transfers to ChatGPT | Semrush’s SaaS sample: 2.1% overlap with Google top 10 | Small sample; still directional |
| Blocking all “AI bots” is privacy-complete | It often opts you out of search answers | Token split above |
| Date bumps = freshness | Engines learn empty lastmod | IndexNow FAQ: ping ≠ index |
| One engine win = all engines | Ahrefs: 86% of top sources unshared across three surfaces | Different pools |
If a vendor or an agency sells you a numbered “AI ranking factor” list with no primary source, it is a pitch. Keep the recipe. Drop the numerology.
Failure mode: block-AI robots.txt plus a slogan homepage
This is the failure I see when a site looks “done” and still never gets named.
A 2023 security pass dumped every AI user-agent into Disallow. A later CDN managed list named “AI scrapers” and quietly included OAI-SearchBot and PerplexityBot. The homepage hero says “crafting exceptional experiences.” About lists two legal names. GBP, the footer, and schema disagree on the city. Pricing is a “book a call.” The blog calendar is ambitious. ChatGPT names three competitors with directory pages and a criteria table. Perplexity footnotes Reddit and a roundup. Copilot cites a Bing-indexed competitor. Claude, with web on, never fetches you.
| Layer | What broke | Cost | Instead |
|---|---|---|---|
| Crawl | Search tokens Disallowed or challenged | Zero retrieval | Split training vs search; allow citation bots |
| Extract | No category sentence in HTML | Retrieved, unusable | 60–80 word lead + matching schema |
| Corroboration | Only owned URLs | Unsafe to shortlist | Directories, reviews, one honest roundup |
| Recency | Old package still live | Wrong recommendation or skip | Ship the real offer; 301 the corpse |
| Measurement | One Slack screenshot | False win / false panic | Frozen panel, four columns |
What it costs: you keep paying for content that cannot be fetched or cannot be defended. Competitors collect the shortlist. Sales hears “ChatGPT told me to call them” and you hear “AI doesn’t work for us.”
Do not start with a new cluster. Start with fetch logs and the entity packet.
How do you measure whether recommendations are working?
Citation rate is non-deterministic. Log a fixed 25–40 prompt panel. Re-run it. Treat one screenshot as anecdote.
| Column | Values | Win |
|---|---|---|
| Engine | ChatGPT (search on), Perplexity, Copilot (web on), Claude (web on) | You actually used the live path |
| Prompt | Frozen text | Same string every week |
| Named? | Yes / no | Recommendation prompts need the name |
| Cited? | URL / none | Citation without a name is progress, not the buyer win |
| Accurate? | Match / stale / invented | Stale is a recency ticket |
| Sources | Domains in the panel | Corroboration map |
Microsoft’s Bing Webmaster AI Performance report covers Copilot, Bing AI summaries, and “select partner integrations.” It does not name ChatGPT as a row (Bing AI Performance). Use it for Copilot / Bing AI. Do not paste it into a ChatGPT slide.
| Week | What you record | Pass |
|---|---|---|
| 0 | Token table; entity packet; 30 prompts | Written, not vibes |
| 1 | Fetch 200s for citation bots on money URLs | Logs, not a robots.txt screenshot |
| 2 | Panel across four engines | Named / cited / absent / hallucinated |
| 4 | Same prompts | Direction, not a one-off |
Prompt shapes that force a recommendation, not a definition:
| Type | Shape | Recipe miss if… |
|---|---|---|
| Hire | “Who should I hire for {category} in {geo}?” | Rivals named; you absent |
| Best-of | “Best {category} for {ICP}” | Roundups cited; you unlisted |
| Alternative | “Alternatives to {incumbent}” | You are not in the set |
| Brand | “Is {legal name} a good fit for {job}?” | Invented year or offer |
| Compare | “{You} vs {rival}” | Rival’s table quoted; your URL never appears |
Sample log row (copy the columns; do not invent a composite “AI score”):
| Date | Engine | Named | Cited URL | Accurate | Top third-party sources | Ticket |
|---|---|---|---|---|---|---|
| 2026-08-09 | ChatGPT search on | No | — | n/a | rival roundup, Wikipedia | Corroboration |
| 2026-08-09 | Perplexity | No | — | n/a | Reddit, rival docs | Corroboration |
| 2026-08-09 | Copilot web on | Yes | /pricing (old) | Stale | Bing snippet of /pricing | Recency |
| 2026-08-09 | Claude web on | No | — | Invented year on brand probe | none | Packet + fetch |
If ChatGPT and Perplexity both go dark the week you shipped an “AI” WAF, start with tokens, not with new posts. If fetch is healthy and you are still unnamed, you have a corroboration or extractability ticket — the competitors spoke’s ladder, not a fourth blog tool.
What to skip if you only have a week
A week cannot earn a roundup graph. It can make you eligible.
- Diff robots.txt and the WAF managed list against the citation tokens above. Allow them on public money URLs.
- Write the entity packet into About + homepage + one offer URL + Organization JSON-LD. Same strings.
- Confirm Bing indexed the offer URL if Copilot or ChatGPT Search matters. IndexNow ping after the edit. Do not wait for a citation miracle.
- Run 15 frozen prompts across the four engines. Screenshot sources. That is the baseline.
- Pick one third-party fix you can actually reach (GBP category, a directory NAP, a review that names the job).
Skip:
| Skip this week | Why |
|---|---|
| A 12-post calendar | Ingredient 2 and 3 are not “more URLs” |
llms.txt as the project | Not a citation switch |
| A Copilot-only content program | Spot-check after Bing eligibility |
| Reddit spam | Corroboration is earned; spam is residue |
| Buying an “AEO score” | The panel is the scoreboard |
| Rewriting a passage that already gets quoted | Recency is accuracy |
If the panel is still zero after fetch and the packet, stop and run the exclusion diagnostic. More publishing will not invent a trail.
When this is not worth doing yet
The recipe assumes a public, indexable business with a named category. Some teams are not there.
| Situation | Do the recipe? | Do this instead |
|---|---|---|
| Offer is login-only / no public URL | Not yet | One public, quoteable page for the category job |
| Legal requires blocking all fetchers | Only if you accept invisibility | Written tradeoff; do not expect citations |
| You cannot name the category in one noun | Not yet | Positioning before AEO |
| No buyer uses these four products | Thin | Confirm in CRM; maybe Google-only is honest |
| Brand facts are in a lawsuit / rename | Pause recommendations | Finish the packet; then panel |
| You want a guaranteed citation date | Never | There is no SLA |
If nobody on the sales team has ever heard a buyer mention ChatGPT, Perplexity, Copilot, or Claude, still keep crawl hygiene cheap — blocking search bots is hard to undo in a panic — but do not staff a four-engine program. Instrumented neglect beats a fake roadmap.
When it is worth it: high-consideration offers, inbound that already arrives as “I asked ChatGPT,” or a competitor set that is winning the shortlist while you own Google. Then the recipe is the work. The playbook is the system around it.
FAQ
What makes ChatGPT, Perplexity, Copilot, and Claude recommend a site?
They recommend a site they can crawl, extract as consistent entity facts, corroborate on other domains, and treat as current. Search bots and training bots are different tokens, so a training opt-out is not a citation strategy. Vendors do not publish a ranking score; eligibility plus a quoteable trail is what you can actually ship.
How do I measure whether makes ChatGPT, Perplexity, Copilot, and Claude recommend a site is working?
Run a frozen 25–40 prompt panel on ChatGPT with search on, Perplexity, Copilot with web on, and Claude with web on, and log named / cited / absent / hallucinated plus source domains. Repeat the same strings; one screenshot is anecdote. Bing’s AI Performance report can inform Copilot and Bing AI — it is not a ChatGPT console.
What usually fails first when teams try this?
Crawl access. A “block AI” robots.txt or a CDN bundle that challenges OAI-SearchBot, PerplexityBot, bingbot, or Claude’s search/user agents means the rest of the recipe never runs. Next failures are a slogan homepage with no category sentence, then a missing third-party trail. Fix fetch before you hire more writers.
How long does this take to show results?
Robots.txt adjustments are quoted around 24 hours by OpenAI and Perplexity; that is eligibility lag, not a recommendation SLA. Google recrawl can take days to months. IndexNow does not guarantee indexing. Corroboration and training residue take longer than a fetch fix — think weeks for a cleaner panel, not overnight.
What should I skip if I only have a week?
Skip the blog calendar, llms.txt theater, and a Copilot-only program. Allow citation crawlers, ship one entity packet onto About and a money URL, confirm Bing on that URL, and baseline 15 prompts. One directory or review fix you can actually reach beats twelve new posts nobody can quote.
When is this not worth doing yet?
When you have no public quoteable page, when legal blocks every fetcher, or when you cannot name a category noun. Also skip a four-engine program if buyers never use these products — keep cheap crawl hygiene, measure Google, and do not staff theater. There is no paid switch that forces a recommendation date.
CTA
If you want to be named in ChatGPT, Perplexity, Copilot, or Claude, ship the recipe — crawl, facts, corroboration, recency — before you buy another content calendar.
Lane: /visibility · Book a visibility audit.
What questions does this article answer?
- What makes ChatGPT, Perplexity, Copilot, and Claude recommend a site?
- They recommend a site they can crawl, extract as consistent entity facts, corroborate on other domains, and treat as current. Search bots and training bots are different tokens, so a training opt-out is not a citation strategy. Vendors do not publish a ranking score; eligibility plus a quoteable trail is what you can actually ship.
- How do I measure whether makes ChatGPT, Perplexity, Copilot, and Claude recommend a site is working?
- Run a frozen 25–40 prompt panel on ChatGPT with search on, Perplexity, Copilot with web on, and Claude with web on, and log named / cited / absent / hallucinated plus source domains. Repeat the same strings; one screenshot is anecdote. Bing’s AI Performance report can inform Copilot and Bing AI — it is not a ChatGPT console.
- What usually fails first when teams try this?
- Crawl access. A “block AI” robots.txt or a CDN bundle that challenges `OAI-SearchBot`, `PerplexityBot`, `bingbot`, or Claude’s search/user agents means the rest of the recipe never runs. Next failures are a slogan homepage with no category sentence, then a missing third-party trail. Fix fetch before you hire more writers.
- How long does this take to show results?
- Robots.txt adjustments are quoted around 24 hours by OpenAI and Perplexity; that is eligibility lag, not a recommendation SLA. Google recrawl can take days to months. IndexNow does not guarantee indexing. Corroboration and training residue take longer than a fetch fix — think weeks for a cleaner panel, not overnight.
- What should I skip if I only have a week?
- Skip the blog calendar, `llms.txt` theater, and a Copilot-only program. Allow citation crawlers, ship one entity packet onto About and a money URL, confirm Bing on that URL, and baseline 15 prompts. One directory or review fix you can actually reach beats twelve new posts nobody can quote.
- When is this not worth doing yet?
- When you have no public quoteable page, when legal blocks every fetcher, or when you cannot name a category noun. Also skip a four-engine program if buyers never use these products — keep cheap crawl hygiene, measure Google, and do not staff theater. There is no paid switch that forces a recommendation date.
- developers.openai.com
- support.claude.com
- docs.perplexity.ai
- support.microsoft.com
- bing.com
- openai.com
- openai.com
- openai.com
- perplexity.com
- perplexity.com
- developers.google.com
- schema.org
- developers.google.com
- indexnow.org
- blogs.bing.com
- support.microsoft.com
- help.openai.com
- searchengineland.com
- perplexity.ai
Last reviewed — OpenAI crawler docs and ChatGPT Search help, Perplexity crawler docs, Anthropic crawler help, Microsoft Copilot web-search support, Bing crawler list, Bing AI Performance, IndexNow FAQ, Google AI-features recrawl language, schema.org Organization, Semrush AI-visibility overlap, and Ahrefs Brand Radar overlap checked 2026-09-05. Vendors do not publish a ranking formula.
AI Visibility
AI Visibility Cannabis visibility when the ad accounts are banned
Google and Meta will not take the usual spend. The models still answer dispensary, cultivator, and brand questions — if the site can be read and the cart can clear a 21+ order.
AI Visibility When ChatGPT names the franchise, not your shop
Run the best-HVAC-near-me prompt panel. If the model names a national franchise, fix corroboration and entity facts — not another blog calendar.
AI Visibility How do I get cited by Perplexity specifically
Allow PerplexityBot, put a liftable answer and unique numbers in HTML, then log numbered sources on a frozen prompt panel. There is no bought citation rate.
AI Visibility What belongs in an AI visibility monthly retainer vs a one-time audit
A one-time audit is the baseline plus prioritized fixes. A monthly retainer is prompt-panel tracking, entity hygiene, page jobs, and citation recovery.
Will's Journal in your inbox.
What I learned this week building for shops, floors, and houses.
You're on the list.
Sign-up failed — try again.
By subscribing, you agree to the Privacy Policy.