结论先说:模板改不动时,能做的不是“想办法让搜索引擎照单全收”,而是把提交范围缩到你能控制的入口层。站点地图、robots.txt、HTTP 响应头和重定向规则通常可以独立于模板修改,但它们各自的作用边界不同——有的只影响抓取,有的只影响发现,不能互相替代。先确认哪一层你能碰,再决定保留、改写还是让旧内容退出。
遗留系统的限制往往不是“全都不能改”,而是模板层被锁死。此时按控制粒度拆开看:
判断动作是否值得做,先问一句:这个改动影响的是“能不能被抓到”,还是“抓到之后怎么处理”?站点地图和内部链接影响发现;robots.txt 影响抓取;HTTP 状态码和重定向影响抓取后的归属判断。把这三件事混在一起,就会出现“提交了却没变化”的误判。
旧内容不是一律要清。如果某个页面仍有独立搜索需求、有外部链接指向它、且内容没有更好替代,保留是合理的。但保留不等于把所有旧 URL 都塞进站点地图。
可行的做法是:在站点地图中只保留你希望被发现的 URL,并确保这些 URL 返回 200 且内容可访问。站点地图不保证收录,它只是提供一个发现入口;如果页面本身返回错误状态或被 robots.txt 挡住,提交再多也不会改变结果。
一个假设例子:假设旧系统有 5000 个商品页,其中 800 个仍有库存、有外链。你可以只把这 800 个放进站点地图,其余 4200 个不提交。结果观察点不是“提交后排名是否上升”,而是日志中这 800 个 URL 的抓取频次是否与其余 URL 出现差异。如果差异不明显,说明瓶颈可能在抓取预算或内链,而不是提交范围。
模板改不动,页面内的 canonical 和 meta robots 就写不了。这时能做的“改写”主要是入口层的等价替换:
这里有一个常见误判:robots.txt 的抓取限制不等于可靠的索引移除。Disallow 只是不让爬虫抓取,已经索引的页面可能仍会出现在结果里,只是描述信息可能过时。如果目标是让旧内容退出索引,需要的是 410 或 301,而不是 Disallow。
另一个边界是:如果旧系统连重定向规则都加不了,那“改写”这条路基本走不通,应该直接进入退出判断。
退出不是失败,而是当保留和改写都不成立时的合理选择。判断条件可以归纳为三条:
退出的实际动作通常是:从站点地图移除、在服务器层返回 410、并停止在内部链接中引用。做完之后,下一步不是等“收录归零”,而是检查日志中该 URL 的抓取是否逐步减少。但要注意:抓取量归零不能单独证明处理正确,也可能是因为爬虫整体降低了抓取频次,或者该 URL 本来就没有被频繁抓取。
无论选保留、改写还是退出,提交 URL 之前都应该核对状态码。一个可操作的检查顺序是:
curl -I 或等效方式看返回头,确认是 200、301 还是 410。这个顺序的意义在于:状态码决定了提交是否有意义。把 410 的 URL 放进站点地图,等于给爬虫一个无效入口;把 301 的 URL 当成 200 提交,可能让爬虫反复访问跳转链。不同搜索引擎对站点地图、robots.txt 和状态码的支持细节需要分别核查,不能假设一套规则在所有引擎上表现一致。
最后提醒一点:HTTPS 不保证安全无漏洞或排名,它只是传输层的一个条件。遗留系统如果连 HTTPS 都无法配置,不要把它当成提交问题的核心,先解决可抓取和状态码这两个更直接的因素。