robots.txt写法移动端与桌面端怎样检查差异

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

robots.txt写法移动端与桌面端怎样检查差异

检查移动端与桌面端的robots.txt差异,核心结论是:不要假设两端看到的是同一份文件。最可靠的做法是分别用移动端User-Agent和桌面端User-Agent请求同一个robots.txt地址,对比返回内容是否一致,再判断差异是有意配置还是意外泄漏。如果两端返回的规则不同,优先确认哪一端才是你真正想限制的对象,因为抓取限制对移动端和桌面端可能分别生效。

先确认两端请求的是不是同一个文件

robots.txt按协议应放在域名根目录,例如https://example.com/robots.txt。移动端和桌面端通常访问同一域名,因此理论上应返回同一份文件。但以下情况会造成差异:

判断方法:分别记录两端请求的完整URL。如果URL不同,差异就来自文件本身;如果URL相同但内容不同,问题出在服务端按User-Agent做了区分。

用User-Agent分别请求并对比内容

这是最直接的可执行步骤。以常见的移动端和桌面端User-Agent为例:

  1. 准备两个User-Agent字符串。桌面端可用Mozilla/5.0 (Windows NT 10.0; Win64; x64),移动端可用Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)。这些只是示例,实际应使用你关注的搜索引擎官方文档中列出的爬虫标识。
  2. 用命令行工具分别请求,例如curl -A "移动端UA" https://example.com/robots.txt和curl -A "桌面端UA" https://example.com/robots.txt。
  3. 把两次输出保存到不同文件,用diff比较,或直接肉眼核对User-agent、Disallow、Allow、Sitemap各行。

验收信号:两端输出完全一致,说明没有按User-Agent区分。如果出现差异,记录差异具体在哪一行、哪个指令,这是后续判断的依据。

区分“有意差异”和“意外差异”

差异不一定是错误。有些站点会为移动端爬虫单独写规则,例如:

User-agent: Googlebot-Mobile Disallow: /preview/

这种写法本身是合法的,但需要确认它是否符合你的意图。判断标准:

注意:robots.txt的抓取限制不等于索引移除。即使移动端被Disallow,页面仍可能出现在搜索结果中,只是爬虫不再抓取内容。这一点在两端差异排查时容易混淆。

时间和人手有限时的处理顺序

如果只能先做一件事,按以下顺序检查:

  1. 确认移动端和桌面端请求的robots.txt URL是否相同。不同则分别检查两个文件。
  2. 用两个User-Agent请求同一URL,对比输出。这是最快能发现意外差异的方法。
  3. 如果发现差异,先判断差异是否影响核心目录的抓取权限。影响核心目录的差异优先处理。
  4. 检查Sitemap行是否在两端都正确指向站点地图。站点地图不保证收录,但缺失或错误会增加发现成本。

验收信号:两端robots.txt在核心指令上一致,或差异有明确记录和理由。如果差异无法解释,先恢复为一致版本,再排查发布流程。

下一步

打开你常用的命令行工具,用桌面端和移动端两个User-Agent分别请求一次robots.txt,把结果保存下来做一次对比。如果发现差异,先记录差异行,再决定是修改配置还是保留差异。

图1 图2

nginx