核对抓取限制,关键是确认搜索引擎能否正常访问目标页面,而不是只看页面是否返回200。实际操作要同时检查robots.txt、页面级meta robots、HTTP响应头中的X-Robots-Tag、服务器防火墙与登录限制,并用抓取工具或日志验证。多人协作时,把“谁改了什么、在哪一层改的、如何验证”写进交付单,能减少返工。
抓取限制可能出现在不同层,排查前先建立清单,避免只改一处就以为完成。
<meta name="robots" content="noindex, nofollow">是否误写。这四层是并列关系,不是互斥关系。一个页面被限制抓取,可能只有其中一层生效,也可能多层同时存在。核对时要逐层确认,而不是看到某一层正常就下结论。
最关键的一步是模拟搜索引擎的抓取请求,而不是用浏览器打开页面。浏览器会携带登录态、Cookie和本地缓存,结果和搜索引擎看到的不一样。
curl -I -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/page。这里把域名和路径替换成实际要检查的地址。X-Robots-Tag,以及它的值是否包含noindex、nofollow或none。https://example.com/robots.txt,确认目标路径是否被Disallow命中。注意robots.txt的匹配按前缀规则,Disallow: /private会挡住/private及其子路径。判断结果时,可以按这个顺序:状态码非200先查访问控制;状态码200但响应头带noindex,先改响应头;响应头正常但robots.txt命中,先改robots.txt;以上都正常再看页面meta。这个顺序只是排查起点,具体原因仍要以实际返回内容为准。
改完配置不等于抓取恢复。验证要看两个证据:一是服务器访问日志中是否出现搜索引擎的抓取记录,二是搜索平台的抓取测试工具是否返回正常。日志里可以观察请求的User-Agent、状态码和请求时间。如果日志中该路径长期只有浏览器访问、没有抓取访问,说明限制可能仍然生效。
多人协作时,验证结果要写清楚:测试时间、测试URL、使用的User-Agent、返回状态码、robots.txt匹配结果、响应头内容和meta内容。这样接手的人不用重新猜。
比较改动前后时,要考虑季节、搜索需求和数据采集差异。抓取量上升不一定全是解除限制的功劳,抓取量下降也不一定全是限制导致。判断抓取限制是否解除,应以单次请求的返回结果和日志中的抓取记录为准,而不是只看整体流量曲线。
抓取限制容易在改版、迁移、加CDN或加登录功能时被重新引入。维护阶段可以做三件事:
如果目标页面需要登录才能访问,搜索引擎通常无法抓取,除非该页面本身不面向搜索展示。这类情况下,核对重点应转为确认是否应该被收录,而不是强行放开登录限制。
下一步:挑一个当前不确定能否被抓取的URL,按上面的curl请求和robots.txt检查各做一次,把返回状态码、响应头和meta内容记录到交付单,再决定改哪一层。