nosnippet

nosnippet kills the snippet for a whole page; data-nosnippet hides just one section. The scopes, the valid-HTML gotcha, and the AI Overviews angle.

First published: Jun 23, 2026 · Last updated: Jul 19, 2026 · Advanced
demand #15 in Meta Tags#66 in On-Page#285 in Technical SEO#381 on the site

nosnippet and data-nosnippet both suppress snippet text, at different scopes. nosnippet is a robots directive — a meta-robots value or an X-Robots-Tag header — that kills the snippet text and video preview for the whole page (though a static image thumbnail may still show), removes featured-snippet eligibility, and (per Google) drops the content as a direct input to AI Overviews and AI Mode. data-nosnippet is an HTML attribute, valid only on span/div/section, that hides just the wrapped section — from both regular and featured snippets — while the rest of the page stays eligible; it's a boolean attribute, the markup must be valid, closed HTML or an unclosed tag swallows everything after it, and structured data inside it stays usable. nosnippet equals max-snippet:0 for text; neither touches indexing or rankings; Bing supports nosnippet but documents no data-nosnippet. Google is also testing a separate property-level Search generative AI control in Search Console.

TL;DR — nosnippet is a robots directive (<meta name="robots" content="nosnippet"> or an X-Robots-Tag: nosnippet header) that suppresses the text snippet and the video preview for the whole page, removes featured-snippet eligibility, and — per Google — drops the content as a direct input to AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. and AI Mode. For text it equals max-snippet:0, and on conflict the more restrictive rule wins (nosnippet beats max-snippet:50). data-nosnippet is an HTML attribute, valid only on span/div/section, that excludes one section — from both regular and featured snippets; it’s boolean (any value is ignored), the markup must be valid, closed HTML or an unclosed tag swallows everything after it, and structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. inside it stays usable. Neither touches indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. or rankings, and nosnippet doesn’t guarantee zero visuals (a static image thumbnail may still show). Bing honors nosnippet; it documents no data-nosnippet.

Evidence for this claim Google's nosnippet directive prevents a text snippet and video preview from being shown for the page in search results. Scope: Google Search presentation; it does not itself remove the URL from the index. Confidence: high · Verified: Google Search Central: Robots directives Evidence for this claim Google's data-nosnippet attribute can exclude text within span, div, and section elements from snippets. Scope: Section-level Google snippet control; valid, well-formed HTML is required. Confidence: high · Verified: Google Search Central: data-nosnippet

Two controls, two scopes

Choose by scope: `nosnippet` removes the page preview; `data-nosnippet` excludes only selected HTML from Google's snippet.

Nosnippet is a page-level robots directive that removes the whole text snippet and video preview and prevents direct use in Google AI features. Data-nosnippet is an attribute on a span, div, or section that excludes only the properly wrapped valid HTML. Both control display rather than indexing or ranking.

The whole thing comes down to scope. nosnippet works at the page level; data-nosnippet works at the section level. People reach for the wrong one constantly, so keep this straight:

  • nosnippet — a value in a robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. or the X-Robots-Tag header. Whole-page suppression.
  • data-nosnippet — an HTML attribute on span/div/section. One-section suppression.

Both are display controls. They sit alongside the rest of the robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. family and the X-Robots-Tag header, and they’re the suppression cousins of the max-snippet / max-image-preview length controls.

nosnippet — the page-level robots directive

Syntax (meta tag and header)

In HTML, you set it on the robots meta tag:

<meta name="robots" content="nosnippet">

For anything that isn’t HTML — PDFs, images, other files where you can’t add a <head> — you send it as an HTTP response header instead:

X-Robots-Tag: nosnippet

Same directive, two delivery mechanisms. The header route is the only way to reach non-HTML resources.

What it actually removes

Google’s spec is plain: nosnippet means “Do not show a text snippet or video preview in the search results for this page.” That’s broader than it sounds. Per the same doc, it “applies to all forms of search results (at Google: web search, Google Images, Discover, AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index., AI Mode) and will also prevent the content from being used as a direct input for AI Overviews and AI Mode.”

So one directive does four things:

  1. Removes the text snippet.
  2. Removes the video preview.
  3. Removes featured-snippet eligibility — Google says if you want a guaranteed way out of featured snippets, nosnippet is it.
  4. Removes the content as a direct input to AI Overviews and AI Mode.

One qualification worth knowing: nosnippet doesn’t guarantee a completely bare listing. Google’s spec adds that “a static image thumbnail (if available) may still be visible, when it results in a better user experience.” So you’re guaranteed no text snippet and no video preview — not necessarily zero visuals.

If you don’t set it, the default is that “Google may generate a text snippet and video preview based on information foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. on the page.”

Relationship to max-snippet:0

nosnippet is functionally equivalent to max-snippet:0 for text — Google documents that 0 for max-snippet means “No snippet is to be shown. Equivalent to nosnippet.” The difference is that max-snippet also takes positive values (cap the snippet at N characters) where nosnippet is all-or-nothing.

When robots rules conflict, the more restrictive one applies. Google’s own example: “if a page has both max-snippet:50 and nosnippet rules, the nosnippet rule will apply.”

data-nosnippet — the section-level HTML attribute

Syntax and the official example

You designate a chunk of text to be kept out of the snippet by putting the attribute on the element that wraps it. Google: “You can designate textual parts of an HTML page not to be used as a snippet. This can be done on an HTML-element level with the data-nosnippet HTML attribute on span, div, and section elements.” Those three elements are the whole allowed list — it does not work on arbitrary tags.

Here’s Google’s own example, verbatim:

<p>This text can be shown in a snippet
<span data-nosnippet>and this part would not be shown</span>.</p>

