站长工具死链,日志中应该核对哪些字段

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

站长工具死链,日志中应该核对哪些字段

用站长工具处理死链时,日志里最该核对的是四类字段:请求时间、请求URL、HTTP状态码、来源页(Referer)。其中状态码决定这条链接是否真的失效,来源页决定该找谁改链接,请求时间决定这条死链是历史遗留还是最近新增。只看工具报出来的死链列表是不够的,因为工具通常只给你结果,不告诉你这条URL是被谁、在什么时候、以什么方式请求的。

先明确你要交付什么结果

从交付结果倒推,处理死链一般有两种交付方案,它们需要的日志字段并不相同。

判断依据很简单:如果Referer为空或来自站外域名,这条死链多半是外链或搜索引擎抓取留下的,光改站内页面解决不了,需要配合301跳转或保留该URL的替代入口。

日志中必须核对的字段清单

以常见的Web访问日志格式(如Nginx默认的combined格式)为例,一行记录里通常包含以下内容,逐项核对:

  1. 请求时间:看这条404是最近几天集中出现,还是几个月前就有。集中出现往往意味着某次改版或删页导致,属于新问题;长期零星出现多为历史遗留。
  2. 请求URL(含查询字符串):注意区分 /old-page 和 /old-page?from=xxx。带参数的URL在工具里可能被归为同一死链,但实际处理时可能只需处理无参数版本。
  3. HTTP状态码:404表示资源不存在,410表示资源已永久删除,500表示服务器错误。三者处理方式不同——500不是死链,是服务器故障,不该按死链清理。
  4. 来源页(Referer):为空说明是直接访问或从HTTPS跳到HTTP时被浏览器省略;来自站内说明是内部链接问题;来自站外说明是外链问题。
  5. User-Agent:用于区分是真实用户点击、搜索引擎爬虫抓取,还是监控工具探测。爬虫抓取频繁出现的404,优先级通常高于偶发的用户访问。
  6. 请求方法:GET和HEAD都可能产生404记录。HEAD请求多来自爬虫或链接检查工具,不代表用户真的看到了死链页面。

两种处理方案的适用条件与判断

核对完字段后,按下面的条件决定用哪种方案。

一个假设的例子:日志显示 /product-old 的404记录中,Referer多为站外论坛域名,User-Agent包含爬虫标识,请求时间跨度超过半年。这种情况属于方案B,应做301跳转。如果同一URL的Referer全部是站内某篇文章,且只出现于上周改版后,则属于方案A,改那篇文章的链接即可。

核对时的常见误判

有几点容易判断错。第一,Referer为空不等于没有来源,可能是浏览器隐私设置或HTTPS到HTTP的跳转导致,需要结合User-Agent和请求时间一起看。第二,工具报出的死链数量不等于需要处理的链接数量,同一URL带不同参数可能被重复统计。第三,状态码为302的跳转如果目标页也是404,工具可能不报,但日志里会留下痕迹,需要顺着跳转链核对最终状态码。

另外,robots.txt 里屏蔽某个路径,并不会让已经存在的死链消失,也不会移除索引;站点地图里不列出某个URL,同样不保证它不被抓取。这两项不能替代对日志字段的核对。

下一步:从日志中筛出状态码为404和410的记录,按Referer是否为空、是否来自站外分成两组,再对照上面的适用条件决定每组走方案A还是方案B。

图1 图2

nginx