确认动态页面在网店收录平台中的可见内容,不能只看浏览器里显示的文字。正确做法是查看页面返回给抓取程序的HTML源码,判断目标文字是否直接出现在源码中;如果源码里没有,而是靠JavaScript执行后才出现,就要进一步确认收录平台是否会执行脚本。两种处理方案的适用条件不同:内容必须在源码中才能稳定被抓取时,用服务端渲染或预渲染;收录平台能执行脚本且页面不复杂时,可以保留客户端渲染,但仍要逐项核查。
这是动态页面最普遍的误判。浏览器打开页面时,会先取回HTML,再执行JavaScript,把商品价格、库存、评价、规格等内容插入页面。人眼看到的是执行后的结果,而抓取程序最初拿到的可能只是一个空壳。如果收录平台不执行脚本,或者执行超时、被接口拦截,源码里没有的内容就不会进入索引。
需要区分几件事:抓取限制不等于索引移除。robots.txt 只控制抓取,已经收录的页面不会因为写了禁止抓取就自动消失。站点地图提交也不保证收录,它只是发现线索。HTTPS 只表示传输加密,不保证页面没有漏洞,也不保证排名。这些判断都要分开核查。
用可执行的操作确认,而不是凭感觉判断:
判断结果很明确:源码中有,属于服务端输出或预渲染输出,可见性风险低;源码中没有,属于客户端渲染,是否可见取决于收录平台是否执行脚本以及执行是否成功。
不同搜索引擎和收录平台对JavaScript的处理能力不同,必须分别核查,不能用一个平台的结论套用全部。可以核对的判断方法包括:
这里要区分“可能原因”和“已经定位的原因”。动态内容不出现,可能是脚本未执行,也可能是接口被拦截、渲染超时、内容被规范到其他页面。只有通过抓取测试或搜索结果确认后,才能下结论。
方案一:服务端渲染或预渲染。把关键可见内容在服务器端生成,直接写入返回的HTML。适用条件是:商品标题、价格、库存、核心规格等必须被收录;收录平台脚本执行能力不确定;页面依赖多个接口、渲染链路长。判断结果是源码中能搜到目标文字,可见性最稳定。代价是改动量较大,需要后端或构建层配合。
方案二:保留客户端渲染,补充可抓取信息。适用条件是:页面交互复杂、更新频繁,且已确认目标收录平台能够执行脚本;同时可以接受部分动态内容不被收录。做法是保证核心信息有静态兜底,例如在初始HTML中保留商品名称和主要参数,把评价、推荐等次要模块留给脚本。判断结果是核心内容在源码中可见,次要内容依赖渲染。
选择依据不是哪种技术更先进,而是:哪些文字必须被收录、目标收录平台的实际渲染能力、以及改动成本。如果核心信息是价格和库存,优先服务端输出;如果只是附加展示模块,可以保留动态加载。
下一步:选取一个核心动态页面,按上面的步骤查看源码并做一次抓取测试,记录哪些文字在源码中、哪些只在渲染后出现,再决定是改为服务端输出还是保留客户端渲染。