蜘蛛池知识

蜘蛛池入口页的 robots.txt 与 sitemap:让路径被发现,也少浪费抓取

入口页上线后长期没有动静,问题常出在 robots.txt 与 sitemap 这两个文件上。本文说明两者分工:一个做减法管拦截,一个做加法给清单,并梳理常见写法错误、分片与 lastmod 的使用方式、上线前后的检查要点,帮助入口页的路径更容易被蜘蛛走到。

蜘蛛池知识

蜘蛛池入口页的 robots.txt 与 sitemap:让路径被发现,也少浪费抓取

两个文件,管的事不一样

robots.txt 是一份放在根目录的约定文件,用来告诉蜘蛛哪些路径不必抓、抓取间隔可以放多宽;sitemap 则是一份地址清单,把入口页的 URL 集中列出来,方便蜘蛛按图索骥。前者做减法,后者做加法。很多入口页上线后长时间没有动静,问题常常出在这两个文件:要么 robots.txt 把整站拦住了,要么 sitemap 里全是过期地址,蜘蛛跑一趟发现都是死链,下次自然来得少了。

robots.txt:先把门打开

最容易出错的几处

  • 全站 Disallow:测试环境的规则被同步到线上,蜘蛛连首页都进不去。
  • User-agent 写错:写成具体蜘蛛名却拼错,或只写 Disallow 不写 User-agent,规则可能不按预期生效。
  • 屏蔽了 CSS 与 JS:部分蜘蛛渲染页面时需要这些资源,屏蔽后可能判断页面结构异常。
  • Crawl-delay 设得过大:部分蜘蛛支持这个字段,间隔太长会明显拖慢发现速度。
  • 把 sitemap 的地址写在了不该出现的位置,或与拦截规则混在一起,注释和顺序要分清。

检查方法很朴素:用浏览器直接访问 /robots.txt,看返回的是不是线上那一份;再用不同 UA 抓一次首页,确认没有被 403 或 503 拦住。

sitemap:给蜘蛛一份可用的清单

数量与分片

单个文件的地址数控制在协议建议的上限内,超出就分片,并在 sitemap 索引里互相引用。入口页数量增长较快时,按上线批次或目录切分,比全部塞进一个文件更容易定位问题。

lastmod 要如实

把 lastmod 统一刷成当天,短期看起来"更新很勤",但蜘蛛回访后发现内容没变,这个字段的可信度会下降。只改时间戳而不改内容,对重访没有实际帮助。

只放可访问的地址

已下线的入口页要从清单里移除,或让它返回明确的 404、410。清单里混着大量失效地址,会消耗蜘蛛在站点上的抓取预算。

两者配合的几种常见情形

  1. 新入口页刚上线:先确认 robots.txt 未拦截,再把地址加入 sitemap 并提交。
  2. 入口页批量扩张:sitemap 分片更新,同时观察服务器日志里蜘蛛对新路径的请求情况。
  3. 入口页改版换地址:旧地址做 301 指向新地址,sitemap 里换成新地址,旧地址逐步清理。
  4. 临时下线维护:不要用全站 Disallow,改为对维护页面返回 503 并带上 Retry-After。

上线前的一份小检查

  • robots.txt 能正常返回 200,内容与预期一致。
  • sitemap 地址可访问、格式正确,索引文件能展开到子文件。
  • 抽查若干入口页,确认返回 200,且不是软 404。
  • 日志中能看到对应蜘蛛的请求,路径与 sitemap 中一致。
  • 没有把入口页放在需要登录、验证码或特殊 Header 才能访问的路径下。
这两个文件解决的是"能不能被发现、发现得顺不顺利",至于最终是否收录、排名如何,还取决于站点整体质量与蜘蛛自身的判断。