要确认动态页面的可见内容,不能只看浏览器里渲染出来的画面,而要看搜索引擎抓取时实际拿到的HTML。最直接的做法是:用抓取工具或查看网页源代码的方式获取原始响应,再与浏览器渲染后的DOM做对比。如果原始HTML里没有正文,而正文是JavaScript执行后才出现的,那么这个页面在收录对比中就可能被判定为“可见内容不足”。
动态页面的内容可能存在于三个层面,混淆它们会导致误判:
搜索引擎收录对比时,关键是比较原始HTML与渲染后DOM的差异。如果原始HTML中正文为空,只有<div id="app"></div>这类挂载点,而渲染后才出现大段文字,那么就需要进一步确认搜索引擎是否会执行JavaScript以及执行到什么程度。
时间和人手有限时,最先处理的工作是:在浏览器中禁用JavaScript,重新加载目标动态页面,观察正文是否仍然存在。这一步能快速区分“内容依赖脚本”与“内容不依赖脚本”两种情况。
判断结果很明确:禁用后正文消失的页面,在收录对比中处于劣势,因为不同搜索引擎对JavaScript渲染的支持程度不同,有的会渲染,有的只抓原始HTML。此时应优先考虑服务端渲染或预渲染,而不是先去做外链和关键词布局。
禁用JavaScript只是初步判断,更可靠的验证是分别提取两种状态下的正文文本,再做对比。可以按以下检查项操作:
如果原始HTML中只有导航和页脚,正文全部来自脚本,那么该页面的可见内容在收录对比中就不稳定。需要注意,站点地图不保证收录,robots.txt的抓取限制也不等于可靠的索引移除,这些都不能替代对原始HTML内容的确认。
动态页面往往随版本发布而变化,今天能渲染的内容,下一次改版后可能变成纯客户端加载。维护阶段建议固定一个检查节奏:
适用条件是:页面内容确实依赖JavaScript才能出现,且这些内容对收录有意义。如果页面本身只是登录后的个人数据,或者内容对搜索用户没有价值,则不必强行要求原始HTML包含全部内容。判断结果以“原始HTML是否包含核心正文”为准,而不是以浏览器里是否好看为准。
下一步,选一个最重要的动态页面,禁用JavaScript后重新加载,记录正文是否消失;如果消失,就把服务端渲染或预渲染排进最先处理的工作。