死链检查:怎样区分访问抓取与索引结果

📍 WDQWDWQD987AAAAA:216.73.217.13
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /32258b67b473.html
📄

死链检查:怎样区分访问抓取与索引结果

死链检查时,访问、抓取和索引是三个不同阶段:访问是客户端或工具能否拿到响应,抓取是搜索引擎爬虫是否请求了该 URL,索引是搜索引擎是否把该 URL 作为可展示结果保留。判断死链,先看访问结果;安排修复优先级,再看抓取与索引是否仍指向旧地址。三者不能互相替代。

先分清三个信号各自代表什么

访问结果回答“这个地址现在能不能通”。用 curl -I 或浏览器开发者工具看 HTTP 状态码:404、410 表示资源不存在,301、302 表示跳转,200 表示正常返回。访问失败不等于已经被搜索引擎抓取或索引,访问正常也不等于一定被索引。

抓取记录回答“爬虫来过没有”。这通常要看服务器访问日志,按爬虫 User-Agent 和请求时间筛选,确认它请求的是哪个 URL、得到什么状态码。日志里出现请求,只说明抓取发生过,不说明该 URL 已进入索引。

索引结果回答“搜索时是否还能看到这个地址”。用站内搜索语法查询具体 URL,或查看搜索平台提供的页面状态说明。索引里存在旧地址,说明清理工作还没完成;索引里没有,也不代表抓取和访问没有问题。

时间人手有限时,按这个顺序排查

  1. 先批量测访问状态。把站内链接、站点地图中的 URL、外链指向的 URL 各取一份清单,用工具或脚本请求,记录状态码和最终跳转地址。优先处理返回 404、410 且仍有内部链接指向的地址。
  2. 再查这些 URL 有没有被抓取。在服务器日志中搜索同一路径,看最近是否有爬虫请求、返回码是什么。如果日志显示爬虫拿到 404,说明抓取已发现死链,修复或跳转的收益更直接。
  3. 最后确认索引状态。对已修复的旧地址,检查搜索平台是否仍保留旧页面。若仍显示,需要等待重新抓取,或按平台规则提交更新;不要用 robots.txt 屏蔽来代替移除索引,抓取限制不等于可靠的索引移除。

假设一个旧商品页返回 404,日志里爬虫上周请求过它,站内搜索仍能查到旧标题。这个例子说明访问、抓取、索引三层都还指向旧地址,应优先做 301 到新商品页,再观察日志和索引变化。若访问返回 404 但日志和索引都没有记录,处理紧迫性就低得多。

用一张对照表判断该先修什么

验收信号也要分层看:访问层看状态码是否稳定为 200 或正确跳转;抓取层看日志中爬虫是否重新请求并拿到新状态;索引层看旧地址是否从搜索结果中消失、新地址是否出现。三层都变化,才算死链处理闭环。

容易混淆的边界

HTTPS 只说明传输加密,不保证页面没有漏洞,也不保证排名。站点地图是发现线索,不是收录承诺。不同搜索引擎对跳转、移除和重新抓取的处理节奏不同,需要分别核查。把“访问不通”“抓取失败”“索引残留”写成同一个结论,会导致修复顺序错位。

下一步:从访问日志和站内链接清单中各取一批 URL,按上面的对照表标记所处层级,先处理同时满足“访问失败、有抓取、仍有索引”的地址。

图1 图2

nginx