检查移动端与桌面端的robots.txt差异,核心结论是:不要假设两端看到的是同一份文件。最可靠的做法是分别用移动端User-Agent和桌面端User-Agent请求同一个robots.txt地址,对比返回内容是否一致,再判断差异是有意配置还是意外泄漏。如果两端返回的规则不同,优先确认哪一端才是你真正想限制的对象,因为抓取限制对移动端和桌面端可能分别生效。
robots.txt按协议应放在域名根目录,例如https://example.com/robots.txt。移动端和桌面端通常访问同一域名,因此理论上应返回同一份文件。但以下情况会造成差异:
m.example.com,它有自己的根目录和独立的robots.txt。判断方法:分别记录两端请求的完整URL。如果URL不同,差异就来自文件本身;如果URL相同但内容不同,问题出在服务端按User-Agent做了区分。
这是最直接的可执行步骤。以常见的移动端和桌面端User-Agent为例:
Mozilla/5.0 (Windows NT 10.0; Win64; x64),移动端可用Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)。这些只是示例,实际应使用你关注的搜索引擎官方文档中列出的爬虫标识。curl -A "移动端UA" https://example.com/robots.txt和curl -A "桌面端UA" https://example.com/robots.txt。diff比较,或直接肉眼核对User-agent、Disallow、Allow、Sitemap各行。验收信号:两端输出完全一致,说明没有按User-Agent区分。如果出现差异,记录差异具体在哪一行、哪个指令,这是后续判断的依据。
差异不一定是错误。有些站点会为移动端爬虫单独写规则,例如:
User-agent: Googlebot-Mobile
Disallow: /preview/
这种写法本身是合法的,但需要确认它是否符合你的意图。判断标准:
Disallow,可能是配置模板、CDN规则或发布流程导致的意外差异。注意:robots.txt的抓取限制不等于索引移除。即使移动端被Disallow,页面仍可能出现在搜索结果中,只是爬虫不再抓取内容。这一点在两端差异排查时容易混淆。
如果只能先做一件事,按以下顺序检查:
Sitemap行是否在两端都正确指向站点地图。站点地图不保证收录,但缺失或错误会增加发现成本。验收信号:两端robots.txt在核心指令上一致,或差异有明确记录和理由。如果差异无法解释,先恢复为一致版本,再排查发布流程。
打开你常用的命令行工具,用桌面端和移动端两个User-Agent分别请求一次robots.txt,把结果保存下来做一次对比。如果发现差异,先记录差异行,再决定是修改配置还是保留差异。