前后端分离项目的 seo 目前已经有很多成熟解决方案了,
大多数 seo 效果好的方案都采用了服务端渲染的方式,并且也是现在的一个趋势。
目前我们项目有点剑走偏锋 用了比较奇葩的方式:
使用 nginx 判断 ua
正常用户指向 vue 前端项目 走正常的客户端渲染流程;
爬虫访问 被反带到前端服务器的 flask 应用,访问的是服务端渲染的 html 。
nginx 配置大致如下
map $http_user_agent $backend_server { ~*Baidu 127.0.0.1:5000; ~*Baiduspider 127.0.0.1:5000; ~*Baiduspider-render 127.0.0.1:5000; ~*360Spider 127.0.0.1:5000; ~*bingbot 127.0.0.1:5000; ~*Googlebot 127.0.0.1:5000; ~*Sogou\ web\ spider 127.0.0.1:5000; ~*spider 127.0.0.1:5000; default ""; }
server { listen 80; server_name www.com; index.html index.htm; root /www/wwwroot/www.com;
location / {
if ($backend_server != "") {
proxy_pass http://$backend_server;
break;
}
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
现在的问题是,经过一段时间的提交,谷歌和 bing 以及搜狗等 搜索引擎都正常收录了,唯独百度一点动静没有。 看到百度平台也显示抓取量,但是就没有收录。
是我才用的这种方案本身就有问题呢? 还是百度那边有问题? 还是我的配置有问题?