noindex is the most absolute exclusion directive Google offers. A page with noindex is not in Google's index. It cannot appear in classic search, in AI Overviews, or in AI Mode. There is no nuance and no exception. If you find noindex on a page that should be cited by Google, removing it is the single fix.
What Google says
“To be eligible to be shown as a supporting link in AI Overviews or AI Mode, a page must be indexed and eligible to be shown in Google Search with a snippet.”
Why this matters for AI Overviews
noindex is supposed to be applied intentionally. In practice it shows up by accident more often than any other indexing directive. Common culprits we have run into:
- Staging environment configuration that leaked to production. A Next.js or WordPress site ships with
noindexon staging, the env-flag flips, but a static<meta name="robots" content="noindex">stays in the head. - CMS templates with a "private" toggle that defaults to
noindexfor new pages. A content editor forgets to flip it. - The
noneshorthand.<meta name="robots" content="none">is shorthand fornoindex, nofollow. Many editors do not realize. X-Robots-Tag: noindexin a CDN rule for a path that grew to include important URLs.unavailable_afterdates that have already passed. A page set tounavailable_after: 31-Dec-2024becomes equivalent tonoindexstarting January 1.
Any of these will remove the page from AI Overviews silently. There is no warning, no Search Console alert until the page actually drops from results.
How to fix it
Find the directive
Check three locations in this order:
- HTML meta tag:
<meta name="robots" content="noindex"> <meta name="robots" content="none"> <meta name="googlebot" content="noindex"> - HTTP response header (X-Robots-Tag):
X-Robots-Tag: noindex X-Robots-Tag: googlebot: noindex unavailable_after:<meta name="robots" content="unavailable_after: 31-Dec-2024 23:59:59 GMT">
The fastest way to find which one is firing on a live URL is Google Search Console's URL Inspection tool: it shows you exactly what Google saw. The free AI Overview Checker will also flag noindex from either source.
Remove it
If the page should appear in Search and AI Overviews, remove the directive entirely. Do not replace it with index, follow (that is the default; setting it adds noise without adding value).
If you have a real reason to keep some pages out of AI Overviews but in Search, noindex is not the right tool: it removes the page from Search entirely. Use nosnippet instead. That keeps the page in Search but removes it from AI features.
Verify
After removing the directive, request re-indexing via Search Console's URL Inspection tool, then wait. Indexing usually catches up within a few days. AI Overview eligibility returns once the page is back in the index.
Common mistakes when implementing the fix
- Setting
noindexto "control" AI Overview appearance. It removes the page from Search entirely. Usenosnippetto keep Search but remove AI Overviews. - Forgetting that
<meta name="robots" content="none">meansnoindex, nofollow. This catches teams that grep for "noindex" specifically and miss the shorthand. - Leaving staging
noindexin production. Always tie the directive to an environment variable, never hardcode in the template. - Using
noindexon category or filter pages by default. Sometimes those are the pages you most want cited (a well-curated category page can be the AI Overview source).