data-nosnippet 与另外三条:一个页面能被摘走多少,是可调的

data-nosnippet 是四条摘要控制规则里唯一作用在页面局部的一条。这里逐条给出它们各自挡掉什么、哪两条同时限制 AI Overviews 与 AI Mode,以及为什么多数站一条都不该设。

抓取与收录8 分钟读完1075 次阅读
data-nosnippet 与另外三条:一个页面能被摘走多少,是可调的

决定「一个页面能被 Google 摘走多少」的规则一共四条,而 data-nosnippet 是其中唯一一条作用在页面局部、而不是整页的。另外三条 nosnippetmax-snippet:[number]max-image-preview 都是页面级的 robots 规则。四条里有两条同时会限制 AI Overviews 与 AI Mode 能拿走多少,而它们做到这件事的方式,是把你在普通搜索结果里的那段摘要一起拿掉——官方没有给出任何「只限制一边」的写法。

开始之前

这四条是「展示规则」,不是「收录规则」。它们不会把页面从索引里拿掉,也不会阻止抓取;如果你想要的是后者,那是另一个决定,写在 什么时候该给页面加 noindex 里。这一篇默认页面应该留在搜索结果里,只讨论它能被展示多少。

四条规则,按官方原话

下面的引文全部来自《Robots meta tags, data-nosnippet, and X-Robots-Tag specifications》(2026-08-28 抓取)。

规则作用范围挡掉什么
nosnippet整页文字摘要与视频预览
max-snippet:[n]整页超过 n 个字符的摘要
data-nosnippet单个元素只挡这个元素里的文字
max-image-preview整页超过尺寸的图片预览

nosnippet 的定义是「Do not show a text snippet or video preview in the search results for this page」,但有一个要预料到的例外:「A static image thumbnail (if available) may still be visible, when it results in a better user experience.」——静态缩略图仍可能出现。

max-snippet:[number] 收一个整数,两个特殊值值得记住:0 是「No snippet is to be shown. Equivalent to nosnippet」,-1 是「Google will choose the snippet length that it believes is most effective」。它还有一个很坑的失效方式:「This rule is ignored if no parseable [number] is specified.」写错数字不会报错,它只是当作没写过。

AI 面出现在哪几条的措辞里

这一段值得读两遍,因为四条规则的适用面写得并不一样。nosnippet 那一条写的是:它「applies to all forms of search results (at Google: web search, Google Images, Discover, AI Overviews, AI Mode) and will also prevent the content from being used as a direct input for AI Overviews and AI Mode」。max-snippet 用的是同一个句式:它「will also limit how much of the content may be used as a direct input for AI Overviews and AI Mode」。

max-image-preview 那一条的列举是「(such as Google web search, Google Images, Discover, Assistant)」,到此为止,没有点名 AI Overviews 和 AI Mode。这是对措辞的观察,不是断言它对 AI 面无效——原文用的是 such as,本来就是开放式列举,官方两边都没说。

两条文字规则还共用同一个例外,而这个例外最常被忽略:限制「does not apply in cases where a publisher has separately granted permission for use of content. For instance, if the publisher supplies content in the form of in-page structured data or has a license agreement with Google, this setting does not interrupt those more specific permitted uses.」

摘要规则限制的是 Google 从你正文里取多少,不限制你在结构化数据里已经主动交出去的东西。

同一页另一处说得更死:「Robots meta tag limitations don't affect the use of that structured data, with the exception of article.description and the description values for structured data specified for other creative works.」也就是说,一个页面挂着 max-snippet:0、同时又输出了完整的菜谱结构化数据,它并没有把菜谱藏起来。这条对做电商和内容站的人尤其要紧:你以为设了一道闸,实际上另一扇门一直是开的。

这个措辞差异对做出海站的人有直接后果。如果你的动机是「不想被 AI 概览白拿」,那么按文档,你能用的只有 nosnippetmax-snippet 两条,而它们同时会削掉你在普通搜索结果里的描述——这是一笔明码标价的交易,不是一个开关。如果你的动机只是「某一段不该出现在摘要里」,那根本不必动页面级规则,往下看那一条就够了。

data-nosnippet 怎么用

它是四条里唯一能做精细手术的。官方原话:「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.」

有三个性质决定你的写法能不能生效。

  1. 它是布尔属性。「As with all boolean attributes, any value specified is ignored」——官方示例里 data-nosnippet="true"data-nosnippet="false" 的注释都是「also not in snippet」,两个都会被排除。想用 false 把某段重新放出来,效果和你以为的正好相反。
  2. 它只认三种元素。官方示例把 <mytag data-nosnippet> 标成 NOT VALID,理由是「not a span, div, or section」。套在自定义元素上,它什么都不做,也不报错。
  3. HTML 必须闭合。「To ensure machine-readability, the HTML section must be valid HTML and all appropriate tags must be closed accordingly」——一个没闭合的 div「will include all content afterwards」。一条价格免责声明,就这样把它后面整页的内容都从摘要里删掉了。

还有一条专门坑单页应用的规则:「To avoid uncertainty from rendering, do not add or remove the data-nosnippet attribute of existing nodes through JavaScript. When adding DOM elements through JavaScript, include the data-nosnippet attribute as necessary when initially adding the element to the page's DOM.」官方明说提取「may happen both before and after rendering」,所以一个被脚本来回切换的属性有两种可能的读数,而用哪一种不由你决定。

真正用得上它的场景比想象中窄,但确实存在:页脚那段促销免责声明总是被选去当摘要、商品页顶部那串导航文字比正文更早出现、或者一段随机轮换的用户评论被摘走之后就再也不代表这个页面。这三种都有一个共同点——你能指着页面说出「就是这一段不该出现在结果里」。指不出来,就不该动它。

