移动适配靠前端脚本读 UA 再跳 m 站,用户侧能跳过去。百度蜘蛛不执行脚本,抓到的永远是桌面版,适配检测一直提示未发现移动版。
一开始怀疑是「脚本失败时没有任何兜底」,查了一圈,方向不对。
原因不止一个,得分开看。跳转写在 JS 里,爬虫不执行。另一种情况是服务端没有按 UA 或响应式输出移动版。
另外,两版内容不同,也没有配对标签。
上来先用移动 UA 抓一次看返回什么
curl -s -A 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)' https://www.example.com/ | grep -o '<meta name="viewport"'
再往下检查有没有服务端跳转
curl -sI -A 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)' https://www.example.com/ | head -5
接着改
成
剩下的就是在
适
中间停过一次,把已经改的东西回滚干净,再重新来一遍。
别只看报错消失,验证要多做一步。改成服务端判断后,移动 UA 能拿到带 viewport 的移动版,适配校验通过,移动端收录量两周内翻了一倍。
补一句。适配判断发生在服务端响应阶段,任何放在前端的跳转对蜘蛛都等于不存在。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
