站长死链查询 - 日志中应该核对哪些字段

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

站长死链查询 - 日志中应该核对哪些字段

做站长死链查询时,日志里最该先核对的是五类字段:请求时间、请求方法、请求URL(含查询串)、HTTP状态码、来源页Referer,再补上User-Agent和响应字节数。其中状态码决定这条记录是不是死链候选,URL决定死链指向哪里,Referer决定它是否来自站内链接,三者缺一不可。只看状态码会漏掉软404,只看URL会误判正常跳转。

先分清哪些字段能证明“链是死的”

日志本身不直接告诉你链接坏了,它只记录一次请求的结果。判断死链,需要把字段组合起来看:

核对顺序:从状态码筛到Referer定位

假设你导出了一天的访问日志,按下面的顺序过一遍:

  1. 筛出状态码为404和410的记录,这是死链候选集。
  2. 在候选集里按请求URL去重并统计次数,次数高的先处理。
  3. 看Referer字段:站内来源的URL就是需要改链接的页面;站外来源的说明是别人链过来的旧地址,处理方式不同。
  4. 对301、302记录单独拉一份,检查Location指向的目标是否也返回404,跳转链断裂同样算死链。
  5. 抽查若干条200记录,确认返回的页面主体是否包含“不存在”“已删除”等文案,排除软404。

适用条件:日志需包含状态码和Referer字段,部分CDN或反向代理默认不记录Referer,需要先在服务端或CDN配置里打开。如果日志只有URL和时间,这份核对只能做到候选筛选,无法定位引用来源。

一个可执行的小例子

假设日志中有这样一条记录(示例为假设数据):

2024-06-01T10:22:31 /old/page.html?id=8 404 referer=https://example.com/list/ UA=Googlebot

判断结果:这是一条来自站内列表页、被爬虫抓取到的死链。下一步应打开/list/页面,找到指向/old/page.html?id=8的链接,改成新地址或删除。验收信号是:修改后重新抓取该页面,日志中该URL不再出现404,或出现301指向有效页面。

容易误判的几种情况与检查项

下一步:把筛出的站内Referer列表导出,逐条打开来源页面,用编辑器的查找功能定位旧链接,替换为新地址后再观察一轮日志,确认对应URL的404记录消失或转为301。

图1 图2

nginx