检查访问状态的核心动作,是向目标URL发起一次请求,记录HTTP状态码、响应时间、跳转链和最终落地页,再判断问题出在DNS、服务器、CDN、程序还是页面本身。只看到“打不开”或“收录异常”就下结论,容易把不同层的问题混在一起。
开始之前,把要检查的URL列清楚:首页、栏目页、文章页、sitemap、robots.txt,以及站内跳转链较长的页面。为每个URL记录三样基准信息:正常时返回的状态码、正常时的响应时间范围、正常时的最终落地URL。没有基准,就无法判断当前结果算不算异常。
同时区分两种访问:搜索引擎抓取工具的访问,和普通浏览器或命令行工具的访问。两者看到的响应可能不同,例如服务器按User-Agent返回不同内容,或对特定来源做了拦截。检查时最好各测一次,并记录请求头差异。
最关键的一步是看完整跳转链,而不是只看最终页面能否打开。一个URL可能先返回301到另一个地址,再返回302,最后落到一个200页面;也可能在中间某一步返回404或500。只看浏览器地址栏,很容易漏掉中间环节。
可以按下面的检查项逐条记录:
如果使用命令行工具,可以执行类似下面的请求,观察响应头中的状态码和跳转位置:
curl -I -L https://example.com/page
其中 -I 只取响应头,-L 跟随跳转。把输出里的每一行状态码和Location字段抄下来,就能还原跳转链。若状态码是5xx,优先查服务器日志和程序错误;若是404,先确认URL是否被改动或删除;若是跳转异常,检查重定向规则和CDN配置。
一次请求的结果不能直接当作结论。至少换两个条件复测:换网络环境,换请求来源。例如从本地网络、服务器所在机房、不同地区的节点分别请求同一URL,看状态码是否一致。如果只有某个地区异常,更可能是CDN节点或DNS解析问题;如果所有环境都返回5xx,更可能是源站或程序问题。
还要把时间因素考虑进去。白天和夜间的响应时间可能不同,搜索需求变化也会影响抓取频率。比较改动前后时,不能只看一天的数据,应把观察窗口拉长到若干天,并记录同期是否有内容更新、服务器迁移或规则调整。
访问状态不是查一次就结束。对重要URL建立固定检查清单:状态码、跳转链、响应时间、最终落地页、抓取工具访问结果。每次改动服务器配置、重定向规则、CDN缓存或页面结构后,按同一清单复测一遍,并把结果与基准对比。
如果发现异常,先按“现象—可能原因—已定位原因”分开记录,不要把一个现象直接归为唯一原因。例如页面返回404,可能是URL被删除,也可能是重定向规则写错,还可能是大小写不一致;只有通过日志和复测才能确认是哪一种。
下一步,选一个当前有疑问的URL,按上面的检查项完整跑一遍,把状态码、跳转链和复测结果记在同一张表里,再决定是改配置、改内容还是继续观察。