但无论如何地通过各种技术的努力,也很难将React的SPA的页面的内容全部的都能通过爬虫的方式爬取的到,尤其是那些通过AJAX等技术从服务器端动态的获取的数据.。但事实却告诉我们,无论是React还是Vue的SPA,都可以通过一些“非主流”的技术手段彻底的将其“裸”扔到百度等大搜的前三页的首屏中去。但在主流的SEO圈子中却常常被人所忽视的3个“野路子”却正是我们想要的那块“SEO的圣地”,通过对其真实的流量增长的案例和具体的操作步骤的把控,我们就能对SPA的SEO的“魔咒”做一个彻底的打破。
一、为什么React SPA总被百度“冷落”?
但尽管React的SPA的用户体验极为流畅,其最大的核心问题就是将页面的内容都通过JavaScript的动态加载了,而百度的爬虫对JS的渲染的支持始终都落后于了谷歌的爬虫。根据最新的2024年SEMrush的数据统计我们不难发现,百度的爬虫对SPA的解析的成功率都还不足40%。而最为头疼的就是SPA的几乎所有的路由都绑定在了前端的路由上,从而导致了前端的路由与后端的路由产生了极大的耦合度,使得前后端的接口设计都成为了“捉影”般的存在
爬虫难以识别不同“页面”
通过对关键的内容的加载延迟的分析,我们发现其实就是一份“低质的页面”的体现
社交分享时永远只能抓取首页元数据
通过对其后的持续的调优调整,原本百度的对该电商的SPA站的收录仅仅停留在了17页的基础上,最后却一路的翻了个底朝天的将其推到了300+页的全站收录,并取得了自然的搜索流量的翻了1.1倍的210%的翻番(数据均为Ahrefs的真实监控)。
二、第一招:用“伪SSR”欺骗爬虫(成本最低方案)
虽然真正的服务端渲染(SSR)效果最好,但如果你用不起Next.js,可以试试这套方案:
具体操作:
采用对关键的路由如/about、/product等的预先的静态的HTML的生成手段,对其所对应的服务端的请求的直接跳过,从而极大的降低了服务端的负载,提高了用户的访问体验。同时也可以通过对生成的静态的HTML的缓存的机制对其的访问做到无限的缓存,从而极大的降低了对服务端的请求量,进一步的降低了服务端的负载
基于对nginx的User-Agent的判断,对百度的爬虫请求都直接返回预先渲染好的html给其,而普通的用户则仍然是以SPA的形式呈现的
基于对react-helmet的巧妙运用,我们可以对每一路由的title和description都实现动态的修改,从而有效的保证了社交的分享都能抓取到我们正确的页面信息
工具推荐:
Prerender.io(付费自动化方案)
Rendertron(谷歌开源方案)
Puppeteer+Express自制中间层(成本最低)
三、第二招:强行给SPA“制造”多页效果
百度偏爱多页网站,我们可以人为制造这个假象:
核心步骤:
哈希路由改造:将react-router的BrowserRouter改为HashRouter,使URL变成domain.com/#/about → domain.com/about.html
配合nginx重写规则:把/about.html实际映射到SPA的/about路由
生成sitemap.xml:主动提交所有“伪页面”到百度站长平台
避坑提示:
必须保留Vary: User-Agent头,避免被判定作弊
旧URL要做301跳转,防止权重分散
四、第三招:内容加载的“障眼法”优化
即使不做SSR,也能让爬虫“看到”更多内容:
关键技巧:
首屏关键内容直出:把产品标题、价格等核心数据直接写在初始HTML的<noscript>标签内
延迟加载非关键JS:通过webpack分块,让产品描述等次要内容稍后加载
通过在HTML的头部引入了<link rel="preload">的提示爬虫对于API的数据的优先抓取将大大提高了页面的加载速度和用户的体验感
依托于对该旅游的SPA站的优化,我们就能明显地看到百度的爬虫的抓取深度从最初的2层就直接提升至了5层,长尾词的排名也随之大幅的增长了83%。
五、必备的3个SEO监控工具
根据上述的改写准则,我们可以对原文进行以下的重写:通过对百度搜索的资源平台的关注我们就能对“JS渲染”的痛点和“移动的适配”带来的挑战有一个更为清晰的认识.
基于Screaming Frog的抓取和对SPA的模拟,从而更真实的模拟了百度的爬虫的视角,对于SPA的SEO优化有着非常大的帮助
Ahrefs Site Audit:检测SPA特有的SEO问题如软404等
六、这些坑千万别踩(血泪教训)
滥用_escaped_fragment_:百度已逐渐弃用此协议
完全依赖meta noindex:会导致某些页面莫名消失
但一味的追求百度的移动优先索引的高分,却忽视了移动端的用户体验,事实上SPA的加载速度也必须控制在2秒内才可真正的为用户带来更好的体验
总结:React SPA的SEO不是无解难题,关键要理解爬虫的工作原理并针对性“投喂”。本文的3个野路子虽然不够优雅,但在预算有限时能快速见效。如果流量起来后,建议逐步迁移到Next.js等正规SSR方案。