网站收录

内容靠 JavaScript 渲染:搜索引擎抓到的是什么

浏览器里看起来完整的页面,抓取器第一次拿到的可能只是空壳。本文说明抓取、渲染、索引并不在同一步完成,列出容易让关键内容迟到的常见写法,并给出一套关闭 JavaScript 的自查方法和降低风险的落地建议。

网站收录

内容靠 JavaScript 渲染:搜索引擎抓到的是什么

同样一个页面,用户打开时能看到完整正文、可点的导航和相关推荐;搜索引擎第一次抓取时拿到的 HTML 里,可能只有一句“加载中”和几个空容器。这不是抓取失败,而是内容还没走到渲染那一步。渲染本身不会直接阻止收录,但它会拉长从被抓到进入索引的时间,也让内容在等待中被漏掉的机会变大。

抓取、渲染、索引不是同一步

把过程拆开看会更清楚。第一次抓取通常只请求服务器返回的原始 HTML,脚本里的数据请求、DOM 拼接都发生在这个阶段之后。渲染则是另一个队列:搜索引擎会执行页面上的 JavaScript,把最终呈现的 DOM 还原出来,再判断正文、链接和结构化数据。渲染需要额外的计算资源,站点越大、页面越多,等待时间通常越明显。

因此会出现一种情况:抓取日志里显示页面已经被访问,索引里却迟迟没有内容,或者只索引了模板部分。这不一定是页面质量差,很可能只是渲染还没跟上。

容易被忽略的几个信号

  • 原始 HTML 里的标题、正文、链接都为空,内容全靠客户端请求填充;
  • 正文懒加载,只有滚动到视口才去请求数据;
  • 内容藏在选项卡、折叠面板或“查看更多”之后,默认状态不显示;
  • 列表使用无限滚动,没有可独立访问的分页 URL;
  • 站内链接由脚本插入,HTML 中不存在带 href 的 a 标签。

关闭 JavaScript,看还剩多少内容

自查不需要复杂工具,按下面几步做一遍,基本能判断风险高低。

  1. 在浏览器设置里临时禁用 JavaScript,打开目标页面,看正文和主要链接是否还在。
  2. 不要用“检查元素”,改用右键“查看网页源代码”,确认服务器返回的原始 HTML 里有没有核心内容。
  3. 用命令行工具取一次页面,例如 curl,观察返回体是否包含标题、正文和内链,并和渲染后的结果做对比。
  4. 检查抓取或索引报告,看该 URL 的抓取、渲染、索引分别处于什么状态,而不是只看“已抓取”。
  5. 留意站点地图里的 URL,是否在关闭脚本后仍能正常打开并看到内容。

如果关闭 JavaScript 后页面几乎空白,就说明关键内容高度依赖渲染,值得优先处理。

降低风险的常见做法

目标不是完全放弃前端渲染,而是让抓取器第一次拿到的 HTML 里就有可读的内容和可爬的链接。

  • 服务端渲染或静态生成:把文章正文、商品信息等核心内容在服务端输出,交互部分再交给前端补齐。
  • 首屏内容直出:标题、摘要、主要正文和分页链接直接写进 HTML,不要让它们等接口返回。
  • 懒加载保留真实地址:图片可以使用原生懒加载,但链接应当是真实 href,而不是只绑定点击事件。
  • 分页提供稳定 URL:列表翻页尽量有独立地址,方便被逐个发现,而不是只靠滚动加载。
  • 关键导航保持可抓取:栏目入口、相关阅读等内链写在 HTML 中,减少对脚本的依赖。
渲染是给用户看的,抓取器先看到的是 HTML。不要默认两者拿到的东西一定相同。

渲染问题常常和其他收录问题叠加

当页面依赖渲染时,其他问题的后果会被放大:薄内容更容易被判定为没有保留价值,重复模板更容易占住索引,内链不足的页面更难被发现。处理顺序上,可以先把核心内容落到 HTML,再去看 URL 规范、重复内容和页面质量。

最后提醒一点:抓取成功不等于进入索引,渲染完成也不等于一定被收录。渲染只是让内容有机会被正确读取,剩下的部分仍然取决于页面本身是否值得留在索引里。