noarchive在meta中已失效,Google自2023年起弃用该指令;唯一可靠方式是服务端设置X-Robots-Tag: noarchive响应头或通过Search Console手动移除快照。

noarchive 在 meta 中基本失效,别再写了
Google 已在 2023 年起逐步弃用 noarchive 作为 <meta name="robots"> 的有效指令。现在往 <head> 里写 <meta name="robots" content="noarchive">,对主流搜索引擎(包括 Google、Bing)几乎不起作用——搜索结果里该有快照还是有,且 Search Console 不会将其列为“已执行的指令”。
真正能控制快照显示的,只有两种方式:
- HTTP 响应头
X-Robots-Tag: noarchive(服务端注入,可靠) - Google Search Console 中手动请求“移除快照”(临时应急,非策略)
如果你用的是 Next.js、Nuxt 或传统 PHP/Node 服务端渲染,优先在响应头加 X-Robots-Tag;若只是静态 HTML 页面,noarchive 标签写进去也没用,删掉省事。
想禁快照,得先确认页面是否已被索引
快照是索引的副产品:没被收录,自然没快照;但一旦被收录,快照生成就不再受你单页 meta 控制。所以第一步不是加标签,而是查现状:
立即学习“前端免费学习笔记(深入)”;
- 在 Google 搜索
site:yourdomain.com/your-page,看是否出现在结果中 - 进 Google Search Console →「URL 检查」→ 输入 URL → 看「索引状态」是否为「已编入索引」
- 如果显示「已编入索引」,说明快照存在且可能更新;此时加
noarchivemeta 无效,必须换响应头或走移除流程
注意:noindex 可以间接让快照消失(因为不索引就没快照),但它解决的是源头问题,不是快照本身。
name="googlebot" content="noarchive" 也无效
单独给 Googlebot 下指令,比如 <meta name="googlebot" content="noarchive">,同样被 Google 官方明确标记为“不支持”。他们只接受 X-Robots-Tag 响应头里的 noarchive,且仅对 HTML 资源生效(PDF、图片等需额外配置)。
常见误操作:
- 以为写
name="googlebot"就比name="robots"更精准——其实两者在noarchive上都无效 - 混用
noarchive和noindex,比如content="noindex, noarchive"——noindex生效,noarchive白写 - 把
noarchive放在<body>或 JS 动态插入——位置错 + 指令废,双重失效
真正可控的替代方案只有两个
如果你的目标是不让用户在搜索结果里看到「网页快照」链接(那个「缓存」小箭头),实际可落地的路径只剩:
-
服务端响应头:Nginx 配置
add_header X-Robots-Tag "noarchive";,或 Node/PHP 中设置响应头。这是唯一被 Google 文档明确认可的方式 -
页面级 noindex + 410 状态码组合:对已索引页面,先加
<meta name="robots" content="noindex">,再返回 HTTP 410 Gone(比 404 更明确表示“永久删除”),Google 通常在数天内清除快照
记住:快照控制从来不是前端单点任务,它依赖服务端配合和索引生命周期管理。写错一行 <meta> 不会报错,但会让快照持续暴露数周——这点最容易被忽略。



















