动态页面确认可见内容,不能只看浏览器里是否显示了文字,而要看未执行脚本时返回的 HTML 中是否包含核心内容,以及搜索引擎抓取时能否获得同样的内容。很多团队误以为页面在浏览器中可见,收录提交后搜索引擎就一定能看到,实际上动态渲染的内容可能根本没有进入可抓取的 HTML。
动态页面通常依赖 JavaScript 在客户端渲染内容。浏览器打开页面时,脚本执行、数据请求完成,用户能看到完整信息。但搜索引擎抓取工具首次获取的往往是服务器返回的原始 HTML。如果原始 HTML 里只有空容器和脚本引用,核心文字、链接、价格、文章正文都不在其中,那么即使页面在浏览器中显示正常,抓取阶段也可能视为无实质内容。
这里的“可见”要分三层判断:用户浏览器中的可见、原始 HTML 中的可见、搜索引擎渲染后的可见。三层不一致时,收录提交和后续索引都会受影响。尤其多人协作时,前端、后端、SEO 各自看到的状态不同,最容易出现交付偏差。
浏览器开发者工具里的“审查元素”显示的是脚本执行后的 DOM,不能代表服务器返回的原始内容。正确做法是查看网页源代码,或使用命令行工具获取原始响应。
curl -s 页面地址 获取原始 HTML,再搜索同样的关键词。判断结果:原始 HTML 已包含核心内容,说明可抓取基础较好;原始 HTML 为空、内容只在渲染后出现,则需要进一步确认目标搜索引擎是否执行脚本以及执行后的结果。
不同搜索引擎对 JavaScript 的处理能力不同,不能用一个引擎的表现推断另一个。可以执行以下检查:
适用条件:只有当你确认目标搜索引擎支持并实际执行了脚本渲染,渲染后的内容才可能被用于索引。若抓取测试显示原始 HTML 为空且未渲染,应优先改造为服务端渲染或预渲染,而不是反复提交网址。
多人协作交付时,建议把以下检查项写成可勾选的清单,减少返工:
<a href> 形式出现在原始 HTML 中。检查结果判断:如果原始 HTML 缺少核心内容,先修复渲染方式;如果原始 HTML 正常但抓取测试仍异常,再检查 robots.txt、状态码、规范链接和提交方式。
动态页面确认可见内容后,再决定是否提交收录。服务端渲染适合内容更新频繁、需要快速被抓取的页面;预渲染适合变化不频繁的页面;客户端渲染则要接受部分搜索引擎可能无法完整获取内容的风险。不要用 robots.txt 屏蔽页面来试图“移除索引”,抓取限制不等于可靠的索引移除。提交站点地图或单个网址只是通知渠道,不保证收录。
下一步:选一个代表性动态页面,用查看源代码和抓取测试各跑一遍,把原始 HTML 与渲染后内容差异记录下来,再决定改造渲染方式还是调整提交范围。