处理死链时,最容易犯的错是把“搜索引擎访问过”当成“页面已被收录”,或者把“抓取失败”当成“索引里还有这个页面”。实际上,访问抓取和索引结果是两个阶段:抓取是搜索引擎请求并读取URL,索引是它把内容存入可供搜索展示的数据库。一个死链可能被抓取工具反复访问,却早已不在索引里;也可能抓取被阻止,但旧索引仍然存在。区分这两者,才能决定先修链接、先做跳转,还是先处理索引移除。
抓取只说明搜索引擎的爬虫来过这个URL,并拿到了某种响应。常见响应包括200、301、302、404、410、403、5xx。索引状态则要看该URL是否还能在搜索结果中以独立结果出现,或者是否被规范到其他页面。一个返回404的URL,爬虫可能因为站内或外链仍然访问它;但如果它早已从索引中移除,就不需要再做“删除索引”操作。反过来,一个返回200的页面也可能因为noindex、规范标签或内容质量原因不被索引。
因此,看到服务器日志里有大量404访问,只能说明有抓取行为,不能证明这些URL还在索引中。看到搜索结果里还有旧页面,也不能证明爬虫现在仍在正常抓取它。两个数据源必须分开看。
时间和人手有限时,不要逐个URL打开搜索框查。可以按下面两步做抽样核对:
把结果分成四类,处理顺序自然清楚:
robots.txt的作用是限制爬虫抓取路径,不是可靠的索引移除工具。一个URL被robots.txt阻止后,搜索引擎可能仍保留旧索引,因为它无法重新抓取确认页面已消失。站点地图也不保证收录,它只是提交可抓取URL的参考清单,不能替代页面本身的可访问性和内容质量。HTTPS同样不保证安全无漏洞,也不保证排名,它只是传输层的一种保护。
处理死链时,如果旧URL已经返回404或410,却仍出现在索引中,正确顺序通常是:先确保该URL可被抓取,再确认返回正确的状态码,最后等待索引更新。若必须加快移除,应使用搜索引擎提供的移除请求渠道,而不是只改robots.txt。不同搜索引擎对移除请求的支持和响应不同,需要分别核查。
先处理“仍在索引且被抓取”的死链,因为它们同时影响用户点击和搜索展示。其次处理“仍在索引但未被抓取”的旧URL,检查是否被robots.txt或错误跳转阻断。最后处理“不在索引但被抓取”的404,通常只需清理站内链接,不必逐个提交移除。
执行时可以用一个短例子判断:假设某旧产品页返回404,服务器日志显示昨天仍有爬虫访问,但搜索结果里已找不到它。这属于“被抓取但不在索引”,优先做站内链接替换即可。若同一页面在搜索结果中仍能搜到,则属于“被抓取且仍在索引”,应设置301到新产品页,并确认跳转目标返回200。若该页面被robots.txt阻止且仍出现在索引中,先移除阻止规则,让它返回410,再提交移除请求。
下一步:从服务器日志中导出最近30天返回404或410的URL,按“是否仍在索引”分成两组,先处理仍在索引的那一组。