Open your website in a browser, hit Ctrl+U to view source, and search for nosnippet. If you find a line reading <meta name="robots" content="nosnippet">, you’ve found the most expensive line of text on your entire site: under Google’s current official documentation, this directive removes your text preview from search results and simultaneously removes your content from the citation input of AI Overviews and AI Mode.
Most sites carrying this line don’t remember who added it — the usual suspects are a long-departed SEO consultant guarding against content scrapers, or an SEO plugin’s global setting. The directive is still there; the reason for it left years ago.
TL;DR
Snippet control is the fail-safe dimension among the 12: most sites’ problem is over-blocking, not under-blocking. The nosnippet / max-snippet / data-nosnippet directives, designed in 2019 for search result previews, are now explicitly bound to AI citations (AI Overviews / AI Mode / Copilot) in both Google’s and Bing’s official documentation — old directives have grown new teeth. The right strategy is open by default, lock precisely and only by exception, while staying clear-eyed about one fact: these locks currently do nothing against ChatGPT, Claude, or Perplexity. Fragment-level control only exists in the Google and Bing world.
Born in 2019, Grew AI Teeth in 2025
The timeline first, because it explains why older sites are the ones that get hurt.
Google launched max-snippet, data-nosnippet, and the rest of the snippet control set on September 24, 2019. The timing overlapped almost exactly with the EU Copyright Directive (France legislated first, requiring platforms to pay or obtain licenses for news snippets), and the industry widely read the two as connected — though Google’s own announcement never mentioned any legislation, so that causal link is media interpretation, not an official statement. Back then, the directives governed something modest: the two or three lines of gray preview text on a results page.
The turn came when AI search became the main battlefield. Google’s robots meta tag documentation now states in plain text that nosnippet applies to all result forms — “web search, Google Images, Discover, AI Overviews, AI Mode” — and prevents the content from being used as direct input for AI Overviews and AI Mode; max-snippet carries nearly identical language. The same AI features documentation adds an even more consequential line: to be eligible as a cited source in AI Overviews or AI Mode, a page must be indexed and eligible to appear in search results with a snippet — snippet eligibility is citation eligibility. The two are bound together.
Bing is even more direct. It has supported max-snippet and nosnippet since April 2020, and in October 2025 formally added data-nosnippet, with the official announcement stating outright that the attribute controls both search results and “AI-generated answers in Copilot experiences powered by Bing.”
One widespread misconception needs dismantling here: Google-Extended has nothing to do with any of this. It is a standalone crawler token governing whether your content can be used to train Gemini models and for grounding in Vertex AI; Google’s documentation explicitly says it does not affect Search inclusion and is not a ranking signal, and the entire page never mentions AI Overviews. To control AI Overviews citations, you use the snippet directives; to block Gemini training, that’s the Google-Extended lane. Mixing the two produces “blocked training but not citation” (or the reverse) — in the layered model we covered in the 8 AI crawlers article, this is the wire people most often cross.
Four Directives and Their Syntax Traps
| Directive | Level | Effect | Easiest trap to step on |
|---|---|---|---|
nosnippet (meta robots) |
Whole page | No text preview shown; also exits AI Overviews / AI Mode citation input | Plugin applies it globally — one line kills the whole site |
max-snippet:[N] (meta robots) |
Whole page | Caps snippet length at N characters; 0 equals nosnippet; -1 lets Google decide |
Writing 0 thinking it means “default” |
data-nosnippet (HTML attribute) |
In-page fragment | That element’s content stays out of snippets and AI citation input | Only valid on span / div / section; placed on a layout container, it locks the whole page |
noarchive (meta robots) |
Whole page | No effect on Google anymore (cache retired in 2024, directive now listed as deprecated); Bing still supports it | Using it as an “anti-AI” switch — it never governed that |
Three spec details you must know before using these in anger:
data-nosnippet is a boolean attribute. Writing data-nosnippet="false" does not turn it off — the value is ignored, and the attribute takes effect by merely existing. The only way to disable it is to remove the attribute entirely.
An unclosed <div> extends the block to the end of the page. Google’s documentation explicitly warns that data-nosnippet on an improperly closed element extends the exclusion to wherever the parser decides the boundary is. Delete one extra </div> during a template revamp and your citable surface silently drops to zero — this failure produces no error message anywhere.
When directives conflict, the most restrictive wins. With max-snippet:50 and nosnippet both present, the result is nosnippet. Which means an audit can’t stop at “found one good directive” — collect every robots directive on the page before judging.
Control Boundaries: Who Your Locks Actually Work On
This is the most important table in the article. Snippet control directives are not a universal protocol — each lock’s effective range varies widely:
| Engine / product | Site level (robots.txt) | Page level (meta robots) | Fragment level (data-nosnippet) |
|---|---|---|---|
| Google Search + AI Overviews / AI Mode | Supported | Supported; docs explicitly bind it to AI citations | Supported, same as left |
| Bing Search + Copilot | Supported | Supported since 2020 | Supported since Oct 2025; docs explicitly cover Copilot |
| ChatGPT (OpenAI crawlers) | Supported | noindex-type binary switches only (X-Robots-Tag) | Nothing in official docs |
| Claude crawlers | Supported | Nothing in official docs | Nothing in official docs |
| Perplexity | Supported | Nothing in official docs | Nothing in official docs |
Searching the official crawler documentation of OpenAI, Anthropic, and Perplexity turns up only site- or path-level robots.txt controls. In other words: no official mechanism exists today for blocking ChatGPT or Perplexity from citing one specific passage on your page — you either block the whole page or open the whole page. As a footnote, even the robots.txt layer isn’t ironclad: Cloudflare publicly reported in August 2025 that Perplexity was using undeclared crawlers to circumvent site blocking rules. There’s a gap between control and reality.
A standardized fix is on the road but hasn’t arrived. The IETF’s aipref working group is drafting a robots.txt-level standard for AI usage preferences (the search / ai-input / ai-train triad; Cloudflare’s Content Signals is compatible with it — details in the Content-Signal article). Two things to keep straight: its granularity is site or path level, so it cannot lock an in-page fragment; and it’s still a draft — a Google Search engineer has publicly said these robots.txt signals currently carry “no practical force for any crawler.” Track it as future tense; don’t rely on it in the present tense.
So the actual chessboard of snippet control: Google and Bing give you three levels of granularity; every other engine gives you a whole-page switch. Strategy has to be designed around that reality, and the five checkpoints below follow that order.
Checkpoint 1: Zero Page-Level Self-Harm Directives
What to check
- Whether
<meta name="robots">or the HTTPX-Robots-Tagheader containsnosnippet,noindex, ormax-snippet:0 - Check beyond the homepage — sample one page per template (article, product, category)
curl -s https://yourdomain.com/ | grep -io '<meta[^>]*robots[^>]*>'
curl -sI https://yourdomain.com/ | grep -i 'x-robots-tag'
Why it matters
This class of directive is the dimension’s only one-vote veto: noindex keeps the page out of the index entirely, nosnippet keeps it in the index but out of the citation pool. However well the other 11 dimensions score, one line here zeroes them out.
Common mistakes
- An SEO plugin’s “prevent content theft” option, which is a global
nosnippetunderneath - A staging environment’s
noindexshipping to production with a deploy - Meta tags injected by JavaScript — the raw HTML looks clean and the problem only shows in the rendered DOM, so audit both layers
Checkpoint 2: Where data-nosnippet Lands
What to check
- Where each
data-nosnippetelement sits: a precise small passage, or<main>,<article>, or a layout container with content / wrapper / container in its class name - Whether it covers FAQ, definition, or glossary blocks — the content most worth citing
- Whether the total count has drifted out of control (dozens scattered site-wide usually means nobody owns them)
One line in the browser console does the inventory:
document.querySelectorAll('[data-nosnippet]').forEach(el => console.log(el.tagName, el.className, el.textContent.slice(0, 40)))
Why it matters
The entire value of data-nosnippet is granularity — it’s the only tool that can say “this page may be cited, but this passage may not.” Hang it on a layout container and the granularity advantage becomes a whole-page block, with one property that makes it worse than meta nosnippet: it hides deep in the HTML and is far harder to spot than a meta tag.
Common mistakes
- A frontend engineer copy-pasting
data-nosnippetas a generic data attribute, letting it spread across the site inside a component - Covering the FAQ block — hand-locking the most citable content you own
- Unclosed divs letting the block bleed outward (covered in the spec section above; this is where it actually detonates)
Checkpoint 3: Lock Only What Deserves Locking
What to check
Direction first: open by default, lock by exception. Then check against two lists.
Never lock (this is your capital for getting cited):
- FAQ, definitions, answer paragraphs — the passages AI is willing to carry away all live here
- Product specs, prices, plan details — lock these and AI can only describe you from stale third-party copies
- Brand facts: address, founding year, certifications — the difference between AI describing you correctly and incorrectly
Worth considering:
- Passages with high quote-out-of-context risk: legal disclaimers, medical warnings — content whose meaning can invert when cut mid-sentence
- Strongly time-boxed content: limited-time prices, campaign windows — cited after expiry, they become misinformation with your name on it
- Page noise: cookie notices, ad-partnership copy — keep AI from summarizing these as “your content”
Why it matters
Every lock you add shrinks your citable surface. The purpose of snippet control has always been quality control — making sure what AI picks up is the version of you worth repeating — never usage prevention.
Paywalled content deserves its own paragraph: wrapping everything behind the wall in data-nosnippet protects the asset and simultaneously forfeits the citations that content could earn. The healthier cut matches the writing-level principle — make the conclusion a citable public passage, keep the derivation behind the wall. Let AI cite your conclusions; let readers pay for the process. You collect on both ends.
Common mistakes
- Locking product specs because “competitors will copy them” — the directive has no bearing on whether competitors copy; it very much bears on whether AI can cite you
- Locking the pricing page and still expecting AI to quote your prices correctly — you closed the source yourself
Checkpoint 4: The Right max-snippet Answer Is Usually No max-snippet
What to check
- The current value: unset,
-1, or a specific number - If a specific number: who set this cap, and on what reasoning? No answer means it’s a cleanup item
Why it matters
The three values of max-snippet behave very differently: 0 equals nosnippet (the one-vote veto); -1 and unset both hand length decisions to the engine; a specific number in between is a partial restriction — Google’s docs note it limits how much content can serve as AI citation input. For the vast majority of sites that want AI citations, the right answer is unset or -1: you want the engine to take complete passages into its answers, not sentences cut off at the waist. Legitimate scenarios for numeric caps are rare — mostly news-licensing negotiations and similar special cases.
One official carve-out worth knowing: content you separately provide to Google via structured data or licensing agreements is not subject to the max-snippet limit through those channels — the directive governs the “extract a fragment from the page” path, not every path.
Common mistakes
- Copying a meta template from another site, bringing along their situational
max-snippet:160 - Setting a short cap hoping to “steer” AI toward citing only your opening — engines don’t guarantee the cut point, so you usually get semantically broken fragments that are less likely to be picked at all
Checkpoint 5: Boundary Awareness and Maintenance Cadence
What to check
- Whether the team understands: fragment-level control only works on Google / Bing; for ChatGPT / Claude / Perplexity you only have page-level robots.txt (layered setup covered here)
- Whether there’s a regression check after template revamps, plugin updates, or an SEO vendor handover
- Whether someone tracks aipref / Content Signals standardization progress (track it — just don’t rely on it yet)
Why it matters
Snippet control accidents are almost never “designed wrong” — they’re “broke and nobody knew.” These directives emit no visible error; after something breaks, the site looks perfectly normal while citations quietly disappear. What this needs is low-frequency but fixed patrols — one audit pass after every template-level change beats staring at it daily.
Common mistakes
- Treating Google-Extended as the AI Overviews switch (dismantled above — two different lanes)
- Switching SEO vendors with no handover of “why these passages were locked back then,” leaving the new team afraid to touch or remove anything
- Substituting a one-off audit for regression checks — the directives live and change, so the checking has to as well
What the Audit Report Shows
The “Snippet Control Strategy” dimension in the geoweb.tw audit (4% weight) examines four signal groups:
- Count and placement of
data-nosnippet: hitting a page-level container is flagged as over-blocking; an excessive element count draws a warning meta robotsdirectives:nosnippet/noindexfail outright; a detectedmax-snippetis treated as deliberate fine-grained control- Visibility of citable content: whether FAQ, definition, and glossary structures are covered by
data-nosnippet— covered means a heavy deduction, confirmed-unblocked earns points; if no citable structure exists on the page at all, the report suggests adding some - Overall strategy verdict: “nothing configured” earns a neutral score, not a high one — signals can’t distinguish “deliberately open” from “nobody’s minding it,” so strategy points are earned by having citable content that’s confirmed unblocked
A 4% weight looks light, but this dimension works as a fuse: when it fails, it usually means one line of markup is discounting the effort of every other dimension.
👉 Free GEO audit — two minutes to see whether your site is carrying self-harming snippet directives.
Whether to remove the legacy directives you find, in what order, and how to wire template-level regression checks into CI depends on each site’s CMS and deployment pipeline — that’s part of the daily work of our managed service: [email protected]
Part of the GEO technical deep-dive series. Further reading: The 12 Dimensions, Mapped, Content Citability, How the 8 Major AI Crawlers Differ