Reviews and AI
How to make your customer reviews visible in ChatGPT and AI search
ChatGPT, Perplexity and Claude read raw HTML, so a JavaScript reviews widget hides your reviews from them. A 2-minute test and the settings to fix.
Published
Contents
You have 200 five-star Google reviews and a widget that shows them on your homepage. Yet when someone asks ChatGPT for "a reliable HVAC company in Austin," your name never comes up. This guide explains where AI assistants get their sources, why your reviews widget may be hiding your best proof from them, and what to check this week.
It is written for local businesses and the people who build their websites. There is no secret "rank in ChatGPT" trick here: Google itself says optimizing for AI search is SEO. What is specific to reviews is how they get onto your page.
Where do ChatGPT, Perplexity, Claude and Google get their sources?
Every assistant queries a search index, then writes an answer from the pages it finds. None of them reads "the internet" live. They read what their own crawlers, or a partner's, were able to fetch.
| Assistant | Where its sources come from | Crawlers to allow |
|---|---|---|
| ChatGPT search | Its own index (OAI-SearchBot) plus third-party search providers that OpenAI does not list publicly (Bing is the one most often cited) | OAI-SearchBot, ChatGPT-User, bingbot |
| Perplexity | Its own index | PerplexityBot, Perplexity-User |
| Claude | Brave Search, according to tech press reports (Anthropic does not detail it in its public docs). Brave's crawler follows the rules you set for Googlebot (Brave help) | Claude-SearchBot, Claude-User, and Googlebot access for Brave |
| Microsoft Copilot | The Bing index | bingbot |
| Google AI Overviews and AI Mode | The Google index and its usual ranking systems | Googlebot |
Two mechanics are worth knowing.
Query fan-out. Google says AI Overviews and AI Mode may issue "multiple related searches across subtopics and data sources" to build one answer. "Best HVAC company in Austin for an old furnace" can become several searches: HVAC companies in Austin, reviews, furnace repair specialists, emergency service hours. Your page does not need to answer the whole question. It needs to answer one of those sub-questions clearly.
ChatGPT works the same way. Ahrefs analyzed 66.6 million ChatGPT responses (free, logged-out, August and September 2026). In English fan-out queries, "2026" appeared 22.9% of the time and "official" 13.1%, and "reviews" was rising. ChatGPT looks for recent information, official sources, and reviews.
14.4%
of the ChatGPT responses studied triggered a web search. The rest came from what the model already knew, so being mentioned around the web matters as much as having a good page.
(Ahrefs, How ChatGPT Does Query Fan-Out, October 12, 2026)Your Business Profile is a direct source. Google says Google Business Profiles can help your products and services show up in AI responses. For a local business, the profile comes before the website.
Why is a JavaScript reviews widget invisible to AI crawlers?
Because OpenAI, Anthropic and Perplexity crawlers read the raw HTML: the code your server sends before any script runs. A typical widget sends an empty placeholder, then a script fetches your reviews and draws them in the visitor's browser. Visitors see stars. The crawler sees a <script> or <iframe> tag.
Vercel measured the major AI crawlers on its network and found that none of them executed JavaScript. OpenAI and Anthropic crawlers sometimes downloaded JavaScript files, but did not run them. That measurement is from December 2024, and none of these companies has documented a change since.
Googlebot does run JavaScript, but iframes add a second problem: the content lives at another URL, owned by the widget vendor. Your review text is not part of your page, and vendors often mark that URL noindex so it won't rank instead of you.
| How reviews are displayed | Review text in your page's HTML? | Readable by ChatGPT, Perplexity, Claude |
|---|---|---|
| Screenshot of reviews | No (image) | No |
| JavaScript widget | No, added after load | No |
| Iframe widget | No, it's on another URL | No |
| Server-side rendering (plugin, server include, API) | Yes | Yes, if the crawler isn't blocked |
| Reviews pasted by hand | Yes | Yes, but they go stale |
The server-side options are compared in our guide to embedding Google reviews on your website.
How do you check your reviews in 2 minutes?
Three steps, no paid tool.
Copy a phrase from a review
Open the page on your site that shows your reviews and copy a few words from a recent one, such as "showed up on time and explained everything."
Search for it in the page source
Right-click and choose "View page source" (Ctrl+U, or Cmd+Option+U on a Mac), then search with Ctrl+F. Don't use the browser's Inspect panel: it shows the page after scripts ran, not what crawlers receive.
Repeat it as a crawler
In a terminal, request the page with an AI crawler's user agent and count the matches. Zero means the crawler can't see your reviews. A 403 or a challenge page means it is blocked.
curl -s -A "Mozilla/5.0 (compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot)" \
https://www.yoursite.com/reviews | grep -c "showed up on time"
# HTTP status returned to Perplexity's crawler (expect 200)
curl -s -o /dev/null -w "%{http_code}\n" \
-A "Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)" \
https://www.yoursite.com/
One limit: this fakes the crawler's name, not its IP address. Cloudflare and some firewalls check both, so your curl can pass while the real crawler is blocked. Check their dashboard as well (next section).
If you'd rather skip the terminal, our free AI review visibility checker runs these checks for you: reviews in the HTML, AI crawlers allowed, structured data valid.
Which AI crawlers should you allow in robots.txt?
Allow the search and user-triggered crawlers: they feed the answers. Training crawlers are a separate decision with no effect on search. These are the official user-agent tokens, checked against each company's documentation on October 19, 2026.
| Crawler (user agent) | Company | What it does | What to do in robots.txt |
|---|---|---|---|
OAI-SearchBot | OpenAI | Index for ChatGPT search | Allow. If blocked, your site won't appear in ChatGPT search answers |
ChatGPT-User | OpenAI | Visits a page when a user asks | Allow. OpenAI notes robots.txt may not apply to these visits |
GPTBot | OpenAI | Model training | Your call. No effect on ChatGPT search |
PerplexityBot | Perplexity | Index for Perplexity | Allow |
Perplexity-User | Perplexity | Visits a page when a user asks | Allow. Perplexity says it generally ignores robots.txt |
Claude-SearchBot | Anthropic | Indexing for Claude's search | Allow |
Claude-User | Anthropic | Visits a page when a user asks | Allow |
ClaudeBot | Anthropic | Model training | Your call |
Googlebot | Search, AI Overviews, AI Mode (and Brave, which follows its rules) | Allow | |
Google-Extended | Token for Gemini training and grounding outside Google Search | Your call. Google says it does not affect inclusion in Google Search (Google crawlers) | |
bingbot | Microsoft | Bing index, used by Copilot (and likely partly by ChatGPT) | Allow |
A robots.txt with no rules for these crawlers already allows all of them. If you want to opt out of training while staying visible in answers, a short version looks like this:
# Search and user-triggered visits: allowed
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: PerplexityBot
User-agent: Claude-SearchBot
User-agent: Claude-User
Allow: /
# Model training: opted out (editorial choice, no effect on search)
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /
User-agent: *
Allow: /
OpenAI and Perplexity both say robots.txt changes take about 24 hours to apply.
Is Cloudflare blocking AI crawlers on your site?
Possibly, without anyone deciding it. Since July 1, 2025, Cloudflare blocks AI crawlers by default on new domains, and many hosts and agencies switch on bot protection without reading the details. Your robots.txt can allow everything while the firewall in front of it returns a 403 or a challenge page.
- Cloudflare: open AI Crawl Control and confirm OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot and Claude-User are neither blocked nor challenged.
- Check Cloudflare's managed robots.txt setting: it can add blocking rules to your file.
- Bot Fight Mode, your host's firewall or a WordPress security plugin: make sure none of them return 403 to verified crawlers.
- Google Search Console: confirm your site is not excluded from generative AI features, which is a requirement for AI Overviews.
- Bing Webmaster Tools: verify the site, submit your sitemap and turn on IndexNow. It is the way into Copilot.
Does structured data help you get cited?
Not directly. Google says there is "no special schema.org structured data" to add for its AI features, and no additional technical requirements. What matters is that the page is indexed and eligible to show with a snippet.
A LocalBusiness JSON-LD block is still worth having: it tells machines who you are, where you are and how to reach you, which helps every engine connect your site to your Business Profile. Don't add an AggregateRating built from your own reviews, though. Google treats those reviews as "self-serving": they don't earn stars in search results, even when they come from a third-party widget. Our guide to review schema and Google stars covers what is eligible. To write that JSON-LD without mistakes, use our local business schema generator, which adds no rating and no reviews.
The same goes for popular shortcuts. Google says its search does not use llms.txt, and that you don't need to split content into chunks or rewrite it "for AI." Write clear sections that open with the answer.
Which signals matter for a local business?
AI assistants cross-check sources before naming a business. The more consistent and recent your information, the more reliable material they have. The full playbook, from your Business Profile to AI assistants, is in our guide to how local businesses show up in AI search.
- A complete Google Business Profile. Accurate categories, current hours, photos, services, and recent reviews that you reply to. Google cites this source itself.
- The same NAP everywhere. Identical name, address and phone on your site, your Business Profile, Yelp, Facebook, the BBB and your industry directories. A different suite number on one listing muddies the match.
- Mentions beyond your own site. Local news, chamber of commerce pages, "best of" lists in your city, industry roundups. Answers without a web search rely on what the model has read; comparison answers mostly cite third-party sites.
- A page that answers your customers' questions. Services, price ranges, service area, turnaround times, in text rather than in a PDF or an image.
- Reviews as text on your site. The most concrete social proof you can give a crawler, as long as it is in the HTML.
Does review freshness matter?
Yes. AI assistants mostly cite pages that were updated recently, and reviews that sync every day keep your page current with no extra work.
75%
of pages cited by ChatGPT, Gemini and Perplexity had been updated within the past year (7,683 dated pages, March to June 2026). The last-updated date mattered more than the publish date.
(Seer Interactive, content recency study, July 24, 2026)Don't change a page's date without changing its content: it misleads readers and is easy to spot. New reviews, on the other hand, are a real update.
How does Revys make your reviews readable by AI?
Revys fetches your Google reviews every night through the official Google Business Profile API, then writes them into your site's HTML with a compliant LocalBusiness JSON-LD block and no self-serving rating. Three methods are readable by AI crawlers:
- The WordPress plugin: Revys pushes your reviews to your site every night, and WordPress renders them server-side with a shortcode or a block.
- The server include
/api/embed/<id>/html: one line of code on a Next.js, PHP or Node site inserts the HTML fragment into your page (see Next.js and PHP and HTML). - The JSON API
GET /api/v1/reviews, for custom builds.
The five layouts (grid, list, carousel, wall, badge) and their settings are on the Google reviews widget page. Pro starts at $7.90 a month or $79 a year for one location, with volume pricing.
What no one can guarantee
Assistants pick their own sources, and their methods change month to month. Google reminds site owners that meeting its requirements does not guarantee indexing or display. And as the Ahrefs study shows, most ChatGPT answers don't run a web search at all.
What you control fits in four points: reviews and business details as text in your HTML, search crawlers that get through, a well-kept Business Profile, and the same information everywhere. That gets you in the running. It doesn't win the race for you.
To track progress, check once a month who gets named in ChatGPT, Perplexity and Google for three or four questions your customers ask ("[service] in [city]," "best [service] near me with good reviews"). Track each engine separately, because their sources overlap very little. Also watch the generative AI performance report in Search Console and the AI Performance report in Bing Webmaster Tools, which show when your pages are used as sources.
FAQ
How do I get my business mentioned in ChatGPT?
Allow OAI-SearchBot in robots.txt and in your firewall, put your services, location and reviews on your site as real HTML text, keep your Google Business Profile complete, and use the same name, address and phone everywhere. ChatGPT then picks its own sources; no one can promise you a mention.
How do I show up in Google AI Overviews?
Google says there are no extra requirements: the page must be indexed, eligible for a snippet, and your site must not be excluded from generative AI features in Search Console. After that it is regular SEO, plus a complete Google Business Profile for local businesses.
Can ChatGPT read my Google reviews widget?
Not if the widget loads with JavaScript or inside an iframe. OpenAI, Anthropic and Perplexity crawlers read raw HTML without running scripts. Check by searching for a sentence from a review in your page source (Ctrl+U). If it is not there, AI crawlers can't see it.
Should I block GPTBot?
GPTBot collects data for training OpenAI models; it is not the ChatGPT search crawler. Blocking it does not remove you from ChatGPT search answers, but blocking OAI-SearchBot does. Decide on training separately from search.
Do I need special schema markup for AI search?
No. Google states there is no special schema.org markup to add for its AI features. A clean LocalBusiness JSON-LD still helps every engine identify your business, but it does not trigger citations on its own.
Is SEO dead now with AI?
No. Google's own guide says optimizing for its AI features is SEO: AI Overviews and AI Mode rank and ground answers with the same core systems. Copilot relies on the Bing index and ChatGPT on its own crawler plus third-party search providers, so being crawlable and indexed still comes first.
Sources
- Google Search Central: Optimizing for generative AI features in Google Search
- Google Search Central: AI features and your website
- OpenAI: Overview of OpenAI Crawlers
- Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler?
- Perplexity: Perplexity Crawlers
- Vercel: The rise of the AI crawler (December 2024)
Related
- Local business AI search: how to show up in ChatGPT, Perplexity and Google AILocal pack, AI Overviews, ChatGPT, Perplexity: where AI tools get their information about local businesses, and what owners can actually do about it.Read
- Review schema and Google star ratings: what's actually eligible in 2026Reviews you show about your own business, even through a Google reviews widget, can't earn stars in Google results. Here's what still qualifies, and why.Read