项目利用的是JHipster, react+springboot架构。项目上线后,发现无法很好地seo.
主要原因: 单页面应用依赖JavaScript在客户端动态加载内容。搜索引擎爬虫可能无法有效地执行或理解这些JavaScript代码,从而导致无法抓取页面的全部内容。
网上搜到的解决方案 无非是SSR(服务端渲染),都属于废话,因为会涉及架构层面的修改,无法采用。
记录一下我的解决思路: 把原来的index.html的内容迁移到main.html,main.html作为整个单页面应用的基础,index.html独立出来作为应用的入口页面并且只承担seo内容。当用户需要使用功能时,再从index.html页面引导到main.html.
那么应用需要修改的内容如下:
- 新增main.html,把index.html的内容全部拷贝到main.html. index.html负责放置网站的静态介绍的内容,里面可以做seo.
- webpack.common.js修改如下:
3. routes.tsx的修改
- SpaWebFilter.java的修改