用 Googlebot 抓一次:JS 渲染的内容它到底看不看得到
“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 看渲染结果。两边都查,才能分清是“没输出”还是“没渲染”。