AI Visibility Tracking ToolFree checker

Nosnippet Audit: Finding nosnippet, max-snippet and data-nosnippet Across a Site

99Visibility Research · Updated October 21, 2026 · 8 min read

A nosnippet audit crawls every template on your site for nosnippet, max-snippet, data-nosnippet and noindex, then confirms each one was set on purpose. These controls keep content out of snippets and AI answers in Google and Bing. They often arrive by accident through a shared template, header or plugin. The audit finds them, records who owns each one, and removes the ones nobody meant to set.

What snippet controls do to AI answers

Snippet controls tell a search engine what text it may show from your page. As of October 2026, Google and Bing apply them to AI answer surfaces as well as classic results.

  • noindex removes the page from the index. Google says a page must be indexed to appear as a supporting link in AI Overviews or AI Mode.
  • nosnippet keeps all text from the page out of snippets. Google's AI features guide requires a page to be "eligible to be shown in Google Search with a snippet" to be a supporting link, so nosnippet removes that eligibility.
  • max-snippet caps how many characters a snippet may use. A value of 0 behaves like nosnippet. A small value limits what can be quoted. See the max-snippet definition for the full syntax.
  • data-nosnippet is an HTML attribute on a single element. It hides that block only. Bing added support on 15 October 2025 and says marked content "is still indexed normally, but it will be excluded from snippets and AI summaries."

The page-level directives can sit in a robots meta tag or in an X-Robots-Tag HTTP header. That second location is the one most audits miss.

One limit matters for planning. These controls only subtract. No markup makes a section more likely to be used in an AI answer. An audit restores eligibility where it was lost by mistake. It does not promise a citation. For a side-by-side of the three controls, read noindex vs nosnippet vs data-nosnippet for AI.

Where accidental suppression comes from

Nobody types nosnippet onto a pricing page on purpose. It gets there through something shared.

  • Base templates. A developer adds data-nosnippet to a wrapper div to hide a cookie notice or promo strip. The wrapper also holds the main content. Now every page using that layout is hidden from AI summaries. If consent tools are part of your stack, read whether a cookie banner can hide your content from AI.
  • SEO plugins. A site-wide toggle in a CMS plugin sets nosnippet or a low max-snippet value for a whole post type.
  • Staging leftovers. A staging environment uses noindex or nosnippet to stay out of search. The setting ships to production with the next deploy.
  • Server and CDN rules. An X-Robots-Tag header is set at the web server or edge for a path pattern. It never appears in the page source, so content editors cannot see it.
  • Components. A reusable FAQ, review or pricing widget carries data-nosnippet inside its own markup. Every page that embeds it inherits the attribute.

The pattern is the same each time. One change in a shared place spreads to many URLs, and nothing in any dashboard flags it. Search Console has a related problem at property level, covered in auditing inherited AI controls across GSC properties.

How to run the audit

Work by template, not by URL. A site with 20,000 pages usually has 10 to 30 templates, and fixing one template fixes every page built on it.

  1. List your templates. Group URLs by layout: home, product, pricing, category, blog post, docs, location, comparison. Pick three to five sample URLs per template.
  2. Fetch the raw HTML and the headers. Request each sample without running JavaScript. Record the full response headers, not just the body. Look for X-Robots-Tag values.
  3. Parse the robots meta tags. Extract every meta name="robots" tag and every bot-specific tag such as googlebot or bingbot. Note any nosnippet, max-snippet or noindex value.
  4. Find every data-nosnippet element. Record the element type, its position in the page, and roughly how much visible text sits inside it. A wrapper around 90% of the page is a very different finding from a span around a phone number.
  5. Render the page too. Googlebot renders JavaScript, so a tag or attribute injected after load can still apply in Google. Compare the rendered DOM with the raw HTML and log anything that only appears after rendering.
  6. Map each finding to its source. For every control found, identify the file, plugin setting, server rule or component that produces it. This is what turns a list of tags into a list of fixes.
  7. Mark each one intentional or accidental. Use the decision rules in the next section. Anything nobody can explain counts as accidental until an owner claims it.
  8. Fix at the source and re-crawl. Change the template, plugin setting or header rule, deploy, then re-fetch the same sample URLs to confirm the control is gone.

If you only need a quick read on a handful of pages first, the free check for noindex, nosnippet and data-nosnippet covers single URLs.

Deciding which controls are intentional

Some suppression is correct. Legal disclaimers, internal search results, gated content and personal data are reasonable things to keep out of AI summaries. The job is to tell those apart from mistakes.

Finding Likely intentional Likely accidental
data-nosnippet on a small element Disclaimer, account details, stale promo Wrapper holding the main content
nosnippet on a page Thin utility page, private offer Pricing, product, docs, about page
max-snippet low or 0 Paywalled content with a policy behind it Set site-wide by a plugin default
noindex Thank-you pages, filtered duplicates Any page you want buyers to find
Header-level X-Robots-Tag Documented rule for a file type or path No ticket, no owner, no record

Ask three questions of each finding:

  • Does this page or block contain a fact you want AI answers to repeat, such as a price, a definition or a product name?
  • Can someone name who set the control and why?
  • Does the scope match the intent, or does it cover more than the thing it was meant to hide?

