搜索引擎不收录日志中应该核对哪些字段?先看抓取与响应

📍 WDQWDWQD987AAAAA:216.73.216.175
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /1a396d17d748.html
📄

搜索引擎不收录日志中应该核对哪些字段?先看抓取与响应

排查搜索引擎不收录时,服务器日志里最该优先核对的是:请求时间、请求方法、请求URL、HTTP状态码、User-Agent、Referer、响应大小和响应时间。它们能帮你判断搜索引擎爬虫是否来过、拿走了什么、是否被服务器拒绝。不要一上来就改页面内容,先确认抓取链路是否正常。

先分清“没来抓”和“抓了没收”

日志字段要组合起来看,不能只看状态码。判断路径可以这样走:

如果日志里完全没有目标URL的抓取记录,优先检查内链、站点地图和robots.txt是否让爬虫难以发现或进入。如果日志里有抓取且状态码为200,但页面仍不收录,问题更可能在内容质量、重复度或索引选择,而不是抓取通道。

状态码之外,还要核对响应大小和响应时间

有些抓取失败不会直接表现为4xx或5xx。例如服务器返回200但内容为空、返回的是验证页、或响应时间过长导致爬虫提前断开。核对时可关注:

这里要区分“可能原因”和“已经定位的原因”:响应大小为0可能是服务端返回空内容,也可能是日志字段本身没记录完整。只有结合状态码、URL和实际返回内容,才能确认是哪一种。

robots.txt、站点地图和HTTPS各自能说明什么

日志核对时,这三项常被混在一起,需要分开判断:

因此,核对日志时不要把“爬虫读过robots.txt”或“抓过sitemap”当成收录保证,它们只是链路中的一步。

可执行的最小核对步骤

第一次接触这个问题,可以按下面顺序执行:

  1. 从日志中筛出目标URL,确认是否有任何抓取记录。
  2. 有记录时,看最近一次请求的User-Agent、状态码、响应大小和响应时间。
  3. 状态码为200但响应大小异常,检查服务端返回内容是否完整。
  4. 状态码为3xx,跟踪跳转终点是否为目标页面。
  5. 状态码为4xx或5xx,先修复对应错误,再观察后续抓取。
  6. 完全没有记录时,检查内链和站点地图是否指向该URL,并确认robots.txt没有误拦截。

假设某页面日志显示:状态码200、响应大小与同类页面接近、最近抓取在几天内,但仍不收录。这时更应转向检查页面内容是否与已有页面高度重复、是否有明确价值,而不是继续在日志里找抓取故障。反之,如果日志显示状态码403或响应大小为0,就应先解决服务器拒绝或空返回问题。

下一步做什么

先导出目标URL最近一段时间的日志记录,按状态码和响应大小分组。若抓取正常,转向内容与索引层面核查;若抓取异常,先修复服务器响应。只有把“抓取是否发生、返回是否正常”确认清楚,后续判断才有依据。

图1 图2

nginx