核对抓取限制,不能只看 robots.txt 一个文件。正确做法是:先确认搜索引擎实际抓到了什么、被拦在哪一步,再分别检查 robots.txt、页面 meta 指令、HTTP 响应头和服务器层面的访问控制,最后用日志或抓取工具验证判断。只改一处就以为解除了限制,往往会让权重提高方法失效。
很多人核对抓取限制时,只打开 robots.txt 看有没有 Disallow: /,发现是允许就认为没问题。但 robots.txt 只控制“是否允许发起抓取请求”,它不决定页面能否被索引,也不覆盖页面级指令和服务器拦截。一个页面可能 robots.txt 完全放行,却因为 <meta name="robots" content="noindex"> 而不进入索引,或者因为返回 403 而根本抓不到内容。
所以核对抓取限制要分两层:抓取层(能不能取到内容)和索引层(取到后允不允许收录)。权重提高方法依赖页面能被正常抓取和收录,任何一层被限制,后续优化都难以生效。
建议按下面顺序核对,因为前面的限制会掩盖后面的问题:
noindex 写错成 no index 不会生效。X-Robots-Tag,它能在响应头层面施加 noindex,优先级和页面 meta 类似,容易被忽略。每一项都要记录“检查了什么、看到什么结果”,而不是只记“已检查”。这样出现反复时才能定位是哪一个环节在起作用。
假设你发现某个栏目页长期没有获得抓取,可以这样核对(以下为操作示例,不是真实项目结果):
site: 查询确认该 URL 是否在索引中,若不在,进入下一步。noindex 和 X-Robots-Tag。curl -I 页面地址,观察状态码是 200、403 还是 429。判断结果的方式:如果日志里爬虫从未出现,问题可能在上游的 robots.txt 或链接发现;如果爬虫来了但返回 403,问题在服务器或防护层;如果返回 200 但页面带 noindex,问题在索引层。三种情况的处理方向完全不同。
解除一项抓取限制后,不要立刻断定是这次改动带来的变化。搜索需求本身有季节性波动,数据采集时点不同也会造成差异,抓取和索引本身存在延迟。比较时至少做到:记录改动日期,保留改动前后的日志或抓取记录,观察足够长的窗口,并排除同期是否有其他改动。权重提高方法中的任何调整,都应以可复现的证据为依据,而不是单次快照。
下一步:挑一个当前抓取异常的具体 URL,按上面四层顺序逐项记录结果,先定位限制发生在哪一层,再决定改 robots.txt、页面指令还是服务器配置。