你网站的内容,Google 可能根本“看不见”

你搜自己网站的名字,前几页全是别人家的页面?
Search Console 里索引量卡在个位数,甚至一直显示“0”?

先别急着重写文案、买外链——大概率不是内容问题,而是 Google 根本没“读到”你写的字。

为什么 Google 会“漏掉”你的 JS 页面?

Google 爬虫第一步是下载 HTML 文件。它不点鼠标、不滑动屏幕、也不会等 JS 慢慢跑完。
如果页面主体靠 React、Vue 或 Angular 动态生成,而源代码里只有 <div id="app"></div>,那爬虫看到的就是一张白纸。

它确实会尝试执行 JS,但只挑重点跑,而且有时间限制。对单页应用(SPA)来说,很多逻辑根本来不及触发。
官方文档写的是“我们尽力渲染”,可“尽力”不等于“全量执行”。

我帮一个做家居电商的朋友排查过:他所有商品页都用 Vue + API 渲染,上线三个月,Google 只收录了首页和两个类目页。
抓取诊断一开,源码里连产品标题都没有,只有几个空 div 和一堆 script 标签。
你说,搜索引擎靠什么判断这页值不值得收?

如何判断你的页面是否被正确渲染?

别猜。直接看 Search Console 的“网址检查”工具。
输进你的页面地址 → 点“查看已抓取的页面”。
如果显示内容和你在 Chrome 里看到的完全不一样,或者干脆是一片空白——那就是渲染失败了。

更简单粗暴的办法:右键 → “查看网页源代码”。
Ctrl+F 搜你的文章标题、正文第一句话、核心关键词。
如果搜不到,只看到 <script src="..."> 和空容器,那 Google 爬虫看到的,就是这个样子。

建议你现在就打开一个最想被收录的页面(比如首页或爆款教程),试一下。
结果出来,你就知道问题出在哪了。

3 个让搜索引擎看懂 JS 内容的方法

方法一:服务端渲染(SSR)

服务器收到请求时,直接把完整 HTML 生成好再发出去。用户和爬虫拿到的,都是带内容的页面。

Next.js(React)、Nuxt.js(Vue)、Remix 这些框架原生支持 SSR。
我认识的一个技术博主,把纯客户端渲染的博客改成 Next.js SSR 后,Google 收录速度从“等几个月”变成“几天内上首页”,收录量也明显提升。

代价也有:部署变复杂,服务器要扛更多压力。如果你只是小站、个人项目,或者团队没后端资源,可以先跳过这步。

方法二:预渲染(Prerendering)

不用改框架,也不用动服务器逻辑。你提前把关键页面“快照”成静态 HTML,存起来。
爬虫来访问时,自动返回这些现成的 HTML;真人用户还是走原来的 JS 流程。

工具像 prerender-spa-plugin(Webpack 生态)、@prerenderer/renderer-puppeteer 都挺成熟。
一个用 Angular 做的企业官网,首页和产品页全靠 JS 加载,加了预渲染后,一周内主页面基本全进了索引。

适合不想大改架构,又急需 SEO 起步的团队。

方法三:动态渲染(Dynamic Rendering)

检测 User-Agent,识别出是 Googlebot 就返回渲染好的 HTML;其他访问者照常走 JS。
Google 官方明确说这是可接受的方案(前提是别对不同爬虫区别对待)。

可以用开源工具 Rendertron,或者自己写个轻量中间件。
好处是几乎零侵入:不改前端、不换框架、不加新依赖。
风险在于配置要稳——万一误判 User-Agent,把真人当爬虫返回了静态页,体验就崩了。

一个被忽略的细节:懒加载会害了你

图片懒加载没问题,但别把正文、标题、关键链接也懒。

Google 爬虫不会模拟滚动,也不会等 IntersectionObserver 触发。它只解析初始 HTML + 少量 JS 执行结果。
你设了“滚动到才加载章节内容”?那爬虫很可能只看到开头两段。

见过一个编程教程站:每节内容都靠懒加载展开,结果 Google 只收录了目录页和首章前半部分。
他们把标题、摘要、前三段文字改成直接写死在 HTML 里,其他内容保留懒加载,收录率大幅增长。

怎么做?

  • 首屏内容(标题、导语、前200字、核心CTA按钮)必须出现在初始 HTML 中
  • 图片继续用懒加载,但务必带上 loading="lazy" 和静态 alt 文本
  • 别让 <h1><p><a> 这些标签靠 JS 插入

用“预连接”和“预加载”帮爬虫少走弯路

爬虫不是浏览器,它不会主动优化资源加载顺序。
你可以手动告诉它:“这个域名很重要,先建连”、“这个 JS 是核心,优先下”。

<head> 里加两行就行:

<link rel="preconnect" href="https://api.yoursite.com">
<link rel="preload" href="/js/main.abc123.js" as="script">

preconnect 减少 DNS 查询和 TLS 握手耗时;preload 让关键 JS 提前下载。
实测过几个站点:加了之后,Search Console 抓取状态里的“渲染完成率”明显上升,收录延迟缩短了不少。

今天就能执行的 1 个操作

现在,关掉这篇文章,打开你的网站任意一个核心页面(比如首页、转化最高的产品页、流量最大的文章)。
右键 → “查看网页源代码”。
用 Ctrl+F 搜你最想被搜到的关键词,比如“Python 入门教程”“智能插座参数”“杭州婚纱摄影”。

如果搜不到,说明这段文字是 JS 渲染出来的。
那就今天花 15 分钟,在这个页面的 HTML 模板里,把标题、副标题、第一段正文,直接写成静态 HTML。
不用动框架,不用配 SSR,就加几行 <h1><p>

做完刷新,再看源代码——这次搜得到吗?
搜到了,就等于给 Google 开了一扇门。门开了,后面的事,才真正开始。