动态页面的可见内容,指的是用户或搜索引擎在浏览器中实际能看到的、由脚本或接口返回后渲染出来的正文,而不是服务器返回的原始 HTML 里有没有那段文字。要确认它,最直接的办法是关闭 JavaScript 看一次,再开启 JavaScript 看一次,对比两次结果。下面用一个假设例子说明步骤和常见错误。
假设主域名下有一个动态商品页,地址形如 https://www.example.com/product?id=123,页面打开后能看到商品名称、价格和库存状态。但这些内容可能是浏览器执行 JavaScript 后,再向接口请求数据才显示出来的。确认步骤可以这样执行:
判断结果:如果禁用 JavaScript 后正文消失,且源代码里也找不到,那么这段内容对不执行脚本的抓取方式就是不可见的。如果源代码里本来就有商品名称,脚本只是做了排版,那它属于可见内容。
常见错误是只看“审查元素”。浏览器开发者工具里的元素面板显示的是渲染后的 DOM,脚本插入的内容也会出现在那里,所以看起来一切正常。但原始响应和渲染后的 DOM 是两回事。另一个错误是看到页面能打开,就认为内容一定被抓取到。页面能打开只说明服务器返回了 HTML,不代表正文已经包含在里面。
还要区分“可见”和“可索引”。内容在浏览器里可见,不等于一定被搜索引擎收录;内容在源代码里可见,也不保证一定获得排名。这里只解决一个起点问题:确认正文到底出现在哪一层。
二级域名与主域名区别在于,二级域名是主域名前面多了一段名称,例如 shop.example.com 与 www.example.com 属于不同主机名,而 example.com 是主域名。这个区别会影响内容归属的判断:同一套动态页面如果分别部署在主域名和二级域名下,它们的可见内容要各自确认,不能因为主域名下能看到,就推断二级域名下也一样。
如果动态页面放在二级域名上,确认方法不变,但检查时要固定使用该二级域名的实际地址,避免把两个主机名的返回结果混在一起。robots.txt 的抓取限制不等于可靠的索引移除,所以即使某个二级域名被 robots.txt 限制抓取,也不能据此认为它的动态内容已经不可见或已被移除。
适用条件:这套方法适合第一次接触动态页面可见性判断的场景,尤其是正文由前端框架渲染的页面。如果页面是服务端直接输出正文,三步之内就能确认,不需要继续排查脚本。
挑一个你正在处理的动态页面,按上面的清单走一遍,先确定正文出现在原始 HTML 还是脚本渲染之后。得到这个结论后,再决定是调整渲染方式,还是继续检查抓取和收录环节。