动态页面确认可见内容,不能只看浏览器“查看源代码”里有没有文字。更可靠的做法是:先看服务端返回的初始 HTML,再对比浏览器执行脚本后的 DOM,最后用抓取工具或渲染结果确认最终可见文本。域名权重查询本身查的是域名层面的信号,而动态页面的可见内容属于页面渲染与索引问题,两者要分开判断。
很多动态页面用 JavaScript 在浏览器端填充内容。服务器返回的初始 HTML 可能只有一个空容器,例如 <div id="app"></div>,文字是后来由脚本请求接口再插入的。此时直接查看源代码看不到正文,但页面在浏览器里正常显示;反过来,有些文字写在源码里,却被 CSS 隐藏、被弹窗遮挡,或者需要登录后才出现,用户和搜索引擎实际都看不到。
所以“可见内容”至少要分三层:服务器返回的 HTML、脚本执行后的 DOM、以及用户视觉上真正能读到的文本。三层不一致时,以最终渲染且未被隐藏的结果为准。
display:none、visibility:hidden 或零高度裁剪。判断标准很简单:如果渲染后的可见文本包含目标内容,且没有依赖登录或交互才出现,才算对抓取可见。若内容只在点击某个按钮后才加载,就要评估该交互是否会被渲染流程触发。
robots.txt 限制抓取。需要注意,robots.txt 的抓取限制不等于可靠的索引移除,它只约束抓取行为,不保证内容从索引消失或保留。这些检查项要逐条排除,不能因为页面能打开就认定内容可见。
如果目标内容必须靠脚本生成,优先考虑服务端渲染或预渲染,让初始 HTML 就包含正文。若暂时无法改造,至少保证接口可被抓取、渲染不依赖用户点击、关键文本在 DOM 中真实存在。对于已有项目,先选一个代表性动态页面做上述三步对比,记录初始 HTML 与渲染后 DOM 的差异,再决定是改渲染方式还是只调整加载时机。
需要提醒的是,域名权重查询反映的是域名级信号,不能用来判断某个动态页面的正文是否可见。把这两件事混在一起,容易误以为权重高就代表内容一定被正确抓取。
下一步:挑一个正文依赖脚本加载的页面,用开发者工具分别保存初始响应和渲染后 DOM,对比两者是否都包含目标文本;若初始响应缺失,就把该页面列入服务端渲染或预渲染的改造清单。