A site owner opens Google Search Console on a Tuesday morning, runs one of her best-performing queries in a clean browser, and finds her own paragraph sitting inside an AI Overview at the top of the page. The words are hers. The click, more and more, is not. That is the moment snippet controls stop being trivia and turn into a decision. Google pulls the text for a featured snippet, for the gray preview line under your title, and now for an AI Overview from the same underlying permission: this page is allowed to show a snippet. Change that permission and you change all three at once.
This guide walks through the small set of robots directives that govern previews, what each one does according to Google’s documentation, and the trade-off that most quick explanations leave out. If you have ever wanted to cap how much of a page Google can quote, snippet controls are the levers, and they are blunter than they look.
What a snippet is, and why it now feeds AI #
Start with the short version. A snippet is the preview text Google shows under your title in the results, and as of Google’s updated robots documentation it is also the text that can be pulled into AI Overviews and AI Mode. Same source, three surfaces.
The important classification is that Google treats these preview controls as serving directives, not indexing directives. A serving directive changes what Google displays. An indexing directive, like noindex, changes whether the page sits in the index at all. So nosnippet does not pull your page out of Google and it does not stop the page from ranking. It removes the preview, on regular results and in AI features alike. That single fact explains most of the confusion around these tags: people reach for a snippet control expecting an AI opt-out and get a search-visibility change they did not intend.
The four directives that limit previews #
Four robots directives control how much Google can preview from a page. Meta tag or header, the values are the same.
| Directive | What it controls | Values worth knowing |
|---|---|---|
nosnippet |
Turns off the text snippet and video preview. Google states it also blocks the page from being used as direct input to AI Overviews and AI Mode across web, Images, and Discover. | Present or absent. No number. |
max-snippet:[n] |
Caps the text snippet at n characters, and caps how much of the page can feed AI Overviews and AI Mode. | 0 means no snippet (same effect as nosnippet). -1 lets Google choose the length. |
max-image-preview:[setting] |
Sets the largest image preview Google can show. | none, standard, or large (large can run up to the width of the viewport). |
max-video-preview:[n] |
Sets the longest video preview, in seconds. | 0 means a static image only. -1 means no time limit. |
A practical note for anyone chasing Discover or Google News traffic: those surfaces tend to favor large image previews, so a blanket max-image-preview:standard quietly caps your visual real estate there. The value you set for one goal can undercut another, which is why a single site-wide rule rarely fits every template.
data-nosnippet: hiding one section without hiding the page #
The four directives above are page-level and blunt. data-nosnippet is the scalpel. It is an HTML attribute you attach to a specific block, and Google honors it on three elements only: span, div, and section.
Wrap the part you want kept out of previews, and leave the rest of the page fully eligible:
<p>Our standard turnaround is five business days. <span data-nosnippet>Rush jobs are quoted case by case and are not part of this rate.</span></p>
This is the tool for a paragraph you do not want quoted out of context: a price that shifts, a caveat that only makes sense next to the surrounding text, a boilerplate line that would read badly stranded in a result. One caution from Google’s own guidance carries real weight here. Do not add or remove the attribute with JavaScript. Google evaluates it at a rendering stage where script timing is unreliable, so a JavaScript-injected data-nosnippet may be ignored. Keep it in the served HTML.
Meta tag or HTTP header: where to put the control #
Two delivery methods exist, and they follow identical rules. Pick by scale. For a single HTML page, a meta tag in the <head> is the direct route:
<meta name="robots" content="max-snippet:150, max-image-preview:large">
For anything you cannot edit inline, the X-Robots-Tag HTTP response header does the same job. It reaches non-HTML files like PDFs, and through server configuration it can apply a rule across a whole directory at once:
X-Robots-Tag: googlebot: max-snippet:0
The header can target a specific crawler, as above, and you can combine several rules by comma-separating them or sending multiple header lines. For a small brochure site, the meta tag is usually enough. For a large library where one template governs thousands of URLs, the header set once in server config is the maintainable choice.
The trade-off nobody mentions #
Here is the catch. Because AI Overviews draw from the same snippet permission as ordinary results, the only way to keep your text out of AI features using these directives is nosnippet or max-snippet:0, and both of those also delete your normal search snippet. You go partly dark in classic search to stay out of the AI box.
Google’s eligibility rule makes the link explicit: to appear as a supporting link in an AI Overview or AI Mode, a page must be indexed and eligible to be shown with a snippet. Remove the snippet, and you remove the citation link along with it. There is no dial inside these directives that says regular snippet yes, AI answer no. If that clean separation is what you are after, these are not the tools that provide it, and pretending otherwise leads to changes that cost more search visibility than anyone budgeted for.
nosnippet, Google-Extended, and noindex: three different levers #
Much of the frustration around AI visibility comes from reaching for the wrong control. Three levers get confused for one another. They act on different layers.
| Control | Where it lives | What it actually does | The cost |
|---|---|---|---|
Google-Extended |
robots.txt token | Limits use of your content for training and grounding in Google’s Gemini and Vertex AI systems. Google states it does not remove you from AI Overviews display. | No search cost, but no effect on the AI Overview itself. |
nosnippet / max-snippet:0 |
Meta tag or header | Removes the page as input to AI Overviews and AI Mode. | Also removes your normal search snippet. |
noindex |
Meta tag or header | Removes the page from Google Search entirely. | No rankings, no traffic, no AI, nothing. |
max-snippet:[small n] |
Meta tag or header | Limits how much text can be quoted while keeping a short preview. | Shorter snippet, but the page stays rankable and eligible for citation. |
Read that table as a map of intent. If your worry is model training, Google-Extended is the address, and no snippet tag touches it. If your worry is being quoted in an AI answer, the snippet controls reach it, at the price named in the third column. And if you want the page gone from Search altogether, noindex is the only honest choice.
Which control for which goal #
The right setting depends on what a page is worth to you, and that splits cleanly by scale.
For a local business or a small service site, the usual answer is more visibility, not less. Set max-snippet:-1 and max-image-preview:large, and leave nosnippet off. A plumber’s service-area page quoted inside an AI Overview with a link underneath is exposure, not theft. The reader still has to reach a human to book the job, so the citation works in your favor.
For a publisher or a large content library, the math changes on the pages where the answer is the product. A recipe site whose value is the ingredient list, a research team whose value is a benchmark table, a data page that a reader never needs to click once they have seen the number: those are the cases for a capped max-snippet, or a data-nosnippet wrapped around the exact block you are protecting. Full nosnippet stays reserved for pages where any preview at all is a liability, because the classic-search cost is real. The point is to decide per template, not to flip one switch for the whole domain.
What to do this week #
Start by finding out what you are already sending. If you have never set these directives, your pages run on Google’s defaults, whatever those happen to be for your templates. Run curl -I against a few key URLs to read the X-Robots-Tag header, and view the source of those pages to check the <head>. Then make one decision per page type rather than one for the site, and match the directive to the goal in the table above. When you change a value, test it in Search Console’s URL Inspection tool and watch the snippet itself, not only the ranking, because the snippet is the part these controls move. Ten minutes of reading your own headers will tell you more than another article about AI visibility.