确认动态页面可见内容,不能只看浏览器里显示了什么,而要看搜索引擎抓取到的HTML中是否包含这些内容。最直接的做法是查看页面源代码,而不是查看元素面板;如果正文只出现在JavaScript执行之后,而源代码里没有对应文本,那么这个页面在收录优化上就存在风险。下面用一个假设例子说明完整步骤。
假设你负责一个电商站点,某个商品详情页地址类似 /product?id=1024。在浏览器中打开,标题、价格、库存、描述都正常显示。但用查看源代码的方式打开,只能看到一段空容器和几个脚本引用,看不到商品名称和描述。此时可以判断:这些内容依赖JavaScript渲染,初始HTML中没有可见正文。
常见错误是只截取浏览器渲染后的页面截图作为交付物,或者用开发者工具的Elements面板确认内容存在。Elements面板显示的是脚本执行后的DOM,不能代表抓取阶段拿到的HTML。多人协作时,这类误判会导致开发认为已完成,SEO复核时却发现内容不可见,最后返工。
判断结果分三种:源代码中直接包含正文,属于最稳妥的情况;源代码包含部分内容、关键信息靠脚本补充,需要评估补充内容是否属于核心主题;源代码完全没有正文,则应优先改造为服务端渲染或预渲染,而不是只提交站点地图。
动态页面往往通过参数生成不同内容,例如 ?id=1024、?page=2、?sort=price。确认可见内容时,不能只测一个参数组合。应挑选有代表性的URL分别检查:主详情、分页、筛选、排序。重点看每种组合返回的初始HTML是否包含该组合对应的独特文本。
如果多个参数组合返回的正文几乎相同,只改动了少量推荐位,那么这些页面是否值得被收录就需要重新判断。此时可以用 robots.txt 限制抓取部分参数,但要清楚:robots.txt 的抓取限制不等于可靠的索引移除。已经被抓取并建立索引的URL,限制抓取后仍可能保留在索引中。要移除索引,应使用页面级的noindex,并确认该页面能被抓取到,否则抓取端看不到noindex指令。
多人协作最容易出现的分歧是“我这边能看到”。为了减少返工,交付时应固定留下三类证据:
如果页面正文确实依赖脚本渲染,应把改造点写成具体任务:由谁把哪部分数据放到服务端输出,验收标准是源代码中能搜索到哪段文字。不要写成“优化动态页面收录”这类无法验收的描述。
站点地图不保证收录。它只是提交URL的渠道,抓取端仍会判断页面是否值得抓取和索引。HTTPS也不保证安全无漏洞或排名,它只是传输层加密。把动态页面的URL放进站点地图,同时页面源代码里没有正文,并不会让正文变得可见。不同搜索引擎对JavaScript渲染的支持情况须分别核查,不能因为某一个引擎能渲染就认为全部引擎都能处理。
下一步:挑一个当前最重要的动态页面模板,按上面的三步检查做一次记录。如果源代码中缺少核心正文,先把它列为渲染改造任务,再讨论提交和收录。