移动优先索引已经是常态,搜索引擎主要用移动端 UA 抓取页面。但很多站点的移动端模板是“精简版”:导航折叠、侧栏去掉、相关推荐减少、分页换成“加载更多”。如果差异只在样式层,DOM 里仍有链接,影响有限;一旦模板层直接不输出这些链接,移动端能发现的入口就会比桌面端少一截。
两端入口为什么会分叉
常见的情况是,桌面端模板和移动端模板由不同的人在不同时间维护。桌面端改版时加上的栏目入口、相关推荐、面包屑,移动端模板往往没有同步。另一种情况是为了移动端首屏速度,干脆把列表页底部的详情入口、翻页链接删掉,改成滚动触发异步加载。这类改动的初衷可以理解,但抓取端看到的 DOM 里没有链接,就等于这条路径不存在。
常见的差异点
- 汉堡菜单由 JS 点击后才写入链接,未展开时 DOM 中没有 a href。
- 移动端模板省略侧栏、面包屑或相关推荐模块。
- 分页被“加载更多”按钮替代,按钮触发请求而不是指向下一页地址。
- 轮播、Tab 只渲染第一屏内容,其余靠点击后异步加载。
- 同一个栏目在两端指向不同 URL,例如带 m. 子域或多出移动端参数。
- 移动端隐藏模块使用动态移除节点而非 CSS 隐藏,链接彻底不在 DOM 中。
核对顺序
- 取同一个 URL,分别用桌面 UA 和移动 UA 请求,保存未执行 JS 的原始 HTML。
- 对比两端 HTML 中的 a href 集合,列出只在桌面端出现的链接。
- 对差异明显的页面,再取一次执行 JS 后的渲染 DOM,确认链接是“模板没输出”还是“渲染没完成”。
- 按 UA 分组查看服务端抓取日志,观察移动 UA 的抓取路径是否集中在少数栏目,入口覆盖是否明显收窄。
- 用 Sitemap 与内链两个入口交叉核对,确认缺失的 URL 是否还能从其他路径进入。
- 抽查这些 URL 的返回状态与正文内容,排除“进得来但页面是空壳”的情况。
可以做出的调整
- 关键入口在两端的模板中保持一致,不要依赖 JS 展开后才写入链接。
- 移动端导航可以折叠展示,但 HTML 里保留完整的链接列表,让抓取端能直接读到。
- 分页优先使用真实链接;“加载更多”也保留对应页码的可访问地址。
- 列表页首屏之外的内容,考虑在服务端先输出一批可抓取链接。
- 用 Sitemap 补上移动端缺失的入口,作为补充通道,而不是替代内链结构。
- 移动端如果引入大量阻塞脚本,也会拖延抓取端拿到完整 DOM 的时间,需要一并检查。
观察与验证
调整之后,建议按周对比两端 HTML 中的链接数量、移动 UA 抓取命中的栏目数,以及 Sitemap 中被实际抓取的比例。几项指标一起看,比单看某一项更能判断入口是否补齐。服务器稳定性同样值得留意:如果移动端页面响应偏慢,抓取端可能提前结束渲染,链路本身没问题却依然拿不到链接。
两端的入口差异通常不是一次性的错误,而是模板反复演进留下的副产品。定期做一次对比,比事后补救更省事。