SEO 百科

阻止索引

本页目录

阻止索引

阻止索引指用标记或协议,让搜索引擎不把某个网址放进索引,也不在结果中展示[1]。站长想把一批页面压住时,可选的手段分三类,各自放置的位置与生效的范围都不同。分清三者的边界,才能避免改了一处、另一处又把设定顶回去。

三种手段的分工

三类手段分别写在网页、响应标头和站点根目录的协议文件里:

  • robots meta 标记写在 <head> 里,属于页面级设置,只对搜索引擎爬虫生效[2]。
  • X-Robots-Tag 写在 HTTP 响应标头里,可用规则与 robots meta 一致,还能用在 PDF、视频、图片这类非 HTML 资源上[2]。
  • robots.txt 的 Disallow 写在站点根目录,管的是爬虫能不能抓取,不管网页最终是否被收录[3]。

前两类决定网页进不进索引,第三类只决定爬虫来不来抓。判断该用哪一种,先看这一层差别。

手段 放在哪里 管什么
robots meta 标记 网页 <head> 页面能否进索引
X-Robots-Tag HTTP 响应标头 任意资源的索引与展示
Disallow 站点根目录 robots.txt 爬虫能否抓取

页面级标记

robots meta 标记放在 <head> 部分,name 写 robots,表示对全部爬虫生效:

<!DOCTYPE html>
<html><head>
<meta name="robots" content="noindex">
</head>
<body>...</body>
</html>

Google 说明,noindex 的作用是“不在搜索结果中显示此网页、媒体或资源”[2]。name 与 content 两个属性都不区分大小写。要针对某一个爬虫,把 name 换成它的用户代理标识就行。

PDF、视频和图片没有 <head>,只能写成响应标头来阻止索引:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
X-Robots-Tag: noindex

多条标头可以合在一行写,也可以分成多行;标头里写了用户代理,这条规则就只对那个爬虫生效[2]。

爬虫协议的作用范围

robots.txt 用 Disallow 声明哪些路径不希望被抓取,它由各家爬虫自觉遵守,本身不是强制手段:

User-agent: *
Disallow: /admin/
Disallow: /search

挡住抓取并不等于挡住收录。更要紧的一层是:某个网址一旦被 robots.txt 禁止抓取,网页里的 robots meta 与响应标头就都读不到,也就无从生效。Yandex 把这条交互写得很直白,“If the page is prohibited in the robots.txt file, the meta tag or header directive does not apply”[1]。

信号冲突的处理

两处设定打架时,取更严格的那一条[2]。例如同一页既写 max-snippet:50 又写 nosnippet,最终按 nosnippet 处理。

处理已经收录的页面,顺序也要留意。要让爬虫读得到 noindex,就不能同时用 robots.txt 把它挡在门外;等页面从结果里消失,再决定是否补上更强的屏蔽。Yandex 同样建议,先看爬虫实际拿到的是什么内容,再决定改哪一处[1]。

常见误用

把 robots.txt 当收录开关,是最常见的一种。Disallow 只拦住抓取,被拦的网址仍可能因为其他站点的链接而进入索引。

第二种是已用 Disallow 挡住目录,又在网页里写 noindex,以为两层保险。结果是 noindex 读不到,页面照样可能留在索引里。

第三种是站点上线后忘了删测试环境留下的 noindex。百度把这类问题归在抓取诊断里,用它跑一次首页,就能看出爬虫拿到的内容是否符合预期[3]。改成 index 或直接删掉那行,页面才会重新进入收录流程。

附录

参见

参考资料

官方(境外)

  1. 《How do I prevent from indexing the pages that aren't needed in search results?》,Yandex,2026-10-08 访问。
  2. 《Robots meta 标记、data-nosnippet 和 X-Robots-Tag 规范》,Google 搜索中心,2026-10-08 访问。

官方(国内)

  1. 《平台工具使用手册(robots)》,百度搜索资源平台,2020-08-14 更新。

外部链接

无。