做搜索引擎收录检查时,日志里最该先核对的是能回答三个问题的字段:谁来过、看了什么、结果如何。具体来说,至少要看时间戳、客户端IP、请求方法、请求URL、状态码、响应大小、User-Agent和Referer。其中最关键的一步是先把 User-Agent 与 IP 段筛出来,确认请求确实来自搜索引擎的抓取程序,而不是普通访客或第三方工具,再看状态码和 URL 的对应关系。如果跳过这一步,后面所有分析都可能建立在错误样本上。
不同服务器和 CDN 输出的字段顺序不同,常见格式如 Nginx 默认组合日志、Apache combined 格式,字段含义需要先对照配置确认。你可以先取一小段日志,用下面这种思路逐列标注:
如果日志里缺少 User-Agent 或状态码,应先调整日志格式再继续,否则无法完成有效核对。
第一优先级是 User-Agent 与 IP 的组合。只凭 User-Agent 容易被伪造,只凭 IP 又可能遗漏新段,因此两项要一起看。你可以用命令行先筛出疑似搜索引擎请求,例如假设日志中抓取程序标识包含某关键词,可执行:
grep -i "搜索引擎标识" access.log | awk '{print $1, $9, $7}' | sort | uniq -c | sort -nr | head -50
这里输出的三列分别是 IP、状态码和 URL,用来快速看哪些地址被频繁抓取、返回了什么结果。假设某页面被反复请求但状态码一直是 404,说明抓取程序找到了入口却拿不到内容;假设状态码是 200 但响应大小接近 0,则可能是返回了空模板或前端渲染未输出内容。这些只是可能原因,需要结合页面实际返回进一步定位,不能仅凭日志下结论。
第二优先级是状态码分布。重点看 200、301、302、304、403、404、429、5xx 的比例。403 可能来自防火墙或 robots.txt 之外的访问限制,429 通常表示请求频率被限制,5xx 说明服务端不稳定。它们都会影响抓取效率,但不等于页面一定不会被收录。
第三优先级是 URL 与 robots.txt 的关系。如果日志显示抓取程序请求了 robots.txt,应核对其中是否误屏蔽了重要目录。robots.txt 的抓取限制不等于可靠的索引移除:被禁止抓取的 URL 仍可能因外部链接出现在结果中,而允许抓取也不保证一定收录。
日志只能证明抓取行为,不能直接证明已收录。验证时要拿日志中确认被抓取过的 URL,去对应搜索引擎的站点管理工具或直接搜索该 URL 查看现状。判断逻辑可以这样分:
站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名,这些字段核对的目标是排除技术障碍,不是承诺结果。
把核对字段固化成一张检查表,每次改版、迁移或调整 robots.txt 后复查一次。建议至少保留以下判断项:
下一步可以直接从最近七天的日志中筛出状态码非 200 的搜索引擎请求,按 URL 分组排序,先处理出现次数最多且属于重要页面的那几条。