很多新手在想"让某个页面不被收录"时,第一反应是去 robots.txt 里加一条 Disallow,结果过了几周发现这个页面仍然出现在搜索结果里,只是摘要变成了"仅因存在其他网页的链接而显示"。问题出在把抓取和收录混为一谈:robots.txt 管的是蜘蛛能不能来抓,meta robots 管的是抓过之后能不能放进索引。这篇文章把两者的分工、写法和常见错误一次讲清。
一、robots.txt:站点级的"抓取门卫"

robots.txt 是放在网站根目录的纯文本文件,遵循 robots 排除协议,百度蜘蛛、谷歌蜘蛛、必应蜘蛛等守规矩的爬虫在抓取前会先请求它。它的核心用途有两个:一是禁止蜘蛛抓取后台、搜索结果页、接口路径等没有收录价值的区域,节省抓取配额;二是配合 sitemap 地址告诉蜘蛛全站地图在哪里。
1. 基本语法
一条规则由 User-agent(对哪种蜘蛛生效)和 Allow/Disallow(允许或禁止的路径)组成,路径区分大小写,支持通配符 * 和结尾符 $。一个典型导航站的写法如下:
User-agent: *
Disallow: /Admin/
Disallow: /ad/
Allow: /upload/Images/
Sitemap: https://dh.xysqcn.com/sitemap.xml
注意 Disallow 写的是路径前缀,Disallow: /search 会同时挡住 /search、/search.html、/searchapi 等所有以它开头的地址,范围比想象中大,不确定时用结尾符 $ 精确匹配。
2. robots.txt 做不到的事
最关键的一点:被 Disallow 挡住的页面,蜘蛛读不到页面内容,但如果这个 URL 被别的网站链接了,搜索引擎仍然可能仅凭外链锚文本把它收进索引。也就是说 robots.txt 不能保证页面不被收录,它只是阻止抓取。另外它对不守规矩的恶意爬虫没有约束力,封恶意 IP 要在服务器层面处理。
二、meta robots:页面级的"收录开关"

meta robots 是写在页面 head 里的 meta 标签,蜘蛛抓到页面后按它的指令决定是否收录、是否缓存摘要。想让某个页面彻底不出现搜索结果,正确做法是给它加 noindex,而不是 robots.txt 屏蔽——因为蜘蛛必须先抓到页面,才能读到 noindex 标签。
1. 常用指令
一条 meta 可以同时写多个指令,用逗号隔开,最常用的有这几个:
index / noindex:是否收录本页;follow / nofollow:是否顺着页面链接继续抓取;noarchive:不显示"网页快照"缓存;nosnippet:搜索结果中不显示摘要片段。
实际最常用的组合是 noindex, follow:页面本身不进索引(比如分页页、筛选页),但蜘蛛可以顺着它继续抓里面的内容页。对非 HTML 文件(PDF、图片等)没法写 meta,可以改用 HTTP 响应头 X-Robots-Tag 达到同样效果。
2. 生效需要时间
加了 noindex 不会立刻从结果里消失,要等蜘蛛下次重新抓取该页面、读到标签后才会移除,通常几天到几周。想加快可以在各站长平台主动推送该 URL,让蜘蛛尽快来读新标签。
三、黄金分工:什么场景用哪个
把两个工具按目的来选,几乎不会出错:
场景一:后台、接口、广告跳转页等没有任何收录价值的路径,用 robots.txt Disallow,目的是不浪费抓取配额。
场景二:内容页质量太差、重复页面、付费内容落地页,想让它从搜索结果消失,用 meta robots noindex,让蜘蛛抓到并读取标签。
场景三:分页、排序、筛选参数页,推荐 noindex, follow,页面不进索引但链接权重可以继续流向内容页。
四、最常见的三个错误
错误一:对同一个 URL 同时 Disallow 和 noindex。蜘蛛被 robots.txt 挡在门外,永远读不到 noindex 标签,页面反而可能一直挂在索引里。两个指令互相拆台,是新手最容易踩的坑。
错误二:整站改版后 robots.txt 误封全站。改版换路径、换协议时最容易留下旧的 Disallow 规则,表现为新页面一个都不收录。上线后务必用各站长平台的 robots 检测工具实测一遍。
错误三:用 robots.txt 隐藏敏感信息。robots.txt 本身是公开文件,任何人都能打开看到你想藏的路径结构,敏感信息不能靠它隐藏。
五、FAQ 常见问题
robots.txt 修改后多久生效?
蜘蛛每次抓取都会重新请求 robots.txt,主流搜索引擎一般一天内会更新缓存,但已经被错误收录的页面需要等下一轮抓取才会变化,可在站长平台主动提交加速。
noindex 会影响网站其他页面的权重吗?
不会。noindex 只作用于当前页面;配合 follow 使用时,页面上的链接仍可被正常抓取。真正要避免的是用 robots.txt 屏蔽承载大量内链的页面,那会让蜘蛛无法沿链接发现内容。
站点没有 robots.txt 行不行?
可以运行,但服务器会对每次请求返回 404,也少了声明 sitemap 的机会。新站建议上线第一天就放一个规范的 robots.txt,对抓取引导有实际帮助。更多抓取相关的排查方法见蜘蛛日志怎么看,系统的收录方法可以参考百度SEO实战指南,更多内容在SEO收录专栏。
写在最后
记住一句话就够了:robots.txt 管"抓不抓",meta robots 管"收不收",想删收录就别封抓取。把这两个工具用对,蜘蛛抓取配额会更多地花在你的优质内容页上,这是新站 SEO 里性价比极高、却经常被忽略的基础工作。

