HHVAC Foundry

geo ai

Can ChatGPT Read Your HVAC Website? A 5-Minute Test

Published 2026-08-13Updated 2026-08-1311 min read6 verified sources

ChatGPT can read your HVAC website only if OpenAI's crawlers — OAI-SearchBot, ChatGPT-User, and GPTBot — can actually fetch your pages. Three things decide that: your robots.txt rules, your CDN or firewall settings, and whether your content exists in the initial HTML. The five-minute test below checks all three, in order of how often each one silently fails.

This matters more than it did a year ago. Scorpion's 2026 national study of 2,000 US homeowners found that 22% now use AI tools such as ChatGPT to research or find recommendations when they need a contractor. If an AI crawler can't fetch your site, you are not eligible for any of those conversations — no matter how good your content is.

One boundary up front: this post covers access — whether AI systems can read your site at all. Whether they then recommend you is a separate problem with its own playbook, covered in our guide to getting your HVAC company recommended by ChatGPT. Access comes first because nothing downstream works without it.

01

Which AI crawlers matter for an HVAC site?

Three crawler families decide whether your HVAC site can appear in AI answers: OpenAI's three bots, Perplexity's two, and Google's Googlebot. Each operator documents its crawlers publicly, and each crawler does a different job — which is why a single "block AI bots" decision is almost always the wrong shape.

Here is what each verified crawler does, straight from the operators' own documentation:

CrawlerOperatorWhat it doesWhat blocking it costs you
OAI-SearchBotOpenAISurfaces websites in ChatGPT's search resultsOpenAI states directly: "Sites that are opted out of OAI-SearchBot will not be shown in ChatGPT search answers"
ChatGPT-UserOpenAIFetches a page when a ChatGPT user asks about itUsers who paste your URL get nothing back. Note: because these fetches are user-initiated, OpenAI says "robots.txt rules may not apply"
GPTBotOpenAICrawls content for training OpenAI's foundation modelsYour business is absent from what future models learn about your market
PerplexityBotPerplexitySurfaces and links websites in Perplexity search results; not used for trainingYou stop appearing in Perplexity answers
Perplexity-UserPerplexityFetches pages on a user's request; per Perplexity's docs it "generally ignores robots.txt rules"User-pasted URLs to your site fail
GooglebotGoogleOne crawler feeds Search, AI Overviews, and AI ModePer Google's AI-features documentation, a page must be indexed and snippet-eligible to appear in AI Overviews or AI Mode — block Googlebot and you lose all three at once

Two details in that table catch most site owners off guard. First, OpenAI's settings are independent of each other: you can block GPTBot (training) while allowing OAI-SearchBot (search), and OpenAI's documentation explicitly describes that split as a supported configuration. Second, Google runs no separate "AI crawler" for its Search AI features — AI Overviews eligibility rides entirely on ordinary Googlebot crawling and indexing. The Google-Extended token you may have read about controls AI training and grounding in some of Google's other systems (like Gemini); per Google's documentation, it is not the control for AI Overviews.

Anthropic's ClaudeBot also crawls at meaningful scale — Vercel's crawler study measured 370 million monthly ClaudeBot fetches on its network — but for an HVAC contractor, the OpenAI, Perplexity, and Google families are where homeowner queries actually happen today.

02

How do you test AI crawler access in 5 minutes?

