检查访问状态与错误页,最先做的不是逐页点开,而是确认三件事:服务器是否返回正常状态码、错误页是否对用户和搜索引擎都清楚、以及问题出在整站还是个别页面。时间人手有限时,按“先全局、后单页、再历史记录”的顺序查,能最快把范围缩小到可处理的对象。
要查的是网站主要入口和几个代表性栏目页返回的 HTTP 状态码。可以用浏览器开发者工具的网络面板,也可以用命令行工具批量请求。例如在命令行执行 curl -I https://example.com/,看返回的第一行。结果说明:200 表示正常;301/302 表示跳转,要确认跳转目标是否是最终页面;403 表示被拒绝访问;404 表示资源不存在;5xx 表示服务器端出错。如果首页就是 5xx,先处理服务器,不必继续查单页。这一步只用几分钟,却能判断问题是全局性的还是局部的。
要查的是错误页有没有返回正确的状态码,以及页面上有没有给用户出路。打开一个确定不存在的地址,例如在网址后加一段随机字符,观察两件事:一是返回码是否为 404 而不是 200,二是页面是否包含返回首页、搜索或栏目导航的链接。结果说明:如果错误页返回 200,搜索引擎可能把它当成正常内容收录,需要修正;如果页面只有一句“出错了”而没有导航,用户会直接离开。人手有限时,至少保证 404 页和 5xx 页各有一个可用的出口。适用条件是站点已有自定义错误页;如果用的是默认错误页,优先确认状态码正确,再考虑美化。
要查的是首页、导航、文章正文里的链接是否还能打开。可以人工点几个关键入口,也可以用站点地图或爬取工具跑一遍。结果说明:出现 404 的链接要区分两种情况——内容已迁移的,应改成 301 指向新地址;内容确实删除的,应从导航或正文中移除,或改成 404 并保留提示页。判断依据是这条链接是否还有用户需要。如果时间只够做一件事,先修导航和首页上的死链,因为它们被访问和抓取的频率最高。
访问异常可能来自多个方向:服务器配置、域名解析、程序报错、防火墙拦截、内容被删除。不要看到 404 就认定是页面被删,也不要看到 5xx 就认定是服务器宕机。可执行的区分方法是:同一地址换网络环境再请求一次;查看服务器错误日志的时间点是否与现象吻合;对比同一栏目下其他页面是否正常。结果说明:只有日志、返回码和复现步骤能互相对上,才算定位到原因;否则只能列为待验证的猜测,继续用下一次请求去排除。
把上面几步的结果记成一张短表,每行写地址、返回码、现象、判断。排序原则是:影响全站的 5xx 和解析问题最先处理;其次是导航和首页死链;再次是普通内容页的 404 和跳转链;最后才是错误页的视觉优化。这样安排的原因是,前两类问题会挡住所有用户和抓取,后两类只影响局部。按这个顺序做,时间和人手有限时也不会把精力花在低影响项上。
下一步:挑出你站点上访问量最高的三个入口,分别用命令行请求一次,记录返回码;如果出现非 200,就按上面的顺序从服务器和跳转目标开始查。