站点运营

站点运营:robots.txt 与 meta robots 自查,别让一行规则挡住整站抓取

robots.txt 管抓取,meta robots 管索引,写错一行就可能挡住整站或让页面迟迟进不了索引。本文按文件本身、规则写法、页面级标记、静态资源屏蔽和线上验证几个方面列出可对照的自查项,帮你把误屏蔽和自相矛盾的设置找出来。

站点运营

站点运营:robots.txt 与 meta robots 自查,别让一行规则挡住整站抓取

先分清两道闸门各管什么

robots.txt 管的是抓取:蜘蛛来到站点,先读这个文件,看哪些目录可以进、哪些不要进。meta robots(以及响应头里的 X-Robots-Tag)管的是索引:页面已经被抓到了,再看要不要把它放进索引、要不要跟随页面上的链接。两者写反了,就会出现“抓得到但不收录”,或者“想屏蔽却只挡住了抓取、地址照样能被索引”这类别扭状态。

屏蔽抓取不等于屏蔽索引。用 robots.txt 挡住一个页面,如果别处有链接指向它,搜索引擎仍可能只凭链接把它列进结果,只是没有摘要。真想让它彻底消失,要用 noindex,而且必须是能被抓到的 noindex。

robots.txt 文件本身的自查

  • 地址是否能正常访问,返回状态码与内容类型是否正确;返回 404 意味着“没有规则”,返回 5xx 时蜘蛛会保守处理,而返回一个 HTML 页面则是常见事故。
  • 只放在域名根目录,子目录里的 robots.txt 不会被读取。
  • 路径匹配区分大小写,/Images/ 和 /images/ 是两条不同的规则。
  • 是否被 CDN 或缓存策略缓存了旧版本,改完规则后确认线上返回的就是最新内容。
  • 测试环境、预发布域名的规则是否在上线时被一起带到了正式站。
  • Sitemap 声明是否指向正确的 https 地址,且该文件本身可访问。

规则写法的常见坑

  • Disallow: / 一行挡住整站,多出现在临时维护或迁移期间,上线后忘了删。
  • 通配符 * 和结尾的 $ 用得太宽,比如 Disallow: /*? 会把所有带参数的地址一起挡住,包括本应保留的正常页面。
  • Allow 与 Disallow 冲突时,通常以更具体的规则为准,靠猜不如直接测。
  • 按 UA 分组时,组与组之间要空行分隔,否则规则会被并到上一个组里。
  • 规则里出现中文、空格或全角符号,容易被解析成无效行。
  • 只写了 User-agent: *,却忘了单独放行 CSS、JS 等渲染所需资源。

页面级标记与响应头

meta robots 写在 head 里,属于页面自身声明;X-Robots-Tag 放在 HTTP 响应头里,也能作用于非 HTML 文件。两者都支持 noindex、nofollow、noarchive 等指令,多个值用英文逗号分隔。自查时重点看这几种情况:

  • 同一页面既写了 noindex,又写了 canonical 指向别处,方向上不算矛盾,但要确认这确实是你想要的结果。
  • 分页页、筛选页、打印页被批量加上了 noindex,后来想收录时没人记得。
  • 从模板继承下来的 noindex 没有随栏目上线一起去掉,导致整个栏目长期停在“已发现未编入索引”。
  • 响应头里的 X-Robots-Tag 写在服务器或 CDN 配置中,只改页面的 meta 并不会生效。
  • nofollow 加在了正文链接上,站内链接关系被顺手切掉。

顺手检查静态资源是否被挡

蜘蛛渲染页面时需要读取 CSS 和 JS,如果 robots.txt 把 /assets/、/static/、/js/ 这类目录整体挡住,页面在渲染视角里可能是残缺的,内容判断也容易出偏差。图片目录被挡通常影响有限,但仍会波及图片搜索,取舍要想清楚。

线上验证的可行做法

  1. 直接访问站点根目录下的 robots.txt,看返回状态、内容和编码。
  2. 用站长平台的 robots.txt 测试工具,输入具体 URL,看是被允许还是被拦截。
  3. 用网址检查或抓取测试功能抓一个代表性页面,看渲染后的 HTML 和抓取状态。
  4. 再抓一个本应被屏蔽的页面,确认它真的被挡住,别只相信自己写对了。
  5. 改动规则后隔几天回看抓取统计和索引状态,确认变化符合预期。

可以照着走的自查顺序

  1. 先看文件能不能正常打开、内容是不是最新的。
  2. 再逐条读规则,标出通配符和目录级屏蔽。
  3. 然后抽查页面级 meta 与响应头,重点看栏目首页和模板页。
  4. 最后做一次实际抓取验证,把结论和日期记进变更记录。
规则类设置最容易“写完就忘”。把 robots.txt、meta robots、X-Robots-Tag 三份配置放在同一张表里维护,标注每条的用途和添加时间,改动时一起过一遍,比出问题后再回头翻配置省事得多。