检查移动端与桌面端抓取差异,核心是先把同一时间段的日志按 User-Agent 分成两组,再对比同一批 URL 在两端的抓取次数、状态码和抓取耗时。如果两端抓取量差距明显,不要直接断定移动端被降权,先确认是不是爬虫类型不同、日志字段缺失或 URL 归一化没做。
假设你负责一个内容站,服务器日志里同时有桌面和移动爬虫记录。你发现桌面端一天抓了 8000 次,移动端只有 1200 次。这个差距可能来自三种完全不同的原因:移动爬虫本来访问频率更低、移动端被 robots.txt 或防火墙拦截、或者日志里移动 UA 被错误合并到了桌面组。下面按步骤排查。
先确认日志中 UA 字段完整。用命令行筛选时,可以按已知的移动爬虫标识和桌面爬虫标识分别导出:
grep -i "mobile" access.log > mobile.log
注意,不同搜索引擎的移动爬虫 UA 写法不同,不能只靠一个“Mobile”字符串判断。更稳妥的做法是先从日志里统计出现频率最高的 UA,再逐条核对它们分别代表哪个搜索引擎的哪个爬虫。常见错误是把桌面爬虫 UA 里带“Mobile”字样的测试流量也算进移动组,导致对比失真。
拆开日志后,按 URL 分组,对比两端的状态码分布。重点看三类差异:
这里要区分“可能原因”和“已经定位的原因”。看到 403 只能说明请求被拒绝,具体是 CDN、防火墙还是应用层拦截,需要进一步查对应时间点的拦截日志。
robots.txt 的抓取限制不等于可靠的索引移除。如果 robots.txt 里对移动爬虫单独写了 Disallow,移动端抓取量会直接下降。检查方法是分别用桌面和移动 UA 请求 robots.txt,看返回内容是否一致。
站点地图不保证收录。如果站点地图只提交了桌面 URL,而移动 URL 是独立域名或独立路径,移动爬虫可能缺少发现入口。此时应确认站点地图中是否同时包含两端的规范 URL,以及是否用 rel="alternate" 或 rel="canonical" 正确关联。
移动端抓取量低于桌面端不一定是故障。判断依据是:移动端页面是否被正确索引、移动端重要 URL 是否在近期有被抓取记录、移动端抓取返回的状态码是否以 200 为主。如果移动端核心页面长期零抓取,且 robots.txt 和防火墙都没有拦截,才需要进一步查移动爬虫的入口来源。
HTTPS 不保证安全无漏洞或排名,它只影响传输层。抓取差异排查中,不要因为两端协议相同就跳过服务器配置检查。
取最近 7 天日志,按爬虫身份拆成移动组和桌面组,各选 20 个核心 URL,对比抓取次数、状态码和平均响应时间。如果移动组有 URL 从未出现,先查该 URL 是否在移动站点地图中,再用移动 UA 手动请求一次,看返回状态码和内容是否与桌面一致。