robots.txt 本身通常不区分移动端与桌面端:同一个域名下,爬虫一般请求同一份 /robots.txt。因此“移动端与桌面端的差异”往往不在 robots.txt 文件内容,而在爬虫身份、URL 结构、页面渲染和抓取结果上。要检查差异,先分别确认两端实际请求的 robots 地址和返回内容,再对比各自被允许抓取的 URL,最后用抓取工具复查。
移动端和桌面端如果使用不同子域名,例如 m.example.com 与 www.example.com,就可能各自有独立的 robots.txt。此时两端的抓取规则完全不同,不能拿一份文件互相套用。
/robots.txt,记录返回状态码和正文。判断结果:两端返回的规则不一致时,以各自域名实际返回的文件为准,不要假设移动端继承桌面端规则。
robots.txt 按 User-agent 分组生效。桌面爬虫和移动爬虫可能使用不同的 UA 名称,如果文件里只写了通用分组或只针对某一类爬虫,两端的实际允许范围就会不同。
例如,假设文件写有 User-agent: * 允许抓取,同时又有一个针对移动爬虫的分组禁止了 /m/ 路径,那么移动端页面就可能被挡在抓取之外。这只是假设示例,用来说明分组优先级,实际情况以你文件中的分组为准。
移动端常用独立 URL,如 /m/ 前缀或 m. 子域。robots 规则如果按路径匹配,桌面端允许的路径不一定覆盖移动端路径。
判断结果:桌面端能抓取、移动端路径被禁止,属于规则覆盖差异;两端路径都能抓取,则差异更可能出在渲染或内容层面。
robots.txt 的 Disallow 只表示“不要抓取”,不等于“从索引中移除”。如果移动端页面已被收录,再用 robots 禁止抓取,搜索引擎可能仍保留该 URL 的索引信息,只是无法读取新内容。要移除索引,应使用页面级 noindex,并确保该页面允许被抓取,否则 noindex 无法被读到。
这一点在移动端尤其容易误判:看到移动端页面在结果里出现,就以为 robots 没生效,实际上可能是抓取被禁但索引仍保留。
完成规则调整后,需要实际验证,而不是只看文件。
复查时把“可能原因”和“已定位原因”分开记录:拦截可能来自 robots 规则、服务器配置或中间层,只有逐项排除后才能下结论。
下一步:选一个移动端代表页面,按上面的顺序走一遍——确认 robots 地址、核对 UA 分组、匹配路径、区分抓取与索引,再用抓取工具复测,把两端差异落到具体规则或具体环节上。