做蜘蛛池时,很多人把精力放在入口页数量、外链和发布节奏上,却忽略了 robots.txt 和 noindex 这类基础配置。这两项一旦写错,蜘蛛可能根本走不到入口页,或者走到了却不跟随链接,前面的工作等于白做。
先分清抓取和索引是两件事
搜索引擎处理一个 URL 分两步:先抓取页面内容,再决定是否收录进索引。robots.txt 里的 Disallow 作用在第一步,它会阻止蜘蛛抓取该路径;meta robots 的 noindex 作用在第二步,页面可以被抓取,只是不进索引。
理解这点很关键:入口页如果被 Disallow,蜘蛛连页面都不抓,页面上的链接自然也不会被跟随;如果只是 noindex,蜘蛛仍然可以抓取,也能沿着链接继续走。
入口页本身该怎么配置
大多数情况下,入口页需要被蜘蛛抓取,才能把目标站的链接带出去。因此建议:
- robots.txt 中对入口页所在目录保持放行,不要随手加 Disallow;
- 如果不想让入口页出现在搜索结果里,用 noindex 而不是 Disallow;
- 不要对同一个路径同时写 Disallow 和 noindex,因为被挡住后蜘蛛看不到 noindex,页面可能以其他方式进入索引;
- 入口页的 CSS、JS、图片路径也要放行,否则渲染可能异常,影响蜘蛛对页面的判断。
哪些路径应该挡掉
入口页放行的同时,有些路径确实没必要让蜘蛛浪费抓取额度:
- 后台、管理目录、测试环境;
- 带大量参数的重复页面,比如筛选、排序、会话 ID;
- 无意义的翻页或日历归档;
- 大体积的下载文件和冗余图片目录。
写规则时慎用通配符。像 Disallow: /*? 这类写法容易把带参数的入口页一起挡住,改完最好用抓取测试工具验证几条真实 URL。
指向目标站的链接要不要加 nofollow
入口页存在的意义就是让蜘蛛沿着链接去目标站。如果给这些链接加上 nofollow,蜘蛛不会跟随,入口页就变成了一个没有出口的页面。所以除非有特殊考虑,一般不加 nofollow。
确实需要加的情况也有,比如链接带有付费或交换性质,或者目标站暂时不想被关联。但要清楚,加了 nofollow 就要接受蜘蛛不去目标站的结果,不能既想屏蔽又想被发现。
入口页上的链接,加不加 nofollow 是策略问题;但一旦加了,就要重新评估这个入口页还有没有继续维护的价值。
meta 和 X-Robots-Tag 用哪个
普通 HTML 页面用 meta robots 就够了。如果是 PDF、图片、视频等非 HTML 文件,没法写 meta,就要用 HTTP 响应头里的 X-Robots-Tag。两者同时存在时,以更严格的那个为准,配置时注意别互相打架。
改完之后怎么观察
改 robots.txt 或 noindex 之后,不要立刻下结论。建议:
- 在服务器日志里对照改动前后的蜘蛛抓取量,看入口页是否还在被抓;
- 抽查几条入口页 URL,确认返回状态码正常、链接可跟随;
- 如果抓取量明显下滑,先排查是不是规则误伤了入口页目录;
- robots.txt 尽量一次改到位,避免频繁来回切换。
几个常见的坑
- 模板复用时把测试站的 Disallow 规则一起带到正式站;
- 只屏蔽了入口页,却忘了屏蔽同目录下的重复页面;
- 认为 noindex 的页面还能传递权重,实际上 noindex 主要影响索引,不承担这个作用;
- 多个域名共用一份 robots.txt,路径结构却不一致。
总的来说,robots.txt 和 noindex 的配置原则是:先保证入口页可被抓取,再逐步收窄不该被抓的部分。规模越大,越要用统一的规则模板和定期巡检来兜底,避免某次改动悄悄切断了整批入口页的抓取路径。