核对抓取限制,核心是确认搜索引擎能否正常访问页面、哪些资源被拦截、拦截是否符合预期。多人协作时最容易出错的环节,是改了robots.txt或加了页面级指令后没人复核,导致整站或关键目录被误屏蔽。下面用一个假设例子说明完整步骤。
假设某团队把产品目录从/product/迁到/p/,同时上线了新的robots.txt。上线后一周,运营发现新目录页面收录很少。此时不要直接下结论说“被屏蔽了”,应逐项核对,因为收录少可能来自抓取限制、内链缺失、页面质量或需求变化等多种原因。
robots.txt是抓取限制最直接的来源,但要注意它只是建议性协议,不同搜索引擎的执行细节存在差异。检查要点:
https://域名/robots.txt直接访问,返回状态码为200,而不是404或跳转。Disallow路径,特别留意是否误写了Disallow: /,或把新目录/p/整段屏蔽。Allow与Disallow的先后顺序和路径匹配规则,路径前缀匹配容易误伤,例如/p会同时影响/product/。noindex配合robots屏蔽同一批URL——两者叠加时,抓取被阻止,页面上的noindex指令也无法被读到。常见错误是只看了本地文件,没看线上返回内容。CDN缓存、多环境配置不一致,都可能让线上robots.txt与仓库版本不同。核对时应以线上实际返回的文本为准。
抓取限制不只在robots.txt。逐个抽查关键页面:
<meta name="robots">,确认没有意外的noindex或nofollow。X-Robots-Tag,它常被忽略,却可能由服务器或中间件统一加上。rel="canonical"指向的是可抓取的正式URL,而不是被屏蔽的地址。判断结果的方法:如果robots.txt允许抓取,但页面返回noindex,页面可能被抓取却不会进入索引;如果robots.txt禁止抓取,页面上的noindex通常读不到,页面可能仍以URL形式出现在结果中。两种现象含义不同,处理方式也不同。
人工看代码只能确认“声明”,不能确认“实际”。需要交叉验证:
这里要区分“可能原因”和“已经定位的原因”。日志显示爬虫从未请求某目录,可能是robots屏蔽,也可能是内链太少、站点地图未提交;只有结合robots内容和日志才能定位。不要凭单一现象下结论。
为减少返工,把核对做成可交付的清单,每次改动后由非改动人复核:
判断是否通过的标准:目标URL可被抓取、可返回200、未被页面级指令排除、已在内链或站点地图中可达。四项都满足,才可认为抓取限制核对完成;任一项不满足,先修复再观察,不要急于提交收录请求。
下一步:挑一个当前最重要的目录,按上面的顺序走一遍,把结果写进交付文档,再决定是否需要调整robots.txt或页面指令。