你的网站是不是被百度“视而不见”了?

你发完新文章,等了三天,百度搜索结果里还是没影儿?
点开自己网站的源代码一看——<div id="app"></div>干干净净,正文一个字没有。
别急着怀疑百度,先看看你页面里的 JS 是不是在“替你藏内容”。

百度到底能不能抓取JavaScript内容?

能,但很挑。
百度蜘蛛确实会执行 JS,但它不是 Chrome,也不装扩展,更不等你加载完所有接口。
它像一个赶时间的实习生:打开页面 → 看到 JS → 尝试跑一跑 → 卡住或超时就直接走人 → 最后只交回半成品 HTML。
那些依赖 useEffect 拉数据、靠路由懒加载、或者要滚动才触发渲染的页面,它大概率只记住了 <title> 和页脚。

为什么你的JS网站可能不被收录?

因为百度不是“边看边渲染”,而是“先抓,再排,最后试”。
它把 URL 放进渲染队列,等空闲资源来处理;
它对单个页面的 JS 执行有严格时限,复杂逻辑直接跳过;
它不会模拟用户点击、不会等轮播图切到第三张、也不会帮你点开“展开详情”。
之前有个招聘网站,职位列表全靠 JS 请求后插入 DOM,百度抓到的永远只有“正在加载中…”那行文字——连岗位名称都没看见。

如何判断百度是否抓取了你的真实内容?

别靠猜,用工具实测。
打开 百度搜索资源平台(就是你天天登录的那个站长后台),进「URL检测」→「抓取并渲染」,粘贴你的链接。
重点看两处:

  • 渲染后的 HTML 里,有没有你写的文章第一段?有没有商品标题和简介?
  • 如果全是 <div id="root"></div> 里面空空如也,或者只有一堆 data-v-xxxx 的占位符,说明百度根本没看到你想让它看的内容。
    顺手按 Ctrl+U 看一眼网页源代码——如果你自己都搜不到关键词,爬虫更不可能。

确保百度抓取的3个核心方法

别指望爬虫为你妥协。你得让页面对它“友好一点”。

方法一:服务端渲染(SSR)或静态生成(SSG)是首选
用 Next.js(React)、Nuxt(Vue)、或者 VitePress(轻量文档站)这类工具,让服务器直接吐出带内容的 HTML。用户打开快,百度一抓就有料。
一个做行业报告的团队,把 React + CSR 站点换成 Next.js 后,首页关键词自然流量明显提升,新报告上线当天就被收录。

方法二:动态渲染——给百度蜘蛛开个“快速通道”
如果你暂时没法重构,可以在 Nginx 或 Node 中间层加一层判断:识别 User-Agent 是 Baiduspider,就用 Puppeteer 实时渲染,返回完整 HTML;其他访客照常走前端路由。
这招不完美,但比干等爬虫强——至少它能看到内容。

方法三:关键信息“兜底”写进 HTML
哪怕只是首段摘要、H1 标题、产品主名称,在 index.html 或服务端模板里硬编码进去;
再配合 <noscript> 写一句“本文介绍XX技术的三个实战误区”,至少留个锚点给爬虫抓。
这不是最优解,但能救急。

这些关于JS SEO的坑,你一定要避开

有些“土办法”,真用了反而害自己。

  • 别把关键词塞进 display: none 的 div 里,或者用 color: white 盖在白背景上——百度早就不吃这套了。
  • 别以为加个 <meta name="robots" content="index, follow"> 就万事大吉,它管不了 JS 渲染时机。
  • 别迷信“Vue Router 默认 history 模式=自动 SEO”,没服务端配合,百度根本不知道 /article/123 这个地址该返回什么内容。
    之前有家知识付费站,所有课程页都靠前端路由跳转,结果百度索引的全是 / 首页,连课程分类页都找不到。

除了抓取,JS还会影响哪些SEO因素?

能被抓到,不等于能排好。
JS 文件太大,首屏加载慢,直接影响百度的“最大内容绘制”(LCP)得分;
交互逻辑太重,用户点按钮卡顿,首次输入延迟(INP)就亮红灯;
更隐蔽的是:用 onClick={() => navigate('/about')} 跳转的链接,百度蜘蛛根本不会当成有效内链去爬——它只认 <a href="/about">关于我们</a>
导航栏、面包屑、相关推荐,凡是靠 JS 插入的链接,务必补上真实 <a> 标签,哪怕只是隐藏在屏幕外。

今天下班前就能做的紧急检查清单

现在就打开你电脑里的 百度搜索资源平台(不用新注册,就是你绑过网站的那个):

  1. 点进「URL检测」→「抓取并渲染」
  2. 输入你网站最重要的三个页面(比如首页、最新文章页、产品列表页)
  3. 每个都点「开始抓取」,等结果出来后,直接搜索你页面上的任意一句正文(比如“本方案适用于中小型企业”)
  4. 如果搜不到——立刻截图发给前端同事,标题就写:“这个页面百度看不到正文,请一起看下 SSR 或静态化方案”