动态页面做网站收录检查时,不能只看浏览器里是否显示了内容。更可靠的做法是查看搜索引擎实际抓取到的HTML源码,确认目标文字是否出现在初始响应中,还是必须等JavaScript执行后才出现。如果文字只存在于渲染后的页面,收录判断就要更谨慎。
多人协作时经常出现这样的交付分歧:开发人员在浏览器中打开页面,看到商品价格、评论或列表内容正常显示,就认为页面没问题;SEO人员用抓取工具检查,却发现返回的HTML里没有这些文字。双方说的其实不是同一份内容。
浏览器展示的是渲染后的结果,而搜索引擎抓取到的初始HTML可能只是一个空壳。动态页面通过接口请求、前端框架渲染或懒加载把内容填进去,这些内容对用户可见,但不一定出现在最初的HTML响应里。因此,网站收录检查要区分两个层面:初始HTML中可见和渲染后可见。
第一步,禁用JavaScript查看源码。在浏览器中关闭JavaScript后刷新页面,或者直接用抓取工具获取原始响应,观察目标文字是否存在。如果关闭JavaScript后内容消失,说明它依赖前端渲染。
第二步,对比渲染前后的HTML。使用支持渲染的抓取方式获取执行JavaScript后的DOM,与初始HTML逐项对比。重点看标题、正文、价格、列表项等关键内容是否在初始响应中缺失。
第三步,确认抓取是否被限制。检查robots.txt是否允许抓取该路径,以及页面是否返回了正确的状态码。需要明确:robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录。这些只是辅助判断条件,不能替代对可见内容的检查。
可以用一个假设例子说明:某分类页初始HTML只包含框架和加载提示,商品名称由接口返回后插入。关闭JavaScript后页面空白,说明初始响应中不可见。此时需要评估是否改为服务端渲染,或至少让关键内容出现在初始HTML中。
服务端渲染的页面,初始HTML通常已包含主要内容,检查时直接看源码即可。客户端渲染的页面,初始HTML往往缺少内容,需要依赖渲染抓取。静态生成介于两者之间,构建时已生成HTML,但动态数据可能仍需额外请求。
判断结果不同,处理方式也不同:如果初始HTML已包含目标内容,收录检查相对简单;如果必须渲染后才可见,就要确认目标搜索引擎是否支持渲染抓取,并分别核查不同搜索引擎的支持情况。不能因为一个搜索引擎能渲染,就推断所有搜索引擎都能处理。
下一步,选一个动态页面,关闭JavaScript后查看源码,把目标文字是否出现记录下来。如果缺失,再与开发确认渲染方式,决定是调整实现还是补充渲染抓取检查。