跳转到正文
技术教程·

网页抓取与渲染优化教程:解决爬虫抓不到内容的问题

网页抓取渲染优化教程:讲清 JS 渲染、SSR/SSG、懒加载对爬虫的影响,给出排查步骤与修复方案,解决页面存在但抓不到内容的问题。

这篇教程做什么

页面存在、用户能打开,但搜索引擎收录时"看不到内容"——问题往往出在抓取与渲染环节。本教程讲清 JS 渲染、SSR/SSG、懒加载对爬虫的影响,并给出排查与修复思路。先理解收录的完整链路,看 搜索引擎收录是什么

爬虫怎么"看"页面

搜索引擎爬虫分两步理解页面:

  • 抓取原始 HTML:请求 URL,拿到服务器返回的 HTML 文档。
  • 渲染:对需要执行 JavaScript 的页面,再用无头浏览器渲染,得到最终 DOM。

如果内容只在 JS 执行后才出现,而爬虫的渲染能力或资源有限,就可能出现"页面返回 200,但正文为空"的情况。值得注意是,爬虫渲染队列通常有优先级,内容多的站渲染排队更久,纯客户端渲染的风险会被放大。

常见的三类问题

问题现象本质
纯客户端渲染源码里没有正文,正文靠 JS 填充内容不出现在初始 HTML
懒加载过度图片、段落滚动才加载爬虫不滚动就拿不到内容
渲染资源被屏蔽JS、CSS 被 robots.txt 屏蔽渲染依赖的资源加载失败

解决思路

1. 用 SSR / SSG 输出内容

内容站在构建时就把正文渲染进 HTML,是最彻底的方案。Next.js 的 SSG、Astro、VitePress 等框架天然适合。对用户来说加载更快,对爬虫来说直接可读。

2. 正文不要用 JS 动态注入

图片可以用 loading="lazy",但要保证 HTML 里能读到 srcalt 等基本信息。正文、标题等核心内容不要依赖前端脚本填充。

3. 不要屏蔽渲染资源

检查 robots.txt,确认没有屏蔽 CSS、JS 等资源路径。写法参考 robots.txt 配置教程

4. 用抓取诊断验证

在百度搜索资源平台的"抓取诊断"里,可以查看爬虫实际抓到的内容。如果看到的是空白或只有骨架,说明渲染有问题。必要时配合 sitemap 重新提交,流程见 网站收录提速教程

SSR 与 SSG 怎么选

  • SSG(静态生成):构建时一次性生成所有 HTML,访问时直接返回,最适合内容不常变的内容站。
  • SSR(服务端渲染):每次请求在服务器上渲染,适合个性化、实时数据场景,但对服务器性能有要求。

内容站绝大多数场景选 SSG 就够了。如果两种都想兼顾,也可以按路由混合:文章类用 SSG,需要实时的页面用 SSR。核心原则是让正文尽量出现在初始 HTML 里。

抓取状态码解读

抓取报告里的状态码能快速定位问题方向:

  • 404:页面或资源不存在,检查链接和路径是否写错。
  • 5xx:服务器或后端错误,通常需要运维介入,优先处理。
  • 302 跳转过多:重定向链过长会浪费抓取资源,尽量控制在一次跳转内。
  • 200 但页面为空:优先怀疑渲染问题,按本教程排查。

状态码异常时,先把批量问题抓出来——几百个 404 往往是模板里的路径写错了,而不是一个个单独的问题。先修复共性原因,再处理零星个例。

排查步骤清单

  • 看源码:浏览器右键查看网页源代码,搜索正文关键词。搜不到,说明内容是 JS 渲染的。
  • 检查爬虫抓取:用抓取诊断工具,看爬虫拿到的 HTML 里有没有正文。
  • 检查资源可达:确认页面的 CSS、JS 文件都能被公网直接访问。
  • 检查 HTTP 状态:页面返回 200,还是 302 跳转或 404。
  • 对比改版:确认问题是不是最近一次前端改版后才出现的。

常见误区

  • 误区一:加了 JS 渲染就"高级"。 对 SEO 来说,SSR/SSG 让内容更稳,纯客户端渲染增加抓取风险。
  • 误区二:sitemap 能解决渲染问题。 sitemap 解决的是"发现"问题,渲染问题是"抓到了但看不到内容",两者不是一回事。
  • 误区三:只有 Google 会渲染 JS。 国内主流搜索引擎同样会渲染,只是能力和资源不同,同一类问题同样存在。

不保证收录

修复抓取与渲染问题,是消除收录障碍,但不保证页面被收录或获得排名。渲染只是"让内容可被读取"的前提之一,收录还取决于内容质量和站点权重等因素。

下一步

常见问题

相关推荐

获取更多 AI 内容

订阅更新,第一时间获取新教程和工具推荐。