robots.txt 本身通常不区分移动端与桌面端,同一个文件被两类爬虫读取。因此“检查差异”的重点不是找两份 robots.txt,而是确认移动端爬虫是否被单独限制、移动页面资源是否被误屏蔽,以及桌面端正常抓取时移动端是否出现不同结果。
在浏览器或命令行中分别以桌面和移动端常见 User-Agent 请求同一路径:https://你的域名/robots.txt。观察返回内容是否一致,并记录状态码。若返回 200,说明文件可读;若返回 404,表示没有可用的 robots.txt,爬虫一般按无限制处理;若返回 5xx,爬虫可能暂时无法获取规则,这与“允许抓取”不是一回事。
判断差异时,优先看规则组。例如:
User-agent: *
Disallow: /search
User-agent: Googlebot
Disallow: /mobile-only/
如果只对某个移动端爬虫名称设置了 Disallow,而桌面爬虫名称未被限制,就会形成实际差异。这里的关键是:robots.txt 按 User-agent 匹配规则,不按屏幕尺寸匹配规则。
/m/、/mobile/ 是否被整段屏蔽。若移动页面是独立 URL,被屏蔽后移动爬虫无法读取内容。Disallow 的目录下,移动爬虫可能无法渲染页面。桌面端正常不代表移动端也正常。这里要区分“可能原因”和“已经定位的原因”。看到移动端抓取异常,可能是 robots.txt 屏蔽,也可能是页面返回错误、资源加载失败或服务器对移动 UA 返回不同内容。只有逐项核对后,才能确定是不是 robots.txt 造成的。
若确认是移动端被误屏蔽,修改前先记录原规则和修改时间。把针对移动端路径或资源的 Disallow 删除或改为更精确的路径,而不是直接清空整个 robots.txt。清空会同时放开桌面端和移动端所有限制,可能暴露后台、搜索结果页或参数页面。
修改后按以下顺序复查:
注意:robots.txt 的抓取限制不等于可靠的索引移除。即使移动端页面被屏蔽,它仍可能因外链或历史记录出现在搜索结果中。若要阻止索引,应结合页面级 noindex 等措施,并确认该页面允许被抓取,否则 noindex 可能无法被读取。
如果你刚开始排查,先做三件事:第一,分别用桌面和移动 User-agent 获取同一 robots.txt,保存两份响应;第二,找出规则中所有 Disallow 路径,标记哪些属于移动端专用或移动端依赖资源;第三,用官方抓取测试工具对同一 URL 做移动与桌面测试,记录差异点。完成后再决定是否修改,避免把“移动端抓取异常”直接归因于 robots.txt。
下一步:选一个移动端重点页面,按上面的清单跑一遍,把差异点写成一行结论,例如“移动爬虫被 Disallow: /m/ 屏蔽,桌面爬虫未被屏蔽”,再据此调整规则并复查。