网站收录

内容靠 JS 渲染:收录慢或收录不到时的排查顺序

正文、列表、链接全交给前端渲染,浏览器里正常,爬虫拿到的却是空壳。本文按“先看爬虫实际拿到什么,再处理内容可见性与链接可发现性”的顺序,梳理三种常见情况、处理步骤、容易忽略的细节,以及如何验证改动是否生效。

网站收录

内容靠 JS 渲染:收录慢或收录不到时的排查顺序

很多站点把正文、列表甚至链接都交给前端 JS 渲染,浏览器里看着正常,爬虫拿到的却是一份空壳。结果就是:页面能打开,日志里也有抓取记录,但迟迟不进索引。

第一步:先看爬虫拿到的是什么

排查的起点不是改代码,而是确认爬虫实际看到的 HTML。用查看源码、命令行请求或搜索引擎提供的网址检查工具,看原始响应里有没有正文和链接,不要只看浏览器渲染后的结果。

  • 原始 HTML 里有正文和链接:问题更可能出在内容质量或索引取舍上。
  • 原始 HTML 里只有挂载点和提示文案:收录慢大概率就是渲染问题。

三种常见情况

1. 内容完全由接口拉取

HTML 只剩一个空容器,正文靠页面加载后再请求接口填充。搜索引擎执行 JS 需要额外队列和延迟,也会消耗抓取资源,新页面的等待时间往往比静态输出的页面长得多。

2. 内容存在,但要交互才出现

标签页切换、折叠面板、点击“查看更多”才加载的段落,在初始渲染里通常并不存在。用户看得见,爬虫看不见,收录自然无从谈起。

3. 内容可见,链接不可发现

列表用 div 加点击事件实现,没有 a 标签和 href。爬虫即使渲染了页面,也缺少可跟随的 URL,新地址只能依赖 sitemap 被发现,收录速度会被拉长。

按这个顺序处理

  1. 关键内容服务端输出:正文、标题、面包屑、主要链接放在首屏 HTML 里,前端再接管交互。
  2. 链接用真实的 a 标签:href 指向可抓取的地址,不要只用 JS 跳转。
  3. 分页与列表给稳定地址:无限滚动配合分页 URL,让翻页内容有入口。
  4. sitemap 兜底:重要 URL 放进 sitemap,但不要用它替代站内链接。
  5. 提交后看日志:观察抓取频次和状态码变化,再决定是否继续调整。

几个容易忽略的细节

  • 懒加载的图片和文本若在 DOM 中完全缺失,等于没发布。
  • 正文分散在 iframe 或多个组件里拼接,可能被拆散甚至丢失。
  • 接口或 CDN 超时导致渲染失败时,返回的可能仍是一个 200 的空壳页。
  • 移动端与桌面端渲染结果差异过大,会让抓取到的版本不一致。
蜘蛛池、抓取工具之类的手段提高的是被访问的机会,解决不了“爬虫看不到内容”这件事。内容可见性和链接可发现性没做好,抓取再多也不会自动变成索引。

怎么确认改动是否生效

对比修改前后同一 URL 的原始响应,确认正文和链接已出现在 HTML 中;再结合服务端日志,看这类地址的抓取是否稳定、有没有 4xx 或 5xx。索引变化通常滞后,不必每天盯着查。若内容本身可替代、与站内已有页面高度重复,即便渲染问题解决了,也不一定被收录,这时要把精力放回内容规划和 URL 收敛上。