交付物:可粘的写法与判读表

页面级规则写在 <head> 里;改不了 HTML 的站,用 X-Robots-Tag 响应头,指令完全一样:

<!-- 完全不给文字摘要 -->
<meta name="robots" content="nosnippet">

<!-- 最多 20 个字符 -->
<meta name="robots" content="max-snippet:20">

<!-- 不限长度,并允许大图预览 -->
<meta name="robots" content="max-snippet:-1, max-image-preview:large">

数字怎么选没有标准答案:max-snippet 收的是字符数,而中文一个字就是一个字符,同样的数字在中文页面上能露出的信息比英文页面多得多。要用它就自己在结果里比对着调,别照抄英文教程里的那些数字。

元素级的排除,只能用在那三种元素上:

<p>这句可以被摘走,
  <span data-nosnippet>这半句不行</span>。</p>

<div data-nosnippet>
  <p>内部备注,永远不进摘要。</p>
</div>
你想干什么用哪条代价
藏掉一句话data-nosnippet页面其余部分不受影响
限制摘要长度max-snippet:[n]普通摘要一起被限制
不给文字nosnippet整段搜索摘要没了
缩小图片预览max-image-preview结果里的缩略图变小
移出索引noindex全部搜索流量

一个会让四条全部失效的坑

robots.txt 里屏蔽这个页面,等于把你刚写的规则一起删掉。官方把机制写得很直接:「robots meta tags and X-Robots-Tag HTTP headers are discovered when a URL is crawled. If a page is disallowed from crawling through the robots.txt file, then any information about indexing or serving rules will not be found and will therefore be ignored.」

顺序就是全部要点:一条限制展示的规则,必须先被抓到才谈得上被遵守,所以这个页面必须保持可抓。如果你不确定爬虫到底到不到得了这一页,先用 AI 爬虫可达性检查 确认一遍——挂在一个抓不到的页面上的展示规则,是一条没人读过的规则。

另外,验证这件事本身只要两分钟,而且值得按模板各做一次,别信插件面板上的那个勾。用爬虫的方式请求一次页面,看响应头里有没有 X-Robots-Tag,再在返回的 HTML 里搜 name="robots"。如果插件是用 JavaScript 写这个标签的,这两处都看不到它——Google 第一次抓的时候同样看不到,和 data-nosnippet 那条渲染不确定性是同一个问题。

什么时候一条都别设

大多数站应该四条都不碰,理由不在任何测量里,而在措辞本身:同一条指令,把你的文字挡在 AI 概览之外的同时,也把它挡在普通结果之外。官方没有描述过任何「允许一边、拒绝另一边」的做法,所以「别让 AI 引用我,但摘要照常显示」目前不是一个设置,是一个愿望。

三种情况下动它是站得住的:内容是你从别处授权来的、不能全文再发;付费墙或会员站里那段可见的节选本身就是产品;以及某段页脚免责声明总是抢走摘要位、挤掉你真正想被引用的那一段——最后这一种正是 data-nosnippet 这把手术刀该出场的场合。

停手规则:如果你说不出「要挡住哪一段文字、不让谁看到」,那就一条都别设。因为「AI 白拿内容不公平」这个情绪而给全站挂上 nosnippet,实际做的是让搜索用户看到一条没有任何描述的结果——这个代价当天就到账,而收益你从自己这一侧根本量不出来。

这一篇管不到的地方

这些规则描述的是 Google 声明自己会怎么做。它们不是强制力,也不约束别家爬虫,除非那家爬虫自己选择遵守;对于某个 AI 产品已经拿到手的文本会怎么处理,这里一个字都答不了。屏蔽摘要要损失多少流量,我们也不知道——那是个和站点强相关的数字,本站没有测过。文档能支撑的只有这笔交易的形状:页面级控制粗糙且昂贵,元素级控制精准且便宜。

常见问题

nosnippet 能拦住 AI 概览用我的页面吗?

官方那句话说它会阻止内容「from being used as a direct input for AI Overviews and AI Mode」,而同一句话里也写着它适用于普通网页搜索。两个效果是绑在一起的。为什么这条指令比想象中的「AI 开关」更值得关注,背景写在 并没有 noai 这种指令 里。

max-snippet:0 和 nosnippet 有区别吗?

官方对 0 的说明就是「Equivalent to nosnippet」。实际差别在出错方式:数字写得解析不了,整条规则会被忽略;而 nosnippet 没有可写错的地方。

data-nosnippet 能加在表格单元格或列表项上吗?

不能。文档写明只支持 spandivsection 三种。要挡就用这三者之一把内容包起来。

这些规则对别的搜索引擎有效吗?

各家自己公布支持情况,本篇的引文只代表 Google 的行为。顺带一提,在同一批 27 个首页的 meta robots 实测 里,多数站根本没有输出 robots meta 标签——那是默认状态,通常也是对的选择。

整站挂上 nosnippet 会影响收录吗?

不会。它是展示规则,页面照样被抓、照样留在索引里,只是结果里不再显示那段文字描述。要把页面移出索引是另一条指令,也是另一个决定。反过来说,如果你发现某个页面在结果里连标题都不见了,那多半不是这四条造成的,该去查收录那一层。

改不了页面 HTML 怎么办?

X-Robots-Tag 响应头能在服务器或 CDN 那一层带上同样的指令。规则一样,可抓这个前提也一样。

本文属于 QueryWin 实操手册 · 第 3 阶

data-nosnippet 与另外三条:一个页面能被摘走多少,是可调的