先分清你的站点属于哪种形态
讨论收录之前,要先确认 PC 端和移动端是同一套 URL 还是两套地址。形态不同,搜索引擎抓到的页面、可以引用的地址都不一样。
- 响应式站点:同一套 URL、同一份 HTML,靠 CSS 适配屏幕。收录层面最简单,只需要维护一套地址。
- 动态服务:URL 相同,服务器根据 User-Agent 返回不同的 HTML。要保证两端内容等价,尤其是正文和主要导航。
- 独立移动域名:像 m.example.com 这样的独立地址,PC 和移动各有一份内容。这是最容易出问题的一类。
收录到底认哪一套
目前主流搜索引擎的抓取以移动端为主,多数情况下它会用移动端的 User-Agent 来访问页面。落到独立 m 站上,蜘蛛拿到的就是 m 站的 HTML 和 m 站的 URL。索引里最终留下哪一套,取决于你给出的规范化信号是否一致。
常见做法是:PC 页用 link 标签配合 media 属性指向 m 页,m 页用 rel=canonical 指回 PC 页。这相当于告诉搜索引擎,两个地址是同一份内容的两种呈现,主版本是 PC 页。如果反过来两套都声明自己才是规范版本,信号就散了。
还有一点容易被忽略:站内链接用哪一套地址,会影响蜘蛛的发现路径。移动端模板里的内链如果全都指向 m 站,那 m 站被发现的概率就远高于 PC 站,哪怕你在标签层面做了收敛。
独立 m 站最容易踩的四个坑
1. 两端互相声明 canonical
m 页写 rel=canonical 指向自己,PC 页也写指向自己,两边谁也不肯让。搜索引擎收到的是两个互相矛盾的主版本声明,最后收哪一套就变成了碰运气,也容易出现抓取在两个地址之间反复切换。
2. m 站被 robots.txt 或登录墙挡住
有些站点为了保证 PC 端流量,顺手把 m 站整站屏蔽,或者让移动端页面必须登录才能看正文。移动优先抓取的环境下,这等于把蜘蛛挡在门外,能拿到的只有一份空壳。静态资源目录被误屏蔽也是同类问题,页面能抓到但样式和脚本拿不到。
3. 两端内容不对等
PC 页有完整参数表和长文,m 页只留一句摘要加一个跳转按钮。两份内容差距过大时,标签层面的规范声明就失去意义,因为它们已经不是同一份东西了。要收敛的前提,是两端确实描述同一件事。
4. 切换只有跳转,没有可抓取的链接
页面上写着「切换到电脑版」,点下去靠 JavaScript 跳转,地址没有出现在 HTML 里。这种写法用户能走通,蜘蛛走不通,两套地址之间等于没有通道。
一份可以照着做的核对清单
- 用移动端 UA 抓取几个代表性 URL,确认返回的是移动版 HTML,状态码是 200。
- 检查 m 页的 canonical 是否指回 PC 页,PC 页的 alternate 是否指向 m 页,两边能否一一对应。
- 确认 m 站的 robots.txt 没有误屏蔽整站,也没有连带屏蔽 CSS、JS 所在目录。
- 对比两端的标题、正文、导航和关键链接是否一致,移动端不要只留摘要。
- 查看移动端模板里的内链,是否指向可抓取的 HTML 地址,而不是 JS 跳转。
- 在搜索结果里抽查几个页面,看展示的是哪一套 URL,与预期是否一致。
观察时别只用一个 UA
排查这类问题,最好同时用桌面 UA 和移动 UA 各抓一遍,记录状态码、最终地址、页面标题和 canonical 值,逐条对照。如果两套结果的正文长度差异明显,问题多半出在内容层而不是标签层。改完之后也不必急着下结论,收录状态的变化通常需要一段观察期,重点看下一轮抓取拿到的是哪个版本。
同一份内容只留一个主版本,是收录稳定的前提。形态选得越简单,需要维护的信号就越少。