百度移动搜索对移动友好的站点有流量倾斜,这一点没争议。但移动友好不是加个viewport就完事,核心是你有没有让百度明确知道:这个URL对应的是PC页还是移动页,以及它们之间的对应关系是什么。
百度认可的移动适配方案有三种:跳转适配(PC和移动用不同域名,如www和m)、代码适配(同一URL根据UA返回不同版本)、自适应(同一URL同一套响应式代码)。三种方案各有利弊,切换成本从高到低依次是跳转适配、代码适配、自适应。
如果是跳转适配,必须在百度搜索资源平台提交对应关系,规则适配比URL对更高效。代码适配站点要加Vary: Accept-Encoding, User-Agent响应头和meta applicable-device标签。自适应站点相对简单,只要在head里声明applicable-device为pc,mobile即可。
一个典型的Nginx跳转适配配置如下:根据UA判断移动端访问,301跳转到m站,同时避免误拦蜘蛛。
# nginx.conf http 段
map $http_user_agent $is_mobile {
default 0;
~*(android|iphone|ipad|mobile) 1;
~*Baiduspider 0;
}
server {
listen 80;
server_name www.example.com;
if ($is_mobile = 1) {
return 301 $scheme://m.example.com$request_uri;
}
# PC站正常内容配置...
}
提交对应关系后,校验大约需要10天,生效1到2天。校验失败常见原因有三个:PC页和移动页主体内容不一致、移动页是死链、正则规则写错。建议先拿一小批URL测试通过,再批量提交。
三种方案怎么选?新站优先响应式,维护成本最低;已有独立m站的老站,继续做跳转适配并提交对应关系;用户设备和内容差异很大的站点,代码适配最灵活,但技术门槛也最高。
代码适配站点一定要加Vary头。Nginx里可以这样写:more_set_headers "Vary: Accept-Encoding, User-Agent";。这个头告诉缓存层和用户代理,内容会随UA变化,避免PC用户拿到移动版缓存。
适配上线后别只盯着平台后台的校验状态。拿真手机开百度APP搜一遍核心关键词,再模拟Baiduspider的UA各访问一次核心页,确认跳转是否到位、两端内容是否一致、有没有误把蜘蛛也跳去m站。三步都过了,这次适配才算真正闭环。
A5创业网 版权所有