要区分“抓取”和“索引”,最直接的办法是看同一网址在抓取日志、robots.txt 规则和索引状态三处是否一致:如果抓取日志里没有该网址的访问记录,且 robots.txt 明确禁止抓取,那问题在抓取层;如果抓取正常但索引里没有,问题在索引层。两者不能混为一谈,因为 robots.txt 只控制爬虫能不能来抓,不负责把已经抓到的内容从索引里删掉。
robots.txt 是一份放在站点根目录的纯文本协议,用 User-agent 和 Disallow 告诉爬虫哪些路径不要抓。它有两个容易被忽略的特点:一是只对遵守协议的爬虫有效,二是被禁止抓取的网址通常不会被读取内容,也就很难进入正常索引流程。
判断抓取层问题时,按下面顺序核对:
https://你的域名/robots.txt,确认返回的是 200 而不是 404 或 5xx。User-agent 分组,看目标路径是否被 Disallow 命中。注意 Disallow: / 会拦全站,Disallow: 留空则表示不拦截。这里要提醒一点:robots.txt 的抓取限制不等于可靠的索引移除。一个网址即使被 Disallow,只要外部链接指向它,仍可能以“无描述”的形式出现在结果里。真正要从索引移除,需要页面返回 noindex 或使用相应的移除工具,而不是只改 robots.txt。
抓取成功只说明爬虫拿到了页面内容,是否建立索引还要经过内容质量、重复度、规范网址选择等判断。常见现象和对应用户可核查的判断依据如下:
<meta name="robots" content="noindex"> 或响应头 X-Robots-Tag,这类页面即使被抓也不会进索引。多人协作时,建议把“抓取状态”和“索引状态”分成两栏记录,避免把“爬虫没来”误判成“内容质量差”,从而做出错误修改。
确认问题层级后再动手,能减少返工:
抓取层问题:修改 robots.txt 中误伤的 Disallow 规则,保存后确认文件可公开访问。如果之前用 Disallow 屏蔽了本应收录的栏目,改完后需要等待爬虫重新访问,时间不确定,不能承诺固定见效周期。
索引层问题:检查页面是否有 noindex、canonical 是否指向自身、内容是否与站内其他页面重复。若确认要收录,移除 noindex 并让页面可被抓取。
历史遗留规则:如果 robots.txt 里还留着多年前的屏蔽条目,不要假设它今天仍然生效或已经失效。正确做法是逐条核对当前文件内容,而不是凭记忆判断入口位置或界面变化。
修改后按以下检查项复查,每项都对应一个明确结果:
Disallow 命中。noindex,canonical 指向自身。如果日志显示抓取已恢复、页面也没有 noindex,但索引仍未出现,此时问题更可能在索引判断环节,而不是 robots.txt。下一步应聚焦内容质量、内部链接和网址规范,而不是继续改抓取规则。
建议你现在就打开站点的 robots.txt 和目标网址的访问日志,把“是否被抓”和“是否被索引”分别标注一次;两项都确认后,再决定改哪一层。