外链包收录动态页面时,确认可见内容的关键不是看浏览器里“人眼能看到什么”,而是确认抓取工具在渲染后拿到的 HTML 里是否包含同样内容。做法是:先用无 JavaScript 的原始响应判断内容是否依赖脚本注入,再用渲染结果与页面源代码对比,最后检查可见正文、外链和索引信号是否一致。下面用一个假设例子说明步骤与常见错误。
假设某页面地址为 /list?city=hangzhou&page=2,浏览器打开后能看到十家商户名称、地址和官网外链。查看原始 HTML 时,这些内容都不存在,只有一个空的 <div id="app"></div> 和一段脚本。此时对搜索引擎来说,页面是否“可见”取决于它能否执行脚本并等待数据返回。
确认步骤可以这样执行:
rel 属性,分页链接是否可点击。这三个层面的结论不能互相替代。原始响应没有内容,不等于渲染后也没有;渲染后能看到内容,也不等于搜索引擎已经把它纳入索引。判断时建议分别记录:
常见错误是把“浏览器可见”直接当成“抓取可见”。如果脚本需要用户点击、滚动到底部或登录后才加载,抓取工具很可能拿不到这部分内容。另一个错误是只看首页快照,不检查带参数的动态 URL,导致分页、筛选结果页的外链全部漏掉。
外链包收录通常关注页面上的导出链接是否被识别。动态页面里,外链可能由脚本拼接生成,或者包在点击展开的模块中。核对时至少检查以下项目:
<a> 标签的 href 是否为真实可解析地址,而不是 javascript:void(0) 或空值。robots.txt 或 noindex 被排除。需要区分的是:robots.txt 的抓取限制不等于可靠的索引移除,被禁止抓取的 URL 仍可能因外部链接出现在结果中;站点地图不保证收录,它只是提交线索。HTTPS 也不保证安全无漏洞或排名提升,它只解决传输加密问题。
如果原始响应和渲染快照都包含正文与外链,说明可见内容对抓取是稳定的,可以继续观察索引信号。如果只有渲染快照包含,说明页面依赖脚本,需要确认抓取工具是否执行脚本以及等待时间是否足够。如果两者都没有,说明内容根本没有输出到页面,需要改由服务端渲染或预渲染生成静态 HTML。
下一步建议选一个代表性动态 URL,按“原始响应—渲染快照—索引信号”三层各记录一次结果,再决定是修渲染、修链接还是只提交收录。不同搜索引擎对脚本渲染的支持情况须分别核查,不要用一次浏览器测试代替全部判断。