Skip to content

Indexable and quotable (noindex, nosnippet, max-snippet)

What the scan checks: it reads every directive surface that can suppress this page, not just one tag. That means the <meta name="robots"> tag, the <meta name="googlebot"> tag, and every X-Robots-Tag response header value (repeated headers and user-agent-scoped forms like X-Robots-Tag: googlebot: nosnippet included). In those it looks for three things:

  • noindex — the page is dropped from the index entirely. Fails the check.
  • nosnippet or max-snippet:0 — the page stays indexed, but no text may be quoted from it. Fails the check.
  • a small max-snippet:N — enough for a caption, not for an answer. Warns.

It also counts data-nosnippet elements and flags any that overlap the first 200 words of your content.

These are two separate problems that look similar and are fixed in the same place.

noindex is a direct instruction to keep the page out of search indexes, and AI answer engines that ground their answers in search results honor it. A single noindex on an otherwise perfect page removes it from the citable set entirely.

nosnippet and max-snippet:0 are subtler and, if anything, easier to leave on by accident. The page still ranks. It still appears in search. But Google’s own AI-features documentation names these as the controls that remove your content from AI Overviews and AI Mode as direct input. So the page is present, invisible in the answer, and nothing in your analytics tells you why. data-nosnippet does the same thing at the fragment level: harmless around a cookie bar, expensive when it wraps the opening paragraph that is the exact text an engine wanted to quote.

The common accidents are the same for both: the directive survives a staging-to-production deploy, a CMS “hidden from search” toggle sets it, a CDN rule applies it to a whole path, or a legal or paywall requirement added nosnippet years ago and nobody revisited it once AI answers became the traffic that mattered.

Note the scope honestly: nosnippet and max-snippet are Google-documented controls. No other AI engine publishes an equivalent directive, and we do not claim one exists.

First, find where the directives live. Check the meta tags:

Terminal window
curl -s https://example.com/your-page | grep -iE '<meta[^>]+name="(robots|googlebot)"'

And the headers, where a directive can hide even when the HTML looks clean:

Terminal window
curl -sI https://example.com/your-page | grep -i "x-robots-tag"

Then remove what you did not intend:

  • Meta tag: delete noindex / nosnippet / max-snippet:0 so the tag reads <meta name="robots" content="index, follow">, or remove the tag entirely (the defaults are indexable and quotable). Check the googlebot-specific tag separately: a clean robots tag next to a googlebot tag carrying nosnippet is a real and easily-missed combination.
  • Header: find the X-Robots-Tag in your server config (nginx add_header, Apache, a CDN rule, or a Next.js headers() entry) and remove it for production routes. Remember the header can be sent more than once, and a user-agent-scoped form (X-Robots-Tag: googlebot: nosnippet) applies to the crawler behind Google’s AI surfaces.
  • CMS: look for a per-page “discourage search engines” or “hide from search” setting and switch it off.
  • data-nosnippet: keep it on genuinely non-quotable fragments (a price that changes hourly, a personalised greeting). Take it off the opening answer block, the summary, and anything you would be happy to see quoted.
  • max-snippet: either remove it or raise it. If it was set to protect paywalled content, scope it to the paywalled routes rather than site-wide.

Re-run the two commands above and confirm neither returns noindex, nosnippet or max-snippet:0. Keep them only on pages you genuinely want excluded (thank-you pages, internal search results, staging) or on content you are contractually not allowed to have quoted.

Reference: Google’s AI features and your website documentation is the primary source for what these directives do to AI Overviews and AI Mode.