检查移动端与桌面端的爬虫控制差异,不能只看一份 robots.txt 是否相同,而要在相同 URL 下分别用移动端和桌面端 User-Agent 请求,再对比返回内容、HTTP 状态码和页面级指令。常见误解是:只要 robots.txt 没写 Disallow,两端就一致。实际上,差异往往来自页面里的 meta robots、X-Robots-Tag 响应头、以及服务端根据 User-Agent 返回的不同 HTML。
爬虫控制由多个层次共同决定,任何一层按设备类型分流,都会造成差异:
<meta name="robots"> 由模板动态输出,移动模板和桌面模板可能引用不同配置。X-Robots-Tag 响应头,可能只在某一端出现 noindex 或 nofollow。这些差异不一定都是错误。例如移动端页面内容较少时,站点可能有意让移动爬虫不索引某个筛选参数页。判断前要先确认这是有意配置还是模板遗漏。
要让对比有意义,必须控制变量,否则结果无法解释:
用命令行或抓取工具对同一 URL 发起两次请求,分别设置桌面和移动 User-Agent,然后逐项核对:
X-Robots-Tag、Location、Vary。meta name="robots",记录 content 值,注意大小写和空格。假设某页面桌面端返回 <meta name="robots" content="index,follow">,移动端返回 noindex,且没有重定向。这说明移动模板或服务端分流逻辑对移动端加了禁止索引指令。此时要回到模板或配置层确认是否有意为之,而不是直接在 robots.txt 里放开——robots.txt 的抓取限制不等于可靠的索引移除,反过来,放开抓取也不等于会恢复索引。
把对比结果分成三类处理:
需要提醒的是,不同搜索引擎对移动端和桌面端的抓取策略、对 meta 指令和响应头的支持情况并不完全相同,同一份配置在各家的实际行为要分别核查,不能用一家的结果推断另一家。HTTPS、站点地图和 robots.txt 都只是辅助手段,站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名提升。
下一步:挑一个对业务最重要的 URL,按上面的步骤完整跑一遍两端对比,把状态码、响应头、meta 指令和重定向链记录成表格。只有先拿到两端真实返回的差异,才能判断是模板问题、分流配置问题,还是本来就不需要修改。