<div data-nosnippet>not in snippet</div>
<div data-nosnippet="true">also not in snippet</div>
<div data-nosnippet="false">also not in snippet</div>
<!-- all values are ignored -->

<div data-nosnippet>some text</html>
<!-- unclosed "div" will include all content afterwards -->

It’s a boolean attribute

Notice the ="true" and ="false" lines above behave identically. That’s because, in Google’s words, “The data-nosnippet is considered a boolean attribute. As with all boolean attributes, any value specified is ignored.” Presence is what matters — don’t bother giving it a value, and don’t assume ="false" turns it off. It doesn’t.

The valid-HTML requirement (the failure mode)

This is the part almost nobody covers, and it’s the most common reason data-nosnippet silently doesn’t work. Google parses the attribute from rendered markup, so: “To ensure machine-readability, the HTML section must be valid HTML and all appropriate tags must be closed accordingly.”

Look at the last line of Google’s example again — <div data-nosnippet>some text</html>. The div is never closed, and Google’s comment spells out the result: the “unclosed div will include all content afterwards.” In other words, an unclosed protected region doesn’t hide more, it hides nothing — everything after the open tag leaks back into the snippet. If your data-nosnippet isn’t taking, check that the wrapping element is actually closed.

The JavaScript caveat

One more from the spec: “To avoid uncertainty from renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., do not add or remove the data-nosnippet attribute of existing nodes through JavaScript.” Put it in the server-rendered HTML and leave it there. Toggling it client-side introduces exactly the kind of renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. ambiguity the valid-HTML rule is trying to prevent. Building elements dynamically is fine — Google’s guidance is to set the attribute at creation time, not to mutate existing nodes: “When adding DOM elements through JavaScript, include the data-nosnippet attribute as necessary when initially adding the element to the page’s DOM.”

The section-level exclusion isn’t limited to regular snippets — a section wrapped in data-nosnippet is also kept out of featured snippets. And if a page carries both a page-level nosnippet and a section-level data-nosnippet, the page-level rule is the more restrictive one, so it takes priority for the whole page.

data-nosnippet also doesn’t touch structured data the way you might assume: Google says “structured data remains usable for search results when declared within a data-nosnippet element.” Don’t generalize the attribute past text snippet eligibility — it isn’t an access-control mechanism and it doesn’t hide images or other media on the page; it only keeps the wrapped text out of snippet selection (with the documented max-snippet/description-field nuances Google covers for structured data separately).

Which one to use

The decision is almost always about scope and intent:

  • Hide the whole snippet (and exit featured snippets / AI Overviews for the page) → nosnippet.
  • Hide just one paragraph or block while the rest of the page keeps its snippet → data-nosnippet.
  • Just shorten the snippet rather than kill it → that’s max-snippet:N, the length control, not these.
  • Apply it to a PDF or other non-HTML fileX-Robots-Tag: nosnippet, since there’s no <head> to put a meta tag in.

Removing content from AI Overviews

The 2025–2026 reason a lot of people land on this topic is AI Overviews. The mechanics work — nosnippet and data-nosnippet do remove content as a direct input — but expect latency. In Glenn Gabe’s case study, nosnippet pulled his content out of an AI Overview quickly, but the effect was initially short-lived and the content reappeared before it settled; after John Mueller weighed in, the removal did ultimately stick — it just took longer to fully process. So if you apply it and the content’s still showing, give it time before assuming it failed.

And mind the trade-off Gabe flagged: whole-page nosnippet also strips your normal snippet, leaving an awkward, description-less listing in the ten blue links. If you only need to remove part of the content from AI surfaces, section-level data-nosnippet (or a max-snippet cap) is the gentler lever.

There’s also a newer, separate control worth knowing about: Google is testing a property-level “Search generative AI” control in Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — an include/exclude/inherit setting that scopes to AI Overviews, AI Mode, and generative AI in Discover. It’s distinct from page-level nosnippet (which is a per-page HTML/header rule) and from Google-Extended (which governs AI training and groundingGrounding is anchoring an AI model's answer to source documents it retrieves at the moment you ask — not to the patterns frozen into its weights during training. Retrieval-Augmented Generation (RAG) is the most common way to do it., not Search preview eligibility). The rollout is limited, and per Google, propagation of a change can take a day or two, or longer. Don’t reach for it as your default — it’s a Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. setting layered on top of the page-level controls above, not a replacement for them.

Bing and other engines

A parity caveat worth saying out loud: Bing supports nosnippet (and the snippet-length controls), but Bing does not document data-nosnippet. The section-level attribute appears to be Google-specific. If you need section-level snippet control to hold everywhere, only Google guarantees it — don’t assume Bing honors a data-nosnippet wrapper.

Apple documents a different, useful boundary: with nosnippet, Apple can still use a page’s title for matching and discovery, but it will not use the page content as context for generative models. That is an Apple-specific use-control notice, not a generic claim that nosnippet removes the URL from discovery.

Evidence for this claim Apple says a page marked nosnippet may still be matched or discovered using its title, but the page content is not used as context for generative models. Scope: Applebot and Apple generative-model context use; it does not describe Google, Bing, or generic indexing behavior. Confidence: high · Verified: Apple Support: About Applebot

The cost you’re accepting

It’s worth being honest that snippet eligibility is a real, losable asset. I learned that the blunt way with The Story of Blocking 2 High-Ranking Pages With Robots.txt — when I blocked two of our ranking pages in robots.txt, the most visible casualty was that they lost all of their featured snippets. That was robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., not nosnippet, but the lesson transfers: giving up snippet eligibility is a deliberate cost. The difference is that nosnippet and data-nosnippet let you give it up precisely — whole page or one section, on purpose — instead of as collateral damage from a crawl block. Spend it where it’s worth spending.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.