站点地图不是提交完就完事
站点地图(sitemap)本质上是一份清单:告诉爬虫我们有哪些 URL、大概什么时候更新过。它不保证收录,也不直接带来排名,但能让有价值的页面更快进入抓取队列,减少靠外链慢慢被发现的时间。很多站点的问题不是没有 sitemap,而是这份清单长期没人管,里面混着死链、重定向和一堆不该出现的动态地址,反而消耗了抓取预算。
一份能用的 sitemap 应该长什么样
- 只放返回 200、可公开访问的页面地址,登录后页面、后台地址不要写进去。
- 地址用绝对 URL,并与页面上的 canonical 保持一致,避免同一内容出现两种写法。
- lastmod 填真实的最后修改时间,不要每次发布都全站刷新成当天。
- 单个文件通常控制在 5 万条 URL 以内、未压缩体积 50MB 以内,超出就拆成多个文件并用 sitemap index 汇总。
- 收录重点:栏目首页、文章详情、有独立价值的专题页;不收录筛选参数页、站内搜索结果页、纯标签聚合页。
几个高频问题,逐条对照检查
地址与线上不一致
http 与 https、带 www 与不带 www、结尾斜杠有无、路径大小写,这些只要有一处不统一,清单里就可能出现大量会跳转的地址。做法很简单:从 sitemap 里随机抽一批地址,用脚本批量请求,看最终落到哪个 URL,把出现 301 的写法统一掉。
混入不该出现的页面
常见的有:已经下线的旧栏目、被设成 noindex 的页面、404 页面、以及分页列表的第二页之后(首页通常保留一条即可)。这些地址被反复抓取,只会让真正需要更新的内容排在后面。
lastmod 不诚实
如果每次生成都把全站时间改成当前时间,爬虫很快会判断这个字段没有参考价值,之后就不再依据它安排抓取。正确做法是取内容真实的更新时间,只让改动过的页面发生变化。
生成逻辑失控
有些程序会把所有列表页、标签页、分页组合自动输出,站点规模一上来,清单就膨胀到几万条。建议给生成规则加上白名单:只输出内容类型明确、模板独立的页面。
把它接到日常流程里
- 发布环节自动更新:内容上线、下线时同步触发 sitemap 重新生成,不靠人工导出。
- 每周抽查一次:随机取二十条地址,检查状态码、canonical 和页面是否正常渲染。
- 每月对账日志:看爬虫实际抓了哪些地址,清单里长期无人访问的页面,判断是价值不足还是入口太弱。
- 每季度清理一次:删除已下线栏目和长期无更新的低质页面,保持清单精简。
- 在 robots.txt 中写明 sitemap 地址,并在搜索资源平台提交,方便统一查看抓取情况。
别把它当成万能钥匙
站点地图只是发现渠道之一,导航、内链和外部链接同样决定页面能不能被找到。清单写得再漂亮,页面本身没有内容价值,也不会带来想要的结果。
把 sitemap 当成一份需要定期对账的清单:地址对得上、时间如实、该收的收、该删的删。做这件事花不了多少时间,但能让你在排查“为什么新页面迟迟没动静”时,少一个怀疑对象。