站点地图是被低估的入口
对蜘蛛来说,站点地图是最省力的 URL 发现方式:不用一层层翻导航,就能拿到一份现成的清单。但这份清单的价值完全取决于它的准确性。一份混着重定向、404、noindex 页面、lastmod 全是同一时间戳的 sitemap,不但帮不上忙,还会让蜘蛛对整站质量打折扣。
哪些 URL 才该进 sitemap
原则只有一条:你想让搜索引擎收录、并且确实允许收录的页面。落到具体判断上:
- 返回 200,且没有 meta robots 或响应头里的 noindex;
- canonical 指向自己,而不是指向别的 URL;
- 不是登录页、购物车、站内搜索结果页、带一堆参数的筛选页;
- 移动端和 PC 端用同一个 URL,不需要重复列出;
- 分页列表一般只列第一页,不要把翻页全部铺开。
反过来,重定向 URL、410、软 404、robots.txt 里 Disallow 的路径,都不该出现在站点地图里——写进去只会制造互相矛盾的信号。
分片:别把所有 URL 塞进一个文件
单个 sitemap 文件有硬性上限(通常约 5 万条 URL 或 50MB 未压缩体积),超过就要拆成多个文件,再用一个 sitemap 索引文件把它们串起来。分片建议按用途切,而不是按数量平均分:
- 按内容类型:文章、商品、图集、专题各一个分片,出问题时好定位;
- 按更新时间:把最近更新的内容单独放一个分片,方便优先提交和观察;
- 索引文件只放分片地址,不要混进具体页面 URL。
分片文件的路径要稳定,不要每次生成都换一套随机地址——蜘蛛记不住,历史抓取数据也没法纵向对比。
lastmod 是最容易被写坏的一栏
很多站点生成 sitemap 时,直接把 lastmod 写成生成时间,全站几千条 URL 时间戳一模一样。后果是:搜索引擎会降低对这一栏的信任,之后你再认真更新,它也未必当真。
比较稳妥的做法,是让 lastmod 对应内容真正发生实质变化的时间——正文改动、标题调整、结构化数据补充都算;仅仅换了广告位、调了模板样式、改了页脚,不算。如果内容确实没变,就别为了“看起来新鲜”去改时间。
站点地图只是提交线索,不是收录保证。提交之后,仍要靠内容质量、站内链接和服务器稳定性,来决定抓取与索引的结果。
提交与观察
把索引文件地址写进 robots.txt 的 Sitemap 指令,同时在搜索资源平台里手动提交。此前各平台提供的 ping 自动通知接口近年陆续调整或停用,不建议把流程押在单一自动机制上,重点还是让 sitemap 本身准确、稳定。
之后在服务器日志里观察各分片的抓取情况:抓取频率是否正常、返回码是否为 200、有没有 5xx 或超时。如果某个分片长期无人问津,先查它的内容质量和入口价值,而不是反复重新提交。
一份可以照着做的自查清单
- 抽查 20 条 URL,确认全部返回 200、可索引、canonical 自指;
- 检查 sitemap 中是否混入重定向、410、noindex、Disallow 路径;
- 确认 lastmod 分布合理,不存在全站同一时间戳;
- 确认单文件未超上限,索引文件只引用分片;
- 确认 robots.txt 里的 Sitemap 地址可访问、没有多余跳转;
- 对比日志抓取量与实际更新量,判断分片切法要不要调整。
站点地图花不了多少时间,却是少数能被蜘蛛直接读取的“自述文件”。把它维护干净,往往比多写几篇内容更容易看到效果。