动态页面要确认可见内容,不能只看浏览器里有没有字。搜索引擎抓取时通常拿到的是服务器返回的HTML、渲染后的DOM以及可访问的资源,三者不一致就会出现“人能看到、收录入口看不到”的情况。可执行的做法是:先查原始HTML,再查渲染结果,最后核对抓取与索引状态。
要查什么:页面首屏内容是否直接出现在HTML源码里,而不是等脚本执行后才出现。
怎么查:用浏览器的“查看网页源代码”,或用curl -s 页面URL抓取。搜索正文中的一段独有文字,看它是否出现在源码中。
结果说明什么:若源码中没有正文,只有空的容器和脚本,说明内容依赖客户端渲染。此时搜索引擎的抓取入口可能只看到空壳,能否看到内容取决于它是否执行脚本以及执行后的结果。
要查什么:脚本执行完成后,正文、标题、链接是否真实进入DOM,并且没有被隐藏。
怎么查:在浏览器开发者工具中打开元素面板,搜索正文文字;同时检查该元素的样式,确认没有display:none、visibility:hidden或零高度裁切。
结果说明什么:DOM里有文字但被隐藏,用户和抓取入口都可能判定为不可见;DOM里没有文字,说明渲染未完成或脚本报错,需要先解决脚本执行问题。
要查什么:robots.txt、页面meta robots、脚本与接口资源是否被拦截。
noindex,它会影响索引,但不等于内容可见。结果说明什么:robots.txt限制抓取不等于可靠的索引移除,也不等于内容一定不可见;但若关键资源被禁止抓取,渲染结果就会缺失。站点地图不保证收录,它只提供发现线索。
要查什么:搜索引擎实际拿到的渲染HTML里有没有正文。
怎么查:使用各搜索引擎官方提供的抓取测试或URL检查工具,分别核查不同搜索引擎的支持情况。查看“已渲染HTML”或等价输出,搜索正文独有文字。
结果说明什么:若渲染结果中正文缺失,优先改造成服务端渲染或预渲染,让关键内容直接出现在原始HTML中;若渲染结果正常但未被索引,再排查索引状态,而不是继续改可见性。
下一步:挑一个正文完全依赖脚本加载的页面,按上述顺序跑一遍,记录“原始HTML、渲染DOM、抓取工具输出”三处是否都含同一段正文。三处都通过,才说明动态页面的可见内容对收录入口是稳定的。