处理网站404时,日志里最该先核对的是请求URL、状态码、来源页、User-Agent、请求时间、响应大小和服务器处理结果。其中最关键的一步是:把“返回404的URL”与“来源页”对应起来,判断这个404是用户点进来的死链,还是搜索引擎抓取旧地址、外部站点引用或程序生成错误链接。只看状态码不够,必须结合来源和请求特征,才能决定是修复、重定向、保留404,还是检查规则误伤。
多人协作时,先约定日志来源和字段口径,避免有人看服务器访问日志,有人看CDN日志,最后对不上。常见可核对字段包括:
请求时间:定位404集中出现的时间段,判断是否与改版、发版、规则调整重合。请求方法:GET、HEAD、POST的404含义不同,POST返回404通常不是普通死链问题。请求URL:包括路径、查询参数,注意大小写、末尾斜杠、编码字符。状态码:确认是404,还是410、301、302、403、500等被误读。来源页:判断用户从站内哪个页面点到404,或外部站点引用了什么地址。User-Agent:区分普通浏览器、搜索引擎抓取、监控脚本、扫描器。响应大小:异常小的404页面可能说明错误页配置不完整或被安全规则拦截。服务器处理结果:如命中重写规则、反向代理结果、应用路由结果,用于判断404由哪一层产生。如果日志里没有来源页字段,至少要先补上或从页面分析工具、搜索平台抓取统计中交叉核对。缺少来源页时,只能知道“哪个URL 404”,很难判断“为什么会出现这个404”。
建议按以下顺序核对,每一步都留下判断结果,方便交接:
分类后通常得到三类:需要修复的死链、需要301重定向的旧地址、可以保留404的无效请求。判断条件很简单:有等价新页面就重定向;没有等价内容且不应被访问就保留404;如果是站内链接写错,直接修链接,不要用重定向掩盖问题。
处理完成后,用同一批URL重新请求,核对状态码是否变为200、301或410。若做了301,检查最终落地页是否与旧URL主题一致,避免全部跳到首页。若保留404,确认返回的是自定义404页面而不是服务器默认错误页。多人协作时,交付记录至少包含:原URL、来源页、判断结论、处理方式、验证时间、验证结果。这样下次出现类似404时,不需要重新猜。
注意:robots.txt 的抓取限制不等于可靠的索引移除;站点地图不保证收录;HTTPS 不保证安全无漏洞或排名。日志核对只解决“请求发生了什么”,不能替代内容质量、索引状态和搜索平台规则分别核查。
把404日志核对加入发版检查和每周巡检。固定检查项可以设为:新增404数量、站内来源页404、搜索引擎抓取404、重定向链超过一跳的URL、返回404但响应大小异常的URL。每次只处理有明确来源和明确处理结论的条目,扫描器产生的大量随机404不必逐条修复,但可以观察是否集中在特定路径。下一步,先导出最近7天状态码为404的请求,按请求URL和来源页两列聚合,挑出站内来源页最多的前20条开始处理。