蜘蛛池的入口页做得再快、数量再多,只要一行配置写错,蜘蛛可能连门都不进。robots.txt、meta robots、X-Robots-Tag、nofollow、canonical 这几类指令,通常是从模板里复制过来的,一旦带上了“禁止”的意思,后面所有铺量工作都会被抵消。这里把常见的配置坑和相对稳妥的做法梳理一遍。
一、先想清楚:入口页到底要不要被索引
这是所有指令设置的起点。入口页的作用是让蜘蛛发现链接、顺着爬向中间页和目标页,它本身是否被收录,不同做法有不同取舍。
- 允许索引:入口页可以积累一点点页面质量,蜘蛛下次更愿意来,代价是消耗一部分抓取和索引资源。
- 禁止索引:用 noindex 让入口页不进索引,理论上把资源留给目标页,但要注意 noindex 的页面依然可能被抓取,页面上的链接通常也仍会被跟随。
最常见的问题是两者混着用:模板里写着 noindex,链接上又挂着 nofollow,最后既没索引也没传递,蜘蛛来一趟什么也没带走。
二、robots.txt 最容易犯的三个错
蜘蛛池往往有成百上千个域名,每个域名根目录下的 robots.txt 都是独立生效的。批量部署时,容易出问题的地方有这几处。
- 整站 Disallow。测试环境用的 Disallow: / 被一起同步到线上,蜘蛛看到就直接放弃整个域名。
- 把生成器、后台、模板目录暴露出来。这些路径没必要给蜘蛛看,屏蔽掉可以省下抓取预算。
- 写法不严谨。路径大小写、通配符、结尾斜杠处理不当,规则可能匹配到不该匹配的目录。
建议上线前用搜索引擎官方提供的 robots 测试工具跑一遍,确认“允许”和“禁止”的结果符合预期,而不是凭感觉判断。
三、meta robots 与 X-Robots-Tag
meta robots 写在页面 head 里,X-Robots-Tag 写在 HTTP 响应头里,效果类似,后者更适合对非 HTML 文件(比如 PDF、图片)统一控制。
noindex 和 nofollow 别一起用
如果决定入口页不进索引,加 noindex 就够了,链接上不要顺手加 nofollow。noindex 管的是“这个页面别收录”,nofollow 管的是“别跟着这些链接走”,两者叠加等于把入口页的价值全部清零。
注意缓存和 CDN 改写的响应头
X-Robots-Tag 如果被 CDN 或反向代理统一加上,可能连目标页也一起中招。排查时不要只看源站,也要看实际返回给蜘蛛的响应头。
四、canonical 用错会自伤
入口页之间高度相似时,有人会用 canonical 指向目标页,试图“合并权重”。但 canonical 的语义是“当前页面是另一页的副本”,一旦指出去,搜索引擎很可能就不再单独索引入口页,入口页自身积累的信号也被转移或忽略。
更稳妥的思路是让入口页保持自指 canonical,通过内容差异和链接结构来控制相似度,而不是用 canonical 一刀切。
五、常见误区与上线检查清单
- 把测试环境的屏蔽规则带到了正式域名。
- 入口页同时 noindex 加 nofollow,什么都没传出去。
- canonical 指向目标页,导致入口页不被单独处理。
- 只在源站检查指令,忽略了 CDN 或 WAF 改写的响应头。
- 全站链接统一加 nofollow,蜘蛛照爬但价值不再传递。
上线前可以固定跑一遍这几项:
- 访问 域名/robots.txt,确认没有整站屏蔽。
- 查看页面的 meta 与响应头,确认 noindex、nofollow 是否符合预期。
- 确认 canonical 的指向,入口页优先自指。
- 抽查几个链接,看蜘蛛是否能顺着走到中间页。
指令配置的目标不是“看起来规范”,而是让蜘蛛能进来、能顺着走、不被无谓地拦住。配置对了只是不拖后腿,最终效果还要看抓取、解析和页面质量这一整条链路。