“Google 能执行 JS,所以不用管首屏”——这句话害过不少站。

能执行,和一定执行完,是两件事。

两个阶段

第一阶段,Googlebot 发请求,拿原始 HTML。

第二阶段,排队渲染,执行 JS、加载资源、调用接口,生成最终 DOM。

渲染有队列、有超时、有资源预算。页面越重、接口越慢,渲染失败的概率越高。

模拟抓取看到的是第一阶段

工具不会执行 JavaScript。它返回的正文为空,说明初始 HTML 里没有内容;返回完整,也不代表 Google 渲染后没问题。

实测 Slack 的 Web 端:Baiduspider 拿到 200、249KB,Googlebot 拿到 429、0 字节。这不是渲染差异,是 UA 维度的限流。说明同一个地址,不同蜘蛛的待遇可能完全不同。

怎么判断真实渲染

Search Console 的网址检查,能看到“已渲染的 HTML”。

对比两样:查看源代码里的正文,和渲染后的正文。如果源代码空、渲染后有,说明内容依赖 JS;如果两边都空,才是真问题。

什么必须直出

标题、主正文、核心内链、结构化数据。

这四样决定搜索引擎能不能理解页面。图片、评论、推荐位可以后加载,正文不行。

一个边界

robots.txt 屏蔽 CSS/JS,会让渲染变形。有些站为了省抓取配额把静态资源全禁了,结果 Googlebot 渲染出一个没样式的页面,内容判断也跟着出错。

用 蜘蛛模拟抓取 看原始响应,再去 GSC 看渲染结果。两边都查,才能分清是“没输出”还是“没渲染”。