Run these five checks in order — the first three need nothing but a browser, and the sequence goes from most-common failure to least. (Our free AI visibility checker automates checks 1 and 3 in one scan if you'd rather not do them by hand.) The qualifier that bounds this test: it verifies access, not recommendation. Passing all five makes you eligible for AI answers; it doesn't place you in them.

  1. Read your robots.txt (60 seconds). Open yourdomain.com/robots.txt in a browser. Search the text for GPTBot, OAI-SearchBot, PerplexityBot, and ClaudeBot. A Disallow: / under any of those user agents blocks that crawler; a Disallow: / under User-agent: * blocks all of them (and Googlebot too). No AI names at all means robots.txt isn't your blocker — keep going, because most real blocks live one layer down.

  2. Fetch your homepage as an AI crawler (90 seconds). In a terminal, run:

    curl -I -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" https://yourdomain.com/
    

    That user-agent string comes verbatim from OpenAI's crawler documentation. HTTP/2 200 means the request got through. 403, 503, or an HTML challenge page means something between the crawler and your server — usually the CDN — is refusing bot traffic even though your robots.txt says nothing. This mismatch is the single most useful finding the test produces, because a spoofed user-agent check approximates (not perfectly replicates) how bot-protection rules treat the real crawler.

  3. View your page without JavaScript (90 seconds). Load your homepage, press Ctrl+U (view source), and search the raw HTML for your city name and a core service phrase like "AC repair." Present in the source: AI crawlers can read it. Absent — visible on screen but missing from the source — your content is rendered by JavaScript, and the JavaScript section below explains why that makes it invisible to every major AI crawler except Google's.

  4. Ask ChatGPT to read a page (60 seconds). In ChatGPT (with search enabled), paste a specific service-page URL and ask it to summarize what the company offers. This exercises the ChatGPT-User fetcher end to end. An accurate summary is a pass. "I can't access this website" from a page that loads fine in your browser points to a CDN or firewall block — go to check 5.

  5. Open your CDN or firewall dashboard (60 seconds). If your site sits behind Cloudflare or a similar service, find the AI-crawler or bot-management settings and read what they're actually set to. This is the layer that overrides everything else: your robots.txt can allow a crawler that your firewall then blocks. The next section covers why this specific misconfiguration became common in 2025.

Log the results somewhere. If checks 1–4 pass, your access layer is clean and your AI-visibility work moves to content and reputation. If any check fails, you've found a silent eligibility problem that no amount of content spending will route around.

03

What commonly blocks AI bots without you knowing?

CDN and firewall defaults block AI crawlers far more often than robots.txt does — and since July 1, 2025, blocking is the starting state for new domains on the web's biggest CDN. Cloudflare announced it now blocks AI crawlers by default: every new domain that signs up is asked whether to allow AI crawlers, and more than one million customers had already enabled its one-click AI-crawler block since September 2024. Cloudflare manages traffic for 20% of the web. If your HVAC site was set up on Cloudflare by a web vendor who clicked through defaults, there is a real chance AI crawlers are blocked and nobody on your team ever made that decision.

The evidence that this is widespread comes from the AI companies themselves: Perplexity publishes step-by-step WAF whitelisting instructions for Cloudflare and AWS specifically because firewalls challenge its bots often enough to need documentation. When a search engine has to teach site owners how to un-block it, the blocking is not an edge case.

The common silent blockers, ranked by how often we'd expect them on a contractor site:

  • CDN default-blocking — Cloudflare's post-July-2025 default, or the one-click block toggled at some point and forgotten.
  • Bot-fight / WAF rules — generic bot protection that challenges any non-browser user agent, AI crawlers included.
  • Blanket robots.txt rules — a leftover Disallow: / from staging, or an aggressive plugin configuration.
  • Login walls and lead-gate overlays — a crawler can only fetch what an anonymous visitor can load.

What our scan of five HVAC marketing agencies found

Because this launch has no client data yet, we generated our own: on August 13, 2026, we fetched the live robots.txt file of five prominent agencies serving HVAC contractors. The finding surprised us — not one of the five declares a single AI-crawler directive. No GPTBot, no OAI-SearchBot, no PerplexityBot, no ClaudeBot, allowed or blocked:

Agency robots.txtAI-crawler directivesWhat the file actually contains
hookagency.comNoneStandard WordPress admin disallow only
bluecorona.comNoneWordPress disallows (feeds, trackbacks, categories)
thriveagency.comNoneBlocks all query-string URLs for every bot; explicitly allows AhrefsBot
hvacwebmasters.comNoneAllows everything (default Yoast block)
scorpion.coOAI-AdsBot allowedThe only AI-related directive in the set — OpenAI's ads-landing-page bot, explicitly allowed

Read that carefully: it does not mean these agencies are blocked, and it does not mean they're negligent — a robots.txt with no AI directives defaults to allowing AI crawlers. What it means is that the AI-access decision for these sites is being made implicitly, by whatever their CDN does — the exact layer Cloudflare flipped to default-block in 2025. In the marketing industry that sells AI visibility, the access layer is running on defaults. That's the state of play your HVAC site competes in, and it's why the five-minute test checks the CDN layer explicitly instead of trusting robots.txt silence. (Robots.txt files change; this table reflects the files as fetched on August 13, 2026.)

Google's own advice for appearing in AI features says the same thing in one line: ensure crawling is allowed in robots.txt, and by any CDN or hosting infrastructure. The second clause is the one that bites.

04

Does JavaScript rendering break AI visibility?

JavaScript-only content is invisible to every major AI crawler except Google's. Vercel and MERJ measured this directly across their network: none of the major AI crawlers — OpenAI's OAI-SearchBot, ChatGPT-User, and GPTBot, Anthropic's ClaudeBot, Perplexity's PerplexityBot, Meta's crawler, ByteDance's Bytespider — executes JavaScript. The crawlers download JavaScript files (ChatGPT's crawlers spent 11.50% of their requests on JS files in Vercel's data) but never run them, so content that only exists after scripts execute never reaches the model. The one exception: Google's Gemini rides Googlebot's infrastructure and renders pages fully.

The scale of what's at stake is in the same dataset: GPTBot alone made 569 million fetches on Vercel's network in one month, against Googlebot's 4.5 billion. AI crawling is already a fifth of the volume of the machine that built the entire SEO industry — and the AI fifth can't see client-rendered pages.

For an HVAC site, the practical translation:

  • Vulnerable: sites built as single-page apps or on page builders that inject service lists, city pages, or phone numbers client-side. The page looks complete to a human and nearly empty to GPTBot.
  • Safe: server-rendered or statically generated pages, where the full text ships in the initial HTML. Check 3 of the five-minute test (view source) tells you which kind you have.
  • Partial: some builders server-render the shell but load reviews, FAQs, or schema via script — the crawler sees your header and loses exactly the content AI engines cite.

The fix is architectural, not editorial: rebuild the rendering path so critical content ships as HTML. That's a standard requirement in every site we build for HVAC contractors, and it's worth demanding from any vendor — a site that fails view-source is failing five AI crawler families at once, silently.

05

Should you block AI training bots?

Blocking GPTBot while allowing OAI-SearchBot is a legitimate, supported configuration — OpenAI's documentation describes exactly this split — but for an HVAC contractor the trade-off runs opposite to a publisher's. A news site sells its content, so AI systems ingesting that content without sending traffic is a real revenue problem; that is the case Cloudflare built its default-block around, with publishers like Condé Nast and Gannett backing it. Your service pages are not the product — they're the sales collateral. An HVAC contractor generally wants AI systems to absorb who they are, where they operate, and what they do, because being known to the model is a precondition for being mentioned by it.

Our honest framing, since this is the layer we work in: allowing GPTBot does not buy placement in anyone's answers, and nobody can guarantee ChatGPT recommends you — treat any agency promising that as a red flag. What allowing access does is keep you eligible across every surface: search answers today (OAI-SearchBot, PerplexityBot, Googlebot) and model knowledge over time (GPTBot). Blocking training bots removes a surface for essentially zero commercial benefit to a service business, unless you have a specific reason — proprietary pricing data, licensed content — to withhold it.

If you want the access layer audited and then built into actual AI-answer visibility — measured, not promised — that's the scope of our GEO service for HVAC companies.

FAQ

Frequently asked questions

Does blocking GPTBot remove my site from ChatGPT?

No. Per OpenAI's crawler documentation, GPTBot governs model training, while ChatGPT search inclusion is governed by OAI-SearchBot — the two settings are independent. Opting out of OAI-SearchBot is what removes you from ChatGPT search answers; blocking GPTBot only keeps your content out of future training runs.

How fast does a robots.txt change take effect for ChatGPT?

OpenAI states it can take about 24 hours from a robots.txt update for its systems to adjust search inclusion. Perplexity's documentation gives the same figure — up to 24 hours. CDN-level changes (unblocking a firewall rule) apply as soon as the rule propagates.

Can ChatGPT read pages behind a login or quote-gate?

No crawler or fetcher can read content an anonymous visitor can't load. If your pricing, service area, or reviews sit behind a form gate, they're invisible to every AI system — check 4 of the test (pasting the URL into ChatGPT) exposes this immediately.

Does allowing AI crawlers guarantee ChatGPT will recommend my HVAC company?

No — and be wary of anyone who guarantees it. Access makes you eligible; recommendation depends on what AI engines find about you across your site, reviews, and third-party mentions. That layer has its own playbook: how HVAC companies get recommended by ChatGPT.

Do I need an llms.txt file for ChatGPT to read my site?

No. Access is controlled by robots.txt, your CDN, and your rendering — not by llms.txt, which is a separate proposed convention with its own trade-offs. We cover what it is and whether it's worth shipping in our llms.txt guide for contractor websites.

What's the fastest sign my site is blocked at the CDN layer?

A clean robots.txt combined with a 403 or challenge page on the user-agent curl test (check 2). Robots.txt says "allowed," the server says "no" — that contradiction is the CDN or WAF talking, and it's where Cloudflare's 2025 default-block shows up.

Does blocking Google-Extended affect AI Overviews?

No, per Google's documentation. AI Overviews and AI Mode eligibility runs on ordinary Googlebot crawling and snippet eligibility. Google-Extended limits AI training and grounding in some of Google's other systems — blocking it does not remove you from AI features in Search, and blocking Googlebot removes you from everything at once.

Want this working for your HVAC company?

Transparent pricing, month-to-month, and a plan built from your market's data — not a template.