给读者做了一个 sitemap.html 目录页,顺手当站点地图提交了。一个月后日志里蜘蛛每天都来抓这个页面,XML 那份却很少被访问。

一开始怀疑是「XML 的 sitemap_index 没有被 robots 引用,发现路径断了」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。提交时选错了文件,把 HTML 目录页当成了 XML 站点地图。另一种情况是引导页上的链接全是一级目录,没有文章级地址。

不容易想到的是,目录页链接带了 nofollow,蜘蛛到页面上就停下。

上来先确认搜索后台里提交的是哪个地址

curl -s https://www.example.com/sitemap_index.xml | head -5

再往下在 robots 里明确声明 sitemap 位置

echo 'Sitemap: https://www.example.com/sitemap_index.xml' >> robots.txt

随后删除错误的提交记录并重新提交

curl -sI https://www.example.com/sitemap_index.xml | head -1

剩下的就是观察 XML 的抓取次数

grep -c 'sitemap' access.log

别只看报错消失,验证要多做一步。日志里 XML 的抓取次数从每天个位数涨到几十次,HTML 目录页的抓取回落,GSC 里站点地图状态显示成功且已读取。

HTML 目录页可以留着给用户看,但它不是发现通道,两者定位不同,错误提交只会让蜘蛛把预算花在导航页上。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189