把自定义404错误页做成可复用检查清单,核心是固定三组检查项:页面是否真的返回404状态码、页面是否给用户可走的下一步、页面是否避免被搜索引擎当成有效内容。清单不必一次写全,先把这三组各留一条最小检查项,之后每次改版或迁移只追加实际踩过的坑。这样即使时间和人手有限,也能先处理最影响用户体验和索引判断的问题。
自定义404错误页的检查对象不是首页或栏目页,而是那些已经失效、被删除或输错路径的URL。判断一个URL是否应该走404,可以按下面的顺序核对:
只有确认“不再提供且没有更合适的承接页”时,才进入自定义404页的检查。这一步能避免把本该跳转的地址错误地交给404页处理。
时间有限时,先固定下面五项。每项都给出可执行的检查动作和判断结果。
<title>能说明“页面不存在”,而不是沿用首页标题。标题重复会让用户误以为仍在原栏目内。X-Robots-Tag: noindex,但要注意noindex与404状态码同时存在时,不同搜索引擎的处理需要分别核查。这五项通过后,再考虑视觉风格、插画、搜索建议等增强项。顺序不能反过来,否则容易先花时间做美化,却漏掉状态码和出口这类基础问题。
同样是人手有限,不同站点的优先项不同。可以用一个简单矩阵判断:
判断“高影响”的依据可以来自服务器日志中404请求的数量、这些请求是否来自站内链接、以及用户是否在404页后继续访问。没有日志权限时,至少先检查站内是否还有指向已删除URL的链接。
清单要能复用,关键是每次检查留下同样的字段。可以按下面格式记录,一行一个URL:
URL | 状态码 | 是否有出口 | 是否被内链 | 处理动作 | 复查日期
假设某篇文章被删除,站内还有三个页面链接到它。记录后处理动作写“移除内链并保留404”,复查日期写两周后。下次再遇到类似删除,直接套用同一行格式,不需要重新想要检查什么。
验收信号可以设为:同一批URL复查时,状态码全部为404或410,站内不再有指向它们的链接,404页在移动端能正常返回首页。达到这三条,这一轮检查即可结束。
如果站点改用前端路由,或者把404处理交给CDN或反向代理,原来的状态码检查方法可能不再适用。这时要先确认最终返回给浏览器的响应头由哪一层决定,再决定检查位置。robots.txt的抓取限制不等于可靠的索引移除,站点地图不保证收录,这些都不能替代对404页本身的检查。清单应随着架构变化更新,而不是一次写完后不再维护。
下一步可以拿最近一周服务器日志中出现的404 URL,按上面的五行格式填十行,先处理其中状态码不是404或没有任何出口的条目。