nosnippet是最直接的禁摘要方式,但仅google支持;max-snippet:-1等效于nosnippet且兼容性略好,两者互斥不可混用;noarchive在html中已失效,需用http响应头或410状态码控制快照;摘要控制须配合canonical、title和description才有效,spa需ssr或服务端响应头实现。

nosnippet 和 max-snippet 不能混用,且仅部分搜索引擎响应
加 nosnippet 是最直接的禁摘要方式,但它的效果不跨引擎:Google 支持,Bing 基本忽略,百度近年已不解析该指令。更麻烦的是,nosnippet 和 max-snippet 互斥——如果同时出现,Google 会完全忽略两者,退回到默认摘要逻辑。
实际使用中建议只选其一:
-
nosnippet:适合版权敏感页、登录后才可见内容页,写法必须是<meta name="robots" content="nosnippet">,不能跟noindex或其他指令拼在一起(如noindex,nosnippet虽语法合法,但 Google 会优先执行noindex,nosnippet实际无意义) -
max-snippet:-1:等效于nosnippet,但兼容性略好;max-snippet:0表示允许显示标题和 URL,但不显示正文摘要;max-snippet:50限制摘要最多 50 字符(注意单位是字符,不是像素或单词)
所有这些值都必须小写、无空格、英文逗号分隔,且不能出现在 或 JS 动态插入的 DOM 中。
noarchive 对快照无效,别再把它当“隐藏按钮”用
noarchive 指令在 2020 年后已被 Google 官方弃用,当前主流爬虫(包括 Googlebot 和 Bingbot)不再响应 HTML 中的 noarchive。即使你写了 <meta name="robots" content="noarchive">,搜索结果里仍可能出现「缓存」链接,点击后跳转到 Google 自己存的快照页。
真正能压制快照的只有两种方式:
- HTTP 响应头中设置
X-Robots-Tag: noarchive(服务端输出,优先级高于 meta) - 页面返回 HTTP 状态码
410 Gone(比404更明确,Google 通常在数天内清除快照)
用 noarchive 写在 HTML 里,等于没写。验证方法很简单:右键网页 →「查看网页源代码」→ 搜索 noarchive,如果存在,基本可以删了。
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
摘要控制必须配合 canonical 和 title 才有效
搜索引擎生成摘要时,不是只看 nosnippet 或 max-snippet,而是综合 <title></title>、<meta name="description">、link rel="canonical" 和首屏可见文本。如果你的 <title></title> 过长(>60 字符)、<meta name="description"> 缺失或重复,就算加了 max-snippet:50,Google 仍可能从正文里硬截一段凑数。
关键点:
-
<meta name="description">不影响排名,但直接影响摘要是否可控——有它,Google 更倾向用它;没它,就自由发挥 -
link rel="canonical"必须指向真实可访问的 URL,否则 Google 可能忽略你的所有 robots 指令,转而用它自己发现的“主版本”生成摘要 - 摘要长度受设备影响:移动端摘要通常比桌面端短 30% 左右,
max-snippet:50在手机上可能只显示前 35 字符
SPA 页面里写 nosnippet 等于白写
React/Vue 类单页应用中,如果靠 useEffect 或 mounted 钩子往 插入 <meta name="robots" content="nosnippet">,Googlebot 不会执行 JS,也不会等待 hydration 完成,抓到的原始 HTML 里根本没有这个标签。
可行方案只有两个:
- 服务端渲染(SSR):如 Next.js 的
getServerSideProps或 Nuxt 的head()函数,在首次 HTTP 响应中把nosnippet直接写进 HTML - 服务端路由判断 + HTTP 响应头:Nginx/Apache 根据 URL 路径匹配(如
/admin/*),直接返回X-Robots-Tag: nosnippet,绕过前端一切逻辑
CDN 缓存也得留意:如果 CDN 缓存了不含 nosnippet 的旧 HTML,新标签上线后用户看到的是对的,但爬虫抓到的仍是错的。务必检查原始响应体(curl -I 或 Chrome DevTools 的 Network → Headers → Response Headers)。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










