# Snippet and AI grounding directives

> Snippet and AI grounding directives: noarchive, nocache, nosnippet and data-nosnippet limit how Bing shows a page and how Copilot uses it.

- Source: /checks/ai-grounding-directives
- Site: AgenticWebScore
- Language: English

---
noarchive, nocache, nosnippet and data-nosnippet limit how Bing shows a page and how Copilot uses it. Each is the site owner's choice.

Standard status: Adopted. A ratified standard with real deployment. No standard is named for this check. It is a convention or a measurement this rubric defines.

- Kind: Unscored check: 0 points, never a level gate
- Module: Every site
- Listed under: Optional choices
- Who reads it today: Bing reads all five, and Copilot follows noarchive and nocache. Google reads nosnippet, max-snippet and data-nosnippet.
- Effect on Google Search: Direct. A documented Google Search feature reads it. This is not a ranking factor.

| Property | Value |
| --- | --- |
| Check id | `ai-grounding-directives` |
| Dimension | Crawler access |
| Part | — |
| Tier | — |
| Weight | 0 |
| Maturity | Adopted. A ratified standard with real deployment. |
| Publishing skill | `ai-grounding-directives` |
| Standards | — |

## Sources

- [Bing Webmaster Guidelines, §10: NOARCHIVE, NOCACHE and NOSNIPPET](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a), Microsoft Bing
- [Bing: robots meta tags and attributes that Bing supports](https://www.bing.com/webmasters/help/robots-meta-tags-and-attributes-that-bing-supports-5198d240), Microsoft Bing
- [Google: robots meta tag specifications](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag), Google Search Central

## What is measured

The scanner reads the homepage response it already holds ($home in the probe map), so the check makes no request of its own. It reads the robots directives of `<meta name="robots">`, `<meta name="bingbot">` and `<meta name="googlebot">` in the document head and of the X-Robots-Tag header, the way indexing-directives reads them, and counts the elements that carry a data-nosnippet attribute, read as an attribute name of a tag and never inside another attribute's value, outside comments and the bodies of scripts, styles, templates, titles, textareas and noscript. Present = noarchive, nocache, nosnippet or max-snippet:0 in any of them, or at least 1 element with data-nosnippet. The detail names each one, where it was found, and its effect. Under Bing Webmaster Guidelines §10, noarchive keeps the page out of Copilot answers and grounding results; nocache lets Copilot use only the URL, the title and the snippet; nosnippet and data-nosnippet keep Bing from showing a snippet and may limit the quality of Copilot's citations. Under Bing's page on the robots meta tags it supports, max-snippet:0 means Bing shows no text snippet, and with both noarchive and nocache Bing applies nocache. A directive found only for googlebot is named as one Bing does not read, and noarchive or nocache for googlebot as one Google does not use either. Not used = none of them. Not measured = a homepage that answered a status other than 2xx, or did not answer, and a directive found on a homepage with fewer than 25 words of visible text, which may be an interstitial such as a bot challenge. Neither state is a failure, and the check earns no points.

## Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

```bash
HOMEPAGE=https://example.com/
curl -sSL -o /dev/null -D - -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' "$HOMEPAGE" | tr -d '\r' | grep -i '^x-robots-tag:'
curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' "$HOMEPAGE" | perl -0777 -ne 'my $h = /^(.*?)<\/head>/si ? $1 : substr($_, 0, 8192); while ($h =~ m{<meta\b[^>]*>}gi) { my $t = $&; next unless $t =~ /\bname=["\x27]?(robots|bingbot|googlebot)["\x27]?[\s>\/]/i; my $n = lc $1; my ($c) = $t =~ /\bcontent=["\x27]([^"\x27]*)/i; print "meta $n: ", ($c // ""), "\n" } my $body = $_; $body =~ s{<!--.*?-->}{}gs; $body =~ s{<(script|style|template|title|textarea|noscript)\b[^>]*>.*?</\1\s*>}{}gsi; my $n = 0; while ($body =~ m{<[a-z][a-z0-9-]*\b((?:[^>"\x27]|"[^"]*"|\x27[^\x27]*\x27)*)>}gi) { (my $t = $1) =~ s{"[^"]*"|\x27[^\x27]*\x27}{}g; $n++ if $t =~ /(?:^|\s)data-nosnippet(?=[\s=\/]|$)/i } print "data-nosnippet: $n\n"'
```

## The fix

This page shows no artifact for this check, because the change depends on something only the site owner can supply. The note below says what to do.

> Each directive is your choice. noarchive keeps the page out of Copilot answers, nocache lets Copilot use only the URL, the title and the snippet, and nosnippet or data-nosnippet may limit the quality of what Copilot cites.

## Related checks

| Check | Kind | Maturity | Same skill |
| --- | --- | --- | --- |
| `robots-txt` — robots.txt crawl policy | Scored check | Adopted | — |
| `webbotauth` — Web Bot Auth key directory | Unscored check | Draft | — |
| `ai-rules` — AI crawler policy in robots.txt | Scored check | Adopted | — |
| `content-signal` — Content-Signal preferences | Scored check | Draft | — |
| `ai-policy` — AI usage policy page | Unscored check | Experimental | — |
| `security-txt` — security.txt (RFC 9116) | Unscored check | Adopted | — |
