站点地图(sitemap)很多站点上线时提交过一次,之后就再没打开过。时间一长,里面可能混着已经删除的页面、跳转中的旧地址、带参数的筛选链接,甚至被 robots.txt 屏蔽的目录。它本身不会直接带来排名,但作为 URL 发现的辅助入口,内容是否干净会影响蜘蛛对站点结构的判断。把它当成一份需要定期维护的清单,比一次性提交更有意义。
先想清楚 sitemap 应该放什么
sitemap 的定位是“希望被发现的规范 URL 清单”,不是全站 URL 导出。判断标准可以简单一些:
- 只放返回 200 状态码的页面,且是最终规范版本;
- 优先放栏目页、重要内容页和更新较稳定的页面;
- 不放重定向地址、404 页面、被 noindex 的页面;
- 不放站内搜索结果页、排序筛选参数页、会话 ID 之类的临时链接。
如果站点规模不大,一份 sitemap 就够了;页面较多时,用索引文件(sitemap index)拆分,按栏目或内容类型分组,后续排查也方便。
几个常见的混入问题
失效 URL 长期残留
栏目调整、文章合并、商品下架之后,原 URL 往往还留在 sitemap 里。蜘蛛按图索骥扑空,既浪费抓取,也容易让日志里出现大量 404。可以用脚本定期抓取 sitemap 中的链接,批量检查状态码,把非 200 的挑出来,再决定是恢复、重定向还是删除。
参数页与站内搜索结果混入
有些建站程序会自动把带参数的地址写进 sitemap,比如筛选、排序、分页参数。这类页面内容重复度高,收录价值有限,还可能拖出大量近似 URL。检查 sitemap 生成规则,把参数组合排除掉;确实需要被发现的筛选页,考虑做静态化或独立栏目。
数量与文件体积超限
单个 sitemap 文件有数量与体积上限,通常是 5 万条 URL、未压缩 50MB。超出后搜索引擎可能读不全。用索引文件分片,并保证每份文件内的 URL 都属于同一站点、同一协议。
lastmod 随手填写
lastmod 应该反映页面的实质性修改时间。如果每次发布模板或改一个错别字就全站刷新,或者反过来,内容大改却从不更新,这个字段会失去参考价值。与其乱填,不如留空,或只对真正更新过的页面写入。
把自查变成固定动作
- 定期抓取 sitemap,统计各状态码数量,关注 3xx、4xx、5xx 的变化;
- 抽取部分 URL,核对页面是否可访问、是否与 sitemap 中的地址完全一致;
- 对照栏目和内链,确认重要页面都出现在 sitemap 中;
- 检查 robots.txt 是否误屏蔽了 sitemap 或其中的目录;
- 清理无效项后,重新生成并提交,观察抓取日志里对这批 URL 的访问变化。
别把 sitemap 当成收录开关
sitemap 的作用是帮助发现,不能替代内链、栏目导航和内容质量。页面没有入口、没有价值,放进 sitemap 也不会自动获得好的结果。反过来,如果站内链接已经能顺畅到达,sitemap 更多是补充和核对工具。
把 sitemap 当作一份需要定期打扫的清单:地址是否还有效、是否值得被看到,比里面有多少条更重要。
建议每季度至少检查一次,栏目大调整或批量删除内容后立即复查。维护成本不高,但能减少蜘蛛在无效地址上的空跑,也让站点结构更清晰。