检查移动端与桌面端的收录差异,不能只看同一个网址在两种设备上能否打开,而要看搜索引擎抓取时实际拿到的是哪个版本的 HTML、哪个版本的链接和哪个版本的 robots 规则。正确做法是分别用移动端和桌面端 User-Agent 抓取同一 URL,对比返回的 HTML、状态码、canonical、robots meta 和内部链接,再结合搜索引擎的移动优先索引逻辑判断差异是否会造成收录问题。
很多站点用响应式设计,移动端和桌面端访问同一个 URL,浏览器里看到的页面几乎一致,于是默认搜索引擎抓到的内容也一致。这个判断在多数情况下成立,但有三个前提:服务器没有按 User-Agent 返回不同 HTML、没有做移动端单独跳转、没有对移动端单独设置 robots 或 canonical。
一旦站点使用动态服务或独立移动站,移动端和桌面端可能返回完全不同的内容。搜索引擎主要用移动端 User-Agent 抓取和索引,如果移动端返回的 HTML 缺少正文、缺少结构化数据、canonical 指向错误,收录结果就会和桌面端看到的不一样。
最直接的检查方式是用移动端和桌面端 User-Agent 请求同一 URL,保存两次响应,逐项对比。可以用命令行工具执行,例如:
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15" -I https://example.com/page
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" -I https://example.com/page
把 -I 换成直接输出正文,就能对比 HTML。重点看以下检查项:
rel="canonical" 在两端是否指向同一个首选 URL。meta name="robots" 在两端是否一致,移动端是否误加 noindex。如果两端返回的 HTML 基本一致,说明差异风险较低。如果移动端返回的内容明显更少,或者 canonical 指向另一个地址,就需要按下面的条件处理。
响应式设计、同一套 HTML:两端返回相同 HTML,只是 CSS 不同。这种情况一般不需要额外处理,重点确认移动端没有通过 JavaScript 隐藏正文导致抓取不到。
动态服务,按 User-Agent 返回不同 HTML:如果移动端返回的正文比桌面端少,搜索引擎移动优先抓取时可能只看到较少内容。处理方式是让移动端返回与桌面端等价的核心内容,而不是只返回摘要或提示下载 App。
独立移动站,如 m.example.com:需要检查移动站与桌面站之间的对应关系。桌面页应通过 rel="alternate" 指向移动页,移动页应通过 rel="canonical" 指向桌面页或自身,具体以站点选定的规范为准。两端指向混乱时,收录可能落在非预期 URL 上。
移动端单独设置 robots 限制:robots.txt 的抓取限制不等于可靠的索引移除,被 robots.txt 阻止抓取的 URL 仍可能因外部链接出现在索引中。更稳妥的做法是用 noindex 控制索引,但前提是页面允许被抓取,否则爬虫看不到 noindex。
判断结果时,如果移动端和桌面端返回的 HTML、canonical、robots 规则一致,且移动端正文完整,那么收录差异通常不是由设备版本造成的。如果移动端正文缺失或 canonical 指向不同 URL,就应优先修正移动端返回内容,再重新抓取验证。
挑一个当前收录表现不理想的页面,按上面的步骤做一次移动端与桌面端抓取对比,把两份响应中的 canonical、robots meta 和正文差异列出来,先修正移动端返回内容与桌面端不一致的部分,再观察后续抓取结果。