以前讲过,单页网站实现SEO的各种办法,目前最优解是nuxtjs,但是这种办法不利于现有项目,现有项目想快速实现百度抓取SEO,最快的就是使用中间件在服务器预渲染。
最近在解决一个老项目实现爬虫SEO过程中,使用了nodejs Prerender 中间件,效果还可以,适用于小型项目,杜绝了代码修改,配置一下服务即可
server {
listen 80;
server_name your_domain.com;
root /your/current/directory;
# 强制所有图片/CSS/JS从当前目录加载
location ~* \.(jpg|png|css|js)$ {
root /your/current/directory;
expires 7d;
access_log off;
}
location / {
# 识别爬虫UA并转发代理
if ($http_user_agent ~* (googlebot|bingbot|baiduspider|twitterbot)) {
proxy_pass http://proxy-service:port;
break;
}
# 正常用户访问本地资源
try_files $uri $uri/ /index.html;
}
}
nodejs Prerender 可以自己在服务器安装一个,安装好后把 http://proxy-service:port 地址换成 本地的 http://127.0.0.1:3000 就可以了
如果嫌麻烦,也可以用我的,不保证服务的稳定性,所以大家还是自己在服务器本地搞个。
http://spa.bbdaxia.com
调用方法就是上面的配置,把地址换成我的服务,不保证稳定性 ,可以用来看一下效果
效果示例:
https://www.bbdaxia.com/shenpiDemo/#/ 这是个单页面应用

下面使用我的服务直接访问 http://spa.bbdaxia.com/https://www.bbdaxia.com/shenpiDemo/#/

你看可以正常拿到前端运行后的内容,也就是说爬虫来抓也可以了。