排查 JavaScript 页面时,先确认 URL 与资源可抓取,再比较服务器返回的初始 HTML 和浏览器渲染后的 DOM,核对正文、链接、canonical 与状态码是否一致。不要把浏览器可见直接当成搜索系统一定可见。
先把问题拆成抓取、渲染和索引三层
搜索系统通常先抓取 URL,再处理页面资源与渲染结果,最后决定是否索引。三层需要分别留证:HTTP 响应与 robots 说明能否抓取,初始 HTML 与渲染后 DOM 说明内容如何交付,索引状态则需结合搜索平台反馈观察。
如果服务器直接返回 4xx、5xx,或关键脚本被 robots 阻止,继续调整正文关键词并不能解决前置阻塞。
- 记录最终状态码、重定向链和响应时间
- 检查 HTML、JS、CSS 是否允许抓取
- 区分页面发现、成功抓取、完成渲染和进入索引
比较初始 HTML 与渲染后 DOM
分别保存查看源代码得到的初始 HTML,以及开发者工具 Elements 中的渲染后 DOM。标题、主标题、直接答案、正文主信息和可跟随链接最好在初始 HTML 中已经存在。
若初始 HTML 只有空容器,需确认渲染服务是否稳定、脚本是否报错,以及加载内容是否必须依赖点击、滚动或登录。Google 官方建议服务器端渲染或预渲染仍是稳妥做法;这不能直接替代百度侧验证,但可作为跨引擎的技术基线。
核对链接、canonical 与状态信号
页面中的重要站内链接应使用带 href 的可抓取链接。再比较初始 HTML 和渲染后 DOM 中的 canonical:两处都应指向同一个可访问规范 URL,Sitemap 与站内链接也应保持一致。
不要先输出 noindex、再依赖 JavaScript 删除。抓取端若先看到 noindex,可能不会继续等待脚本改变它。软 404、错误 canonical 和重定向循环也应单独记录。
建立可重复的诊断记录
每次复测记录 URL、时间、User-Agent、初始 HTML 摘要、渲染截图、控制台错误和最终判定。修复后用相同步骤再次比较,不把一次成功截图当作长期稳定性证明。
若要检查站内其他技术基线,可继续使用《面向中国搜索引擎的服务端渲染 SEO 基线》和 canonical 实施方法。
常见问题
浏览器能正常显示,是否代表搜索引擎一定能渲染?
不代表。浏览器会话、资源权限、执行时间和交互条件都可能不同,仍需检查初始 HTML、资源抓取和搜索平台反馈。
所有 JavaScript 页面都必须改成纯静态页面吗?
不必。重点是核心内容和链接能够稳定交付;可以使用服务端渲染、静态生成或经过验证的动态渲染架构。
参考资料
- Google Search Central:JavaScript SEO 基础原始来源 · 正文事实与技术边界
- Google Search Central:搜索友好网站开发指南原始来源 · 正文事实与技术边界