robots文件设置本身不区分移动端和桌面端,同一个域名下的robots.txt对所有User-Agent生效,除非你用User-Agent分组写了不同规则。所以检查差异的关键不是找两份文件,而是确认同一份文件里的规则是否被两类爬虫分别命中,以及移动端页面是否被额外限制。最直接的做法:用不同User-Agent抓取同一URL,比较返回的robots判定结果。
打开站点根目录的robots.txt,逐行看User-agent分组。常见情况有三类:
User-agent: *:移动端和桌面端规则完全一致,差异只可能来自页面级noindex或canonical。User-agent: Googlebot和User-agent: Googlebot-Mobile等分组:需要逐条比对Disallow路径是否相同。User-agent: *加特定爬虫覆盖:注意分组匹配规则,爬虫会选最具体的那一组,而不是叠加所有组。如果文件里只有一组通配规则,就不存在robots层面的移动/桌面差异,检查重点应转向页面本身。这一点先判断清楚,能避免后续做无效比对。
准备一份待测URL清单,至少包含首页、一个栏目页、一个详情页和一个你怀疑被屏蔽的资源目录。然后按下面步骤执行:
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1)" https://example.com/robots.txt,确认拿到的是同一份文件。curl -A "Mozilla/5.0 (Linux; Android 6.0.1) ... Chrome/W.X.Y.Z Mobile Safari"。判断结果分三种:两组规则都允许,说明无差异;一组允许一组禁止,说明存在真实差异,需要确认这是有意为之还是配置错误;两组都禁止,说明该路径对两类爬虫都不开放。这里的“禁止”只代表抓取受限,不等于页面一定不会出现在索引里,因为索引移除需要额外手段。
robots.txt之外,移动端还有几个容易被忽略的限制点,需要单独核对:
m.example.com,它有自己的robots.txt,必须单独检查,不能只看主域。适用条件很明确:只有当移动端使用独立URL或独立模板时,才需要做两套robots检查。纯响应式站点做一套即可,多出来的比对没有实际意义。
假设你的目标是“确保移动端和桌面端都能被抓取到核心页面”,那么验收需要满足:
责任划分上,robots.txt的修改通常由运维或开发执行,SEO侧负责提出路径清单和验收,双方以实测结果为准,而不是以“已经改过了”为准。
先取出当前robots.txt,标出所有User-agent分组;再选三个核心URL,用桌面和移动两个User-Agent各请求一次,把结果填进同一张表。差异项确认是有意设置后归档,非预期差异直接修正并复测。