站点运营

站点运营:移动端与桌面端内容自查,别让同一地址给出两套页面

同一地址在手机和电脑上呈现的内容不同很常见,但处理方式不同,对抓取的影响也不同。本文梳理独立移动域、响应式隐藏、按 UA 动态分流三种做法各自容易踩的坑,并给出一份可对照执行的自查清单,帮你确认蜘蛛拿到的是不是你想被看到的那一版。

站点运营

站点运营:移动端与桌面端内容自查,别让同一地址给出两套页面

为什么同一地址会出现两套页面

移动优先索引普及之后,抓取程序主要以移动端 UA 来读取和评估页面。如果你的站点在手机和电脑上返回的 HTML 差别很大,那么真正被用来判断页面价值的那一版,往往是内容更少、内链更少、甚至正文残缺的那一版。这不是危言耸听,不少“桌面端看着挺完整”的页面,在移动 UA 下确实只剩一个标题加几张图。

问题通常不在于“做了移动适配”,而在于适配方式留下的缝隙。

三种常见做法与各自的坑

独立移动域或 m 子域

把移动流量导向 m 开头的子域是最老的做法,至今仍有站点在用。方案本身可行,但依赖几个前提:

  • 桌面页与移动页要互相标注对应关系,让抓取程序知道两者是同一内容的不同版本。
  • 移动页上的 canonical 要么指向自身,要么指向桌面页,两边不能互相矛盾。
  • 桌面 UA 访问时的跳转要稳定,不要因为判断条件写得含糊,让蜘蛛在两边来回弹。

实践中常见的失误是:只给用户做了跳转,没有补对应标注,结果两套地址各自积累信号,谁也没能集中起来。

响应式布局里隐藏内容

用 CSS 把一部分内容在窄屏下藏起来,是很多响应式站点的默认操作。问题在于,被隐藏的如果正好是正文主体、面包屑或主要内链,移动 UA 拿到的就是一份骨架。搜索引擎对刻意隐藏的内容有自己的判断逻辑,大量正文级内容被藏,容易让页面被当作内容稀薄处理。

折中做法是:交互性、辅助性内容可以按屏幕收折;正文、标题、关键内链、结构化信息尽量保持可见,或者改用 DOM 中存在、只是视觉上可展开的方式呈现。

按 UA 返回不同 HTML

动态服务(同一 URL,根据请求头返回不同 HTML)技术上完全可行,但需要明确告诉缓存层:这个地址的响应会随 UA 而变。否则中间缓存很可能把移动版发给桌面用户,或者反过来。

这类方案还要注意别让两个版本的内容量差太多。移动版砍掉一半正文、去掉全部相关阅读,等于主动把可评估的信息减半。

自查清单

不需要复杂工具,拿几组 UA 分别请求同一批地址,对比返回内容即可。重点看这几项:

  1. 正文是否完整。移动 UA 下正文段落数、字数、关键小节标题是否与桌面版基本一致。
  2. 内链是否保留。导航、面包屑、正文内链、相关阅读是否在移动版里同样存在。
  3. canonical 与对应标注是否自洽。移动域与桌面域之间是否互相指向,有没有指向无关地址或空值。
  4. 跳转是否稳定。同一 UA 多次请求,跳转目标是否始终一致,有没有出现循环。
  5. 状态码是否一致。同一地址在两种 UA 下是否都返回 200,而不是一边 200 一边 302 到首页。
  6. 结构化数据是否一致。移动版是否漏掉了标题、时间、作者等字段。
  7. 缓存头是否合理。动态分流时是否带了区分 UA 的信号,避免不同版本互相串味。
  8. 移动端浮层。是否有一个遮挡大半屏、关闭按钮极小的弹窗,压住正文可见性。

发现不一致之后怎么处理

优先级从高到低:先保证正文和内链在移动版完整可见,这一项影响最大也最容易改;其次理顺 canonical 与对应标注,让两个版本表达同一个意思;最后再处理缓存、跳转稳定性这类偏工程的问题。

改完不必急着反复验证,给抓取和缓存留一点更新时间,再回到日志里看移动 UA 的抓取结果是否符合预期。

一句话原则:同一份内容,不管访问者用什么设备,都应该能读到大致相同的信息。差异可以体现在交互和排版上,不要体现在“能读到什么”上。