Siteiz.

← all guides

Fixes

Do cookie banners block AI crawlers?

A JavaScript cookie wall can hand an AI crawler a consent notice instead of your page, and even overwrite your title. Here is how to check and fix it.

Published August 3, 2026

Open your homepage in a browser with JavaScript turned off. If you see your headline and copy, an AI crawler sees them too. If you see a gray box, a spinner, or a "we value your privacy" notice with nothing behind it, that notice is what ChatGPT reads as your page.

Cookie banners are not the villain here. A consent wall is: the pattern where a script hides or replaces your content until the visitor clicks accept. That pattern is common, it is invisible in a normal browser, and it can make your best pages disappear from AI search.

Why a consent wall hides your page

AI crawlers read raw HTML and stop there. Analysis of about 500 million GPTBot fetches, as of mid-2026, found zero JavaScript execution. The crawler takes the HTML your server sends and never runs a line of script.

A consent wall depends on the opposite. The banner is injected by JavaScript, the accept button is wired up by JavaScript, and in the strict setups the real content is only revealed after a click. A crawler runs none of that. It cannot click accept, so it never sees what accept would reveal. Whatever sits in the pre-consent HTML is the entire page as far as ChatGPT, Claude, and Perplexity are concerned.

There is a second, quieter failure. Some consent platforms redirect a first-time visitor to a separate consent URL, or render a placeholder <title> before the app hydrates. The crawler follows the redirect or reads the placeholder and records it. That is how an AI ends up naming your page "Cookie preferences" instead of "Pricing" or "Volvo FH Electric".

What actually breaks

Setup What a person sees What the AI crawler receives
Content revealed only after clicking accept Full page after one click The consent notice, no content
Redirect to a /consent page for new visitors A brief interstitial, then the page The interstitial, with its title
Real content in HTML, banner as an overlay Full page plus a banner The full page, correctly
Title set to a placeholder before hydration Correct title after load "Loading", "Cookie consent", or blank

Only the third row is safe. The first two send a crawler home with a compliance notice and none of your words.

Why it costs you pipeline

The visitors AI sends are already qualified. AI referrals convert at roughly 14 to 17 percent, as of mid-2026, against about 1.8 percent for classic Google organic. The model did the pre-selling, so the click that lands on your site is a warm one.

A consent wall cuts that off at the root. If the crawler read a cookie notice instead of your pricing, the model has nothing to quote and nothing to recommend. Your competitor, whose content sits in plain server HTML, gets described and cited instead. You do not lose a ranking position. You lose the answer entirely, and with it the highest-intent traffic on the web.

How to check in two minutes

Fetch your page the way GPTBot does, with no browser and no scripts, and read what comes back:

# Fetch the raw HTML an AI crawler receives
curl -sL -A "Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)" \
  https://yourdomain.com/ -o crawler-view.html

# Is your real content in there?
grep -i "your headline text" crawler-view.html

# What title did the crawler get?
grep -i "<title>" crawler-view.html

If grep finds your headline, you are fine. If it returns nothing, or the title is a consent or loading placeholder, the wall is blocking you. The faster manual check is the same page in a browser with JavaScript disabled, since that is close to the crawler's view. We walk through this comparison in detail in Does ChatGPT read JavaScript?

The fix: overlay, not wall

The goal is boring and achievable. Your content and your title live in the server HTML. The consent banner sits on top as an overlay. Cookie-setting scripts wait until the visitor accepts. That satisfies GDPR and ePrivacy, which govern setting non-essential cookies, not showing text.

Three rules make it work:

Render content and title on the server. The <title> and body copy must be in the first HTML response, not painted in after hydration. A static title never gets overwritten by a placeholder.

Make the banner an overlay. Position it over the page. Do not replace the page with it, and do not display:none your content until consent. The crawler reads through to the content underneath.

Defer only the cookies, not the page. Load analytics and marketing tags after the accept click. Blocking the scripts until consent is correct. Blocking the content until consent is the mistake.

<!-- Content is always present in the HTML -->
<main>
  <h1>Your real headline</h1>
  <p>Your real content, readable with scripts off.</p>
</main>

<!-- Banner is an overlay, added after; it never gates the content -->
<div id="cookie-banner" role="dialog" aria-label="Cookie consent">
  <p>We use cookies to measure traffic.</p>
  <button data-consent="accept">Accept</button>
  <button data-consent="reject">Reject</button>
</div>

<script>
  // Non-essential cookies load only after the visitor accepts.
  // The content above never depended on this running.
</script>

And confirm the crawlers are allowed in at all. Check that robots.txt does not disallow GPTBot or route it to a consent-only path, and that no redirect sends bots to an interstitial. This sits alongside the other reasons a page goes missing, which we cover in Can ChatGPT read your website? The scan methodology is public if you want to see how we test each of these automatically.

Common questions

Do cookie consent banners stop ChatGPT from reading my site?
A banner by itself does not. The problem is a consent wall that hides your content until the visitor clicks accept. AI crawlers do not run JavaScript and do not click, so they receive whatever the page shows before consent. If that is a blank shell or a notice, that is all the crawler gets.
Why does an AI show a cookie or consent message as my page title?
When a crawler is redirected to a consent page, or the pre-consent HTML sets a placeholder title, the crawler records that title. The model then quotes "Cookie preferences" or "Please accept cookies" as the name of your page, because that is the title it received.
How do I keep cookie compliance without blocking crawlers?
Serve your real content and real title in the server HTML, and layer the consent banner on top as an overlay. Do not gate content or redirect based on consent, and only load cookie-setting scripts after the visitor accepts. The page stays readable and stays compliant.
Does robots.txt have anything to do with this?
It can. Some consent and tag-manager setups add crawler rules or serve a separate path that is disallowed. Confirm GPTBot and other AI crawlers are allowed to fetch the real page, not just a consent endpoint.

Related reading

See what AI crawlers see on your site

The free Siteiz scan reads one page of your site the way an AI crawler does and grades it A to F. It takes about 30 seconds.

Run the free scan