robots.txt优化:移动端与桌面端怎样检查差异

📍 WDQWDWQD987AAAAA:216.73.216.174
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /08a80c9bd3f9.html
📄

robots.txt优化:移动端与桌面端怎样检查差异

robots.txt 本身通常不区分移动端与桌面端,同一个文件被两类爬虫读取。因此“检查差异”的重点不是找两份 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 匹配规则,不按屏幕尺寸匹配规则。

移动端与桌面端要分别检查的四类对象

这里要区分“可能原因”和“已经定位的原因”。看到移动端抓取异常,可能是 robots.txt 屏蔽,也可能是页面返回错误、资源加载失败或服务器对移动 UA 返回不同内容。只有逐项核对后,才能确定是不是 robots.txt 造成的。

处理差异时不要直接放开全部限制

若确认是移动端被误屏蔽,修改前先记录原规则和修改时间。把针对移动端路径或资源的 Disallow 删除或改为更精确的路径,而不是直接清空整个 robots.txt。清空会同时放开桌面端和移动端所有限制,可能暴露后台、搜索结果页或参数页面。

修改后按以下顺序复查:

  1. 重新请求 robots.txt,确认返回内容已更新。
  2. 用移动端 User-agent 请求被屏蔽的 URL,确认不再返回“被 robots.txt 屏蔽”。
  3. 用抓取测试工具分别模拟移动端和桌面端,比较抓取状态。
  4. 观察服务器日志中移动爬虫的请求是否恢复,以及请求的路径是否符合预期。

注意:robots.txt 的抓取限制不等于可靠的索引移除。即使移动端页面被屏蔽,它仍可能因外链或历史记录出现在搜索结果中。若要阻止索引,应结合页面级 noindex 等措施,并确认该页面允许被抓取,否则 noindex 可能无法被读取。

第一次接触时的最小检查清单

如果你刚开始排查,先做三件事:第一,分别用桌面和移动 User-agent 获取同一 robots.txt,保存两份响应;第二,找出规则中所有 Disallow 路径,标记哪些属于移动端专用或移动端依赖资源;第三,用官方抓取测试工具对同一 URL 做移动与桌面测试,记录差异点。完成后再决定是否修改,避免把“移动端抓取异常”直接归因于 robots.txt。

下一步:选一个移动端重点页面,按上面的清单跑一遍,把差异点写成一行结论,例如“移动爬虫被 Disallow: /m/ 屏蔽,桌面爬虫未被屏蔽”,再据此调整规则并复查。

图1 图2

nginx