确认动态页面在 Google 索引中的可见内容,核心是比对三样东西:服务器返回的 HTML、Googlebot 实际渲染后的 DOM、以及搜索结果里展示的文本。三者不一致时,以渲染后的 DOM 为准判断 Google 能“看到”什么。下面按优先级给出一份可执行清单,适合时间和人手有限时先做前两项。
要查什么:服务器直接返回的 HTML 里有没有正文文本,还是只有一个空的容器加一段 JavaScript。
怎么查:用 curl 抓取页面,关闭 JS 执行,看输出内容。例如:
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/page
结果说明什么:如果返回的 HTML 中正文为空、只有 <div id="app"></div> 之类,说明内容依赖客户端渲染。Google 会尝试渲染,但渲染有延迟,且不是所有资源都能加载成功,此时可见内容存在不确定性。若 HTML 已含完整正文,这一步即可判定可见内容稳定。
要查什么:JavaScript 执行后,正文是否真的插入到 DOM 中,还是因为接口失败、权限判断、地域限制而没出现。
怎么查:用浏览器开发者工具的 Elements 面板查看最终 DOM;或在命令行用无头浏览器抓取渲染结果。对比第一步的原始 HTML,标出新增的正文节点。
结果说明什么:渲染后正文出现,说明 Google 有机会看到;渲染后仍为空,说明可见内容为零。常见原因包括:接口需要登录、接口返回 403、脚本报错中断、内容按用户代理或 IP 屏蔽。注意区分“可能原因”和“已定位原因”——只有复现出具体报错,才能断言是哪一项。
要查什么:Google 记录的抓取 HTML 和渲染截图里,正文是否存在。
怎么查:在 Search Console 的 URL 检查中输入该动态页地址,查看“已抓取的页面”和“查看测试过的页面”。重点看渲染后的 HTML 与截图。
结果说明什么:若这里显示的内容与你自己渲染的结果一致,说明 Google 看到的可见内容已确认;若显示空白或缺少关键文本,说明渲染资源被拦截或超时,需要回到前两步排查。
要查什么:承载正文的 JS、CSS 或数据接口是否被 robots.txt 屏蔽。
怎么查:打开 /robots.txt,逐条看 Disallow 规则是否覆盖了脚本目录或接口路径。
结果说明什么:如果关键 JS 被禁止抓取,Google 无法执行渲染,正文就不会出现在索引可见内容中。需要说明的是,robots.txt 的抓取限制不等于可靠的索引移除——被屏蔽的 URL 仍可能因外部链接被索引,只是内容可能不完整。
要查什么:搜索结果摘要或缓存文本,是否包含页面上用户实际能读到的正文。
怎么查:用 site: 加页面标题关键词定位该页,查看摘要文字;或查看 Google 缓存的文本版本(若可用)。
结果说明什么:摘要出现正文关键词,说明该文本已进入索引;摘要只显示导航或模板文字,说明正文未被有效提取。此时优先检查正文是否在初始 HTML 中,或是否被 CSS 隐藏、被 display:none 包裹。
下一步:挑一个流量最高或转化最重要的动态页,按第一步执行一次 curl,把返回 HTML 中正文是否为空记录下来,再决定是否需要改造渲染方式。