核对抓取限制,核心是确认搜索引擎能否正常访问页面,以及哪些规则在阻止抓取。做法是先用抓取工具模拟访问,再对照 robots.txt、页面响应状态和 meta 标签逐项排查。下面从一个假设例子展开。
假设你有一个已经上线半年的产品页,之前能在搜索结果中找到,最近却搜不到了。你怀疑是抓取限制造成的。这时不要先改代码,也不要直接提交新页面,而应按顺序核对下面几项。
如果 robots.txt 里写着 Disallow: /product/,而你的产品页正好在 /product/ 目录下,那抓取就被挡住了。这是常见错误之一:有人为了屏蔽测试目录,把整个目录写进禁止规则,结果把正式页面也一起挡住。
robots.txt 是放在站点根目录下的纯文本文件,用来告诉搜索引擎哪些路径可以抓、哪些不可以。核对时重点看三处。
User-agent: *,表示规则对所有搜索引擎生效。常见错误是把不想被收录的页面写成 Disallow。注意:Disallow 是阻止抓取,不是阻止收录。如果页面已经被其他网站链接,搜索引擎仍可能只根据链接文字把它收录,而你却看不到页面内容。想阻止收录,应该用 noindex,而不是只靠 robots.txt。
抓取限制不只在 robots.txt 里,也可能写在页面本身。检查项包括:
<meta name="robots" content="noindex">。如果有,页面即使能被抓取,也不会进入索引。<meta name="robots" content="nofollow">。它影响链接跟踪,不等于阻止页面被抓取。这里要区分“可能原因”和“已经定位的原因”。页面搜不到,可能是抓取限制,也可能是内容质量、竞争变化或索引调整。只有当你确认 robots.txt 禁止、noindex 存在或状态码异常时,才能说抓取限制是已定位的原因。
如果你有 Search Console 类的站长工具,可以用其中的网址检查功能输入具体页面地址,查看抓取状态、robots.txt 状态和索引状态。如果没有这类工具,也可以用命令行模拟:
curl -A "Mozilla/5.0" -I https://example.com/product/1
这条命令会返回响应头。重点看第一行的状态码。再把 -I 换成直接获取内容,确认页面正文是否出现在返回结果里。注意:这只是模拟,不能完全等同于搜索引擎的抓取行为,但足以发现明显的状态码和 robots 问题。
检查完成后,如果确认是 robots.txt 误屏蔽,修改规则并重新抓取;如果是 noindex,移除标签后等待重新处理。一次改动前后比较要考虑季节、搜索需求变化和数据采集差异,不能只看一天的数据就判断恢复或没恢复。
核对抓取限制的最终判断标准是:目标页面返回 200,robots.txt 没有禁止该路径,页面没有 noindex,抓取工具能拿到主要内容。四项都通过,抓取限制基本可以排除,问题应转向内容质量、内部链接或索引状态。下一步,选一个你怀疑被限制的具体页面,按上面的顺序逐项核对,并记录修改前后的状态码和规则内容。