搭蜘蛛池入口页时,很多人把精力全花在链接数量和页面结构上,却忽略了最基础的一层开关:robots.txt。这份文件放在入口页域名根目录下,搜索蜘蛛来抓之前会先读它,读到的规则会直接决定哪些路径能抓、哪些不能抓。一旦这里写错,入口页里的目标 URL 链接再合理,蜘蛛也没有机会走到。
robots.txt 管的是抓取,不是索引
先把边界说清楚:robots.txt 里的 Disallow 只是“请不要抓取这个路径”,它是一种约定,不是强制封锁,前提是蜘蛛能读到这份规则。被 Disallow 的 URL 依然可能出现在搜索结果里,比如蜘蛛通过站外链接得知了该 URL 的存在。所以想阻止页面进索引,靠 robots.txt 是不够的。
反过来,如果入口页的目的就是让蜘蛛顺着链接去发现新的 URL,那么 robots.txt 必须放行入口页本身,以及链接指向的路径。
入口页常见的几种 robots.txt 误配
- 整站封禁:顶部写着 Disallow: /,本意可能只是屏蔽后台或测试目录,结果把整个入口页一起关掉了。
- 路径写错:想放行 /in/ 目录,却写成 Disallow: /in,漏掉末尾斜杠,前缀匹配的范围变宽,可能连带误伤同前缀的其他路径。
- Crawl-delay 过大:部分蜘蛛会参考这个字段。设成十几秒的等待,抓取节奏会明显变慢,链接发现看起来像是根本没生效。
- Sitemap 指令写错:Sitemap 必须写完整的绝对地址,且不能放在被 Disallow 的路径下。写错了蜘蛛读不到,等于没有提交。
- 分域名搞混:入口页用独立域名时,robots.txt 要放在该域名的根目录,主站的规则不会自动继承过来。
怎么确认规则没写坏
- 在浏览器里直接访问 域名/robots.txt,确认返回正常、内容是纯文本,而不是首页或 404 页面。
- 用搜索引擎官方提供的 robots.txt 测试工具,分别输入入口页 URL 和目标 URL,看返回的是“允许”还是“被拦截”。
- 改完规则后观察服务器日志,看对应搜索引擎的 IP 或 UA 是否重新出现在入口页的访问记录里。
- 对比修改前后一两周的抓取条数,判断趋势是在回升还是继续走低。
已经拦住了,怎么恢复
把错误的规则删掉或改成放行,重新提交一次 sitemap,然后耐心等。抓取节奏的恢复通常不是立刻的:蜘蛛对某个目录的抓取频率是长期形成的,被压制之后重新提起来需要时间,几天到几周都算正常范围。这段时间里不要频繁改动规则,反复变动反而会让抓取更不稳定。
容易混淆的一点
robots.txt 是抓取开关,noindex 是索引开关。想阻止抓取用前者,想阻止收录用后者。而给页面加 noindex 的前提,是蜘蛛能抓到页面、读到这个标签——如果页面被 robots.txt 封着,noindex 永远不会生效。
回到蜘蛛池的场景:入口页的任务是把蜘蛛引到目标 URL,所以 robots.txt 的原则很简单——放行入口页,放行链接指向的路径,不要用 Crawl-delay 人为拖慢,Sitemap 地址写完整。把这几个基础项先确认一遍,再去排查链接结构、更新频率这些进阶问题,顺序会顺很多。