学习精选 · 谷歌搜索优化
技术与算法更新

Google 如何抓取与索引 JavaScript 页面:渲染队列、耗时数据与渲染方案选择

Encited.com2026-10-16约 4 分钟读完AI 整理查看原文

Google 先抓取服务器返回的 HTML,再排队用无头 Chromium 渲染,最后索引渲染结果;而 ChatGPT、Claude、Perplexity 背后的 AI 爬虫只读原始 HTML,不执行脚本。文章用 Vercel 与 MERJ 在 nextjs.org 上的实测数据说明渲染延迟分布,并拆解 Google 渲染器的能力边界与 CSR、SSR、SSG、预渲染的取舍。

今天就能做

  • 用 view-source 对比渲染后的 DOM,看标题、canonical、正文和 <a href> 链接是否出现在原始 HTML 里。
  • 在 Search Console 对关键 URL 做网址检查,并翻服务器日志确认 Googlebot 实际拿到的状态码和内容。
  • 把点击、滚动、WebSocket 之后才出现的关键内容改为服务端输出,否则 Google 和 AI 爬虫都看不到。

所有问题都回到第一份 HTML

  • Googlebot 请求 URL、检查 robots.txt、读取服务器返回的 HTML,这份 HTML 里的链接才会进入抓取队列。
  • 返回 200 的页面进入渲染队列,由 Web Rendering Service(WRS)用无头 Chromium 执行 JavaScript,再对渲染后的页面建索引。
  • 原始 HTML 里的状态码、noindex、canonical 会决定是否渲染以及结果如何处理,规范化在渲染前后各发生一次。
  • AI 爬虫和链接预览只拿原始 HTML,不跑脚本,所以纯客户端渲染的页面在它们眼里是空壳。

渲染要等多久:实测数据

  • Vercel 与 MERJ 在 2024 年 4 月匹配 nextjs.org 上 3.7 万多个已渲染页面,7 月 31 日公布结果。
  • 从抓取到渲染完成:中位数 10 秒,75 分位 26 秒,90 分位约 3 小时,95 分位约 6 小时,99 分位约 18 小时。
  • 带查询参数的 URL 明显更慢:75 分位 31 分钟、90 分位约 8.5 小时,而不带参数的分别是 22 秒和约 2.5 小时。
  • 这是单个被高频抓取的快站数据,大目录、慢服务器上的表现会不同,要用 Search Console 的 URL 检查和自己日志验证。

Google 渲染器不做什么

  • 不交互:不点击、不滚动、不输入,藏在这些动作后面的内容不会被看到。
  • 不保留状态:每次页面加载都清空 cookie、localStorage、sessionStorage,权限弹窗一律拒绝。
  • 只走 HTTP:通过 WebSocket 或 WebRTC 到达的内容不会出现。
  • 缓存很激进,可能忽略缓存头;非 200 状态码的页面可能直接跳过渲染。

四种渲染方式给爬虫什么

  • CSR:服务器只发近乎空的 HTML 壳和脚本包,Vite 构建的 React/Vue、无 SSR 的 Angular、多数 AI 建站工具都是这种,不跑 JS 的爬虫只能拿到壳。
  • SSR:每次请求在服务端生成 HTML,Next.js、Nuxt、Angular SSR、SvelteKit 属于此类,爬虫拿到首屏响应,但 hydration 之后才拉取的内容仍然晚到。
  • SSG 与 ISR:部署时生成 HTML 文件,ISR 在后台重建页面,内容更新不必全量重构建。
  • 流式渲染和 React Server Components 也把内容放进 HTML,前提是数据在服务端就解析完成。

动态渲染的定位与选型建议

  • 动态渲染是给爬虫返回预渲染快照、给用户返回正常站点,Google 明确称它是 workaround 而非长期方案,推荐 SSR、静态渲染或 hydration。
  • Google 表示一般不会把动态渲染判为 cloaking,但已有站点要评估维护成本。
  • 新项目优先对需要排名的页面做服务端渲染或静态生成;已有且无法重构的客户端应用才考虑预渲染。
  • 预渲染可按 URL 分组设置刷新频率(每天、每周、每月、每季度),并支持手动重新缓存。

原文:JavaScript SEO: How Google Crawls and Indexes JS (2026)

来源:Encited.com · 2026-10-16

查看原文

本文由 AI 阅读原文后整理,未经人工逐字核对,内容以原文为准。

登录后可以点赞、查看和发表评论