If the answer to the first question is yes and the second is no, remove it. Hiding text this way does not remove ranking eligibility in Bing, which states data-nosnippet content "is available for ranking." More on that trade-off in will hiding text from AI summaries hurt my rankings.

Snippet control audit checklist

Run through this list for every template in your sample.

  • Response headers checked for X-Robots-Tag with nosnippet, max-snippet or noindex.
  • Generic robots meta tag checked.
  • Bot-specific meta tags checked (googlebot, bingbot).
  • max-snippet value recorded, and any value of 0 or a very low number flagged.
  • Every data-nosnippet element listed with its element type and text size.
  • Rendered DOM compared with raw HTML for injected tags or attributes.
  • Pricing, product, docs and about pages confirmed free of unintended suppression.
  • Shared components (FAQ, reviews, pricing tables, footers) inspected on their own.
  • Staging and production configuration compared for robots settings.
  • Each control assigned an owner and a written reason, or marked for removal.
  • Fixes deployed at the source, then sample URLs re-fetched to confirm.
  • Results logged with the date so the next audit can diff against this one.

What good and bad results look like

A good result

Every suppression control on the site has an owner and a reason. data-nosnippet appears only on small, specific elements such as a disclaimer or a legacy offer. No page that carries pricing, product facts or a definition you want quoted has nosnippet, a low max-snippet or noindex. Headers and meta tags agree. The rendered page matches the raw HTML on robots directives.

A bad result

These are the findings that justify the audit:

  • data-nosnippet on a layout wrapper, so the main content of a whole template is excluded from AI summaries.
  • An X-Robots-Tag: nosnippet header on a path like /docs/ that nobody on the content team knew about.
  • A plugin default of max-snippet:0 across every blog post.
  • A noindex carried over from staging on a production section.
  • Conflicting directives, such as a meta tag allowing snippets while a header forbids them.

Say you run a hypothetical project management tool, and your pricing template wraps the plan table in data-nosnippet to hide a holiday banner. Bing's documentation says that table is still indexed but excluded from AI summaries. An answer about your pricing then has to come from somewhere else, such as an old review site. Fixing the template gives the engine your own current numbers to show. It does not decide whether the engine uses them.

Keep the rest of the picture in view. Snippet controls are one gate. Crawler access in robots.txt, firewall reachability, server-side rendering and index status are others. A clean snippet audit removes one block, not all of them.

How often to repeat it

Snippet controls change when code changes, not on a calendar. Tie the audit to events first.

  • After every template or theme release. Re-fetch one sample per changed template.
  • After a CMS, SEO plugin or consent tool update. Plugin defaults are a common source of site-wide changes.
  • After CDN or server configuration changes. Header rules are invisible in the page source.
  • After a migration or redesign. Run the full audit, every template.

On top of that, run the full template audit once a quarter as a backstop. Keep the dated log from each run and diff it against the last one. A new control that nobody requested is the signal to act on.

The fastest way to keep this cheap is a deploy check. Add a test that fetches key URLs and fails the build if nosnippet, max-snippet:0, noindex or a large data-nosnippet block appears where it should not.

More on this

Does data-nosnippet remove a page from Bing's index? No. Bing's October 2025 announcement says content marked with data-nosnippet is still indexed normally and remains available for ranking. It is only excluded from snippets and AI summaries. That makes it a display control, not an indexing control. If you want a page out of the index entirely, noindex is the directive for that, and it has a much bigger effect.

Is max-snippet:0 the same as nosnippet? In practice, yes. A max-snippet value of 0 allows zero characters of text in a snippet, which has the same display effect as nosnippet. A value of -1 means no limit. Any positive number caps the snippet at that many characters. During an audit, treat max-snippet:0 as a full suppression finding and review low positive values case by case.

Can I use these controls to block Google AI Overviews but keep normal results? Not precisely. As of October 2026, Google applies nosnippet, max-snippet, data-nosnippet and noindex to Search as a whole, including its AI features. There is no robots.txt token that targets AI Overviews or AI Mode alone. Google's separate generative AI control lives in Search Console, is opt-out by default, and can inherit from parent properties.

Will removing an accidental nosnippet get my page cited in AI answers? It makes the page eligible again. It does not guarantee anything. Google says indexing and serving are not guaranteed, and each engine decides per query whether to retrieve and which sources to use. Removing a block is in your control. Whether a model picks your page is not. Expect eligibility, not an outcome.

Should I check robots.txt in the same audit? Check it alongside, but treat it as a separate gate. robots.txt controls whether a crawler may fetch the page at all, and rules are set per bot. Snippet controls apply after the page is fetched and indexed. A page can pass one and fail the other, so a clean result on snippet controls says nothing about crawler access.

Sources

  1. Robots Meta Tags Specifications
  2. Bing Introduces Support for the data-nosnippet HTML Attribute |...
  3. AI Features and Your Website
  4. Understand JavaScript SEO Basics

This page is AI-assisted. It was written from a verified evidence base and checked against our editorial policy. Engine behaviour changes often; facts are as of October 21, 2026.

Keep reading