为什么入口页的 robots 指令容易写错
蜘蛛池入口页的目标是让蜘蛛发现并顺着链接继续走,但 robots 相关配置一旦写反,可能让蜘蛛连门都进不来。很多操作者把 robots.txt 当成“隐藏页面”的工具,或者复制模板时忘了改,结果入口页对蜘蛛不可见,后续再铺多少链接都难以发挥作用。
三类指令分别管什么
robots.txt:管抓取,不管收录
robots.txt 是放在域名根目录的抓取许可文件,用来告诉蜘蛛哪些路径可以抓、哪些不能抓。它不阻止页面被收录:如果其他页面有链接指向被屏蔽的 URL,搜索引擎仍可能收录该 URL,只是通常没有摘要。所以用 robots.txt 来“删除”页面是常见误区。
meta robots:页面级的抓取与索引指令
meta robots 写在 HTML 的 head 里,常见值有 index/noindex、follow/nofollow。它只对当前页面生效,而且蜘蛛必须能抓到页面才能看到它。如果页面已经被 robots.txt 屏蔽,蜘蛛抓不到 HTML,meta 指令也就无从读取。
X-Robots-Tag:HTTP 响应头里的指令
X-Robots-Tag 通过 HTTP 响应头传递,适合非 HTML 资源,也可以对整站或某个目录统一设置。它和 meta robots 作用类似,具体优先级由搜索引擎实现决定,但通常响应头指令会被较早读取。
蜘蛛池入口页通常怎么放行
入口页的首要任务是可抓取。一般建议:
- 根目录 robots.txt 返回 200,内容不要全站 Disallow。
- 入口页本身允许抓取,不要加 noindex,除非你明确不希望它出现在搜索结果里。
- 如果入口页有分页、筛选参数,可以屏蔽无意义的参数组合,但别把主路径一起屏蔽。
- 静态资源通常应允许抓取,否则蜘蛛可能无法正确渲染页面。
- 配置改完后观察日志,确认蜘蛛仍能抓到入口页,返回码为 200。
哪些路径可以考虑屏蔽
不是所有目录都需要对蜘蛛开放。以下类型可以考虑在 robots.txt 里屏蔽:
- 后台、测试、临时目录,避免蜘蛛浪费抓取预算。
- 大量重复的参数页、排序页,如果它们不承载独立内容。
- 站内搜索结果的 URL,通常会产生无限组合。
- 统计、跳转、下载中间页,如果对收录没有帮助。
但要注意:屏蔽路径不等于删除已收录页面。如果页面已经被收录,更合适的做法可能是返回 404/410,或者加 noindex,前提是蜘蛛能抓到页面。
常见误用与后果
误用一:Disallow: / 封整站
这是最严重的情况。整站被屏蔽后,蜘蛛不会抓取任何页面,入口页自然也失去作用。常见原因是复制了测试站的 robots.txt 没改,或者模板里带了默认屏蔽规则。
误用二:用 robots.txt 控制收录
robots.txt 只控制抓取,不控制收录。想阻止收录应使用 noindex,或者让页面返回 404/410。如果既屏蔽抓取又希望不收录,需要先允许抓取让蜘蛛看到 noindex,等页面从索引移除后再考虑屏蔽。这个顺序经常被搞反。
误用三:meta robots 写在 body 里
meta robots 必须放在 head 中,写在 body 里可能被忽略。如果页面通过 JavaScript 动态插入 meta 标签,蜘蛛不一定能及时读取,最好在服务端输出。
误用四:robots.txt 返回 500 或超时
如果 robots.txt 服务器错误,蜘蛛可能暂时停止抓取,或者按保守策略处理。确保它能稳定返回 200 和纯文本内容。
配置后的检查清单
- 直接访问 /robots.txt,确认返回 200、内容正确、不是 HTML 页面。
- 模拟蜘蛛抓取入口页,看是否返回 200,HTML 里是否有 noindex。
- 检查响应头是否意外带上 X-Robots-Tag: noindex。
- 观察服务器日志,确认蜘蛛仍在抓取入口页和后续链接。
- 如果改了屏蔽规则,记录改动时间,方便对照日志变化。
robots 指令是入口页可抓取性的底线,不是优化技巧。把放行和屏蔽的边界理清楚,比反复调整内容更基础。