DiscuzQ与之前的Discuz都不同,前端采用Vue开发,通过api异步获取内容,搜索引擎抓取到的页面只是一个div元素和一堆js代码,并不能解析成我们在浏览器上看到的内容。
虽说DiscuzQ官方正在完善vue+nuxt的服务端渲染方案,但是它也存在严重的短板——不能随便更换模板,开发的模板要专门做服务端适配,而且使用起来门槛较高,需要掌握一定的IT技术。
另一种SEO方案在我看来是比较好的,即旁路渲染方案。
简单来说,就是写一个解析vue前端为静态html的服务,然后把搜索引擎的爬虫重定向到这个服务,这就是旁路渲染。
nginx配置:
location ~* \.(jpe?g|png|gif|ico|svg|webp|mp4|mp3|js|css|txt|)$ {try_files $uri $uri/;}location ^~ /api {try_files $uri /index.php$is_args$query_string;}location / {error_page 418 =200 @proxy;if ($http_user_agent ~* (bot|[Ss]pider)) {return 417;} try_files $uri /pc.html;}location @proxy {proxy_pass http://localhost:8081;proxy_