入口页的作用是让搜索蜘蛛顺着链接走到目标 URL,而 robots.txt 决定了蜘蛛能不能访问入口页本身。很多站点在配置里出现一个小失误,入口页在抓取队列里就被整体跳过,这时再讨论链接结构、锚文本都没有意义。下面把常见写法和判断方法整理一遍。
robots.txt 管的是“能不能抓”,不是“要不要收录”
robots.txt 属于抓取层面的约定,写着 Disallow 的目录,搜索蜘蛛通常不会去请求。它和索引层面的 noindex 是两件事:被 Disallow 挡住后,蜘蛛看不到页面里的 noindex,索引里的旧结果可能长期保留;反过来,只有允许抓取的页面,页面上的 noindex 才会被读到。入口页一般希望被正常抓取,所以要保证 robots.txt 没有把入口页路径排除掉。
几种容易挡住搜索蜘蛛的写法
全站 Disallow: /
从测试环境复制过来的配置忘了改,是最常见的情况。此时入口页返回什么内容都无所谓,蜘蛛根本不会来。
通配符误伤
比如为了屏蔽某个参数写 Disallow: /*?,结果入口页上带参数的链接路径被一并挡住;或者用 Disallow: /p/ 想排除某个目录,却把 /product/ 开头的一批入口页误伤。写之前建议把入口页的真实路径列出来逐个比对。
crawl-delay 写得过大
部分蜘蛛会参考 crawl-delay。写成 60、120 之类的大数值,等于把入口页的访问间隔拉得很长,抓取次数自然上不去。除非服务器确实扛不住,否则不建议在入口页站点上写这条。
robots.txt 本身返回 5xx 或超时
蜘蛛拿不到规则时,保守的做法是暂停抓取或降低频次。入口页站点最好让 robots.txt 走静态文件,避免被后端逻辑拖慢。
页面级写法:robots meta 与 X-Robots-Tag
入口页 HTML 里的 nofollow 会让蜘蛛读到链接但不顺着走,这基本等于关掉了入口页的主要功能。noindex 则是让入口页自身不进索引,多数情况下入口页并不介意被索引;如果你希望它保持干净,可以加 noindex 同时保留 follow,让链接仍然可以被跟踪。
HTTP 响应头里的 X-Robots-Tag 作用类似,常见的坑是 CDN 或反向代理统一加了一条 noindex 头,而运维与编辑互不知情。排查时可以先只看响应头,不必急着怀疑页面内容。
相对稳妥的配置思路
- 入口页所在目录在 robots.txt 里保持允许抓取。
- 只屏蔽确实无价值的路径,例如后台、站内搜索结果页、统计脚本目录。
- 需要限制链接跟踪时用 nofollow 或页面级规则,而不是整段砍掉目录。
- 把目标 URL 的提交入口写在 robots.txt 里,便于蜘蛛顺着找到。
- 改动前后各留一份记录,出问题时能快速回滚。
改完之后怎么确认
- 用搜索引擎官方的 robots.txt 测试工具,填入入口页完整 URL,看结果是允许还是被阻止。
- 直接访问 robots.txt,确认返回 200、内容是最新版本,而不是缓存里的旧版本。
- 看入口页日志,确认蜘蛛 UA 的请求状态码是 200,而不是 403、404 或 5xx。
- 观察一段时间内入口页的抓取次数与目标 URL 的被抓记录,判断改动是否起了作用。
robots.txt 不是安全措施,也不是收录开关。它的作用是让蜘蛛把抓取预算放在你希望它看的地方;入口页被误封,后面的调整都无从谈起。
简单说,入口页的 robots 配置只要做到“允许抓取、别误伤、别加超长延迟”,剩下的问题就回到链接结构和内容本身了。规则不必频繁改动,每次改完做一次验证,比反复折腾配置文件更有效。