爬虫抓取异常?谷歌不抓取页面常见原因排查

先分清:没抓取、没索引、没排名是三件事

排查前必须先分清阶段,否则会白忙:

阶段含义判断位置
抓取 CrawlGooglebot 有没有来取过这个页面的 HTML网址检查 →「抓取」信息
索引 Index抓到了,但有没有放进索引库网址检查 →「索引覆盖范围」
排名 Rank已收录,但有没有词能搜到效果报告 → 查询词

三者的原因完全不同。抓都不抓,谈排名没有意义。

谷歌不抓取页面的常见原因

原因表现怎么确认
robots.txt 屏蔽网址检查显示「已被 robots.txt 禁止」GSC robots.txt 报告 / 直接访问域名 /robots.txt
服务器错误5xx 或超时,爬虫多次失败后降低抓取频率网址检查的「抓取」里看 HTTP 响应码
页面是孤岛没有任何站内链接指向它,爬虫找不到入口Screaming Frog 等爬虫看入链数
只靠 JS 渲染初始 HTML 是空壳,内容要执行 JS 才出现网址检查 →「测试实际网页」看渲染后的 HTML
抓取预算不足站点极大、速度慢、大量低质 URL 占预算GSC 抓取统计报告,看每天的抓取量
URL 参数泛滥筛选、排序、会话 ID 生成近乎无限的 URL看索引报告里带 ? 参数的 URL 数量
需要登录或有权限爬虫拿不到内容退出登录访问该 URL

标准排查顺序

  1. 用网址检查工具:输入 URL,看「抓取」有没有成功、HTTP 响应码是多少、Googlebot 用的是手机还是桌面;
  2. 看是否被指令挡住:页面源码查 <meta name="robots"> 是否含 noindex,HTTP 响应头查 X-Robots-Tag
  3. 看 canonical:如果该页的 canonical 指向了别的 URL,谷歌会把信号合并到目标页,本页就可能被跳过;
  4. 查 robots.txt:确认没有把该目录或参数挡掉;
  5. 查内链:确认至少有 1 条可抓取的 HTML 内链指向它;
  6. 看渲染:如果是 JS 站点,用「测试实际网页」确认渲染后内容完整,并确认没屏蔽 CSS/JS;
  7. 查服务器日志:看 Googlebot 到底有没有来过、返回了什么码。

让谷歌重新抓取的正确方式

  • 在网址检查里点「请求编入索引」,谷歌会把它排进优先抓取队列(不是立即收录);
  • 更根本的办法是补内链提交更新后的 sitemap,让爬虫自然发现;
  • 不要反复对同一 URL 刷请求,这条通道有配额,滥用没用。

常见错误

  • 把「没收录」当成「被惩罚」,其实九成是技术原因;
  • 只提交 sitemap 却不解决孤岛问题,sitemap 只是辅助发现,不保证收录;
  • robots.txt 屏蔽了 CSS/JS,导致渲染出来的是空白页;
  • 页面 200 但正文为空(软 404),抓了也不会收。

来源:https://developers.google.com/search/docs/crawling-indexing/ask-googlebot-to-crawl

来源:https://developers.google.com/search/docs/crawling-indexing/block-indexing

您可能还会对下面的文章感兴趣: