spa 搜索引擎_SPA项目开箱即用的SEO解决方案

本文介绍了SPA项目实现SEO友好的一种方法——使用Rendora代理服务器。Rendora无需修改原有代码,通过识别用户代理来区分爬虫和用户,为爬虫提供预渲染的HTML页面。详细讲解了Rendora的安装、配置和运行过程,以及如何通过配置文件实现请求和路径过滤。
摘要由CSDN通过智能技术生成

前言

本文章写于 2019-07-05 请注意时效性。

有关 SPA 项目的 SEO 友好的解决方案其实不多, 常见的解决手段如下:

将 SPA 项目改为 SSR 渲染

使用预渲染

前者非常稳定但是对于已有的 SPA 项目进行改造需要注意的问题有很多而且耗时长与重写一个没有太大区别,后者只能对于那些"无论是哪种用户访问返回的结果都一样"的页面合适不免十分被动。

总的来说都是十分的繁琐,不过依然有可以避开修改原有代码的解决方案, 例如下面的这个:

这些方案的基本原理就是,使用代理服务器区分搜索引擎的爬虫和普通用户从而实现针对性内容响应,普通用户响应原有的 SPA 项目也就是“纯粹的 index.html 页面”,而对于爬虫响应对应路由下的渲染好的HTML页面。

既然各位智慧无穷的网友开出了药方,看来我们需要手动熬制了。不过先慢着看看 github 有什么现成的药没有:

没错 github 上已经有了现成的解决方案。

Rendora 简介

Rendora 本身是一个代理服务器使用 GO 语言编写专门被设计与解决 SPA 项目的 SEO 处理,支持配置文件以及对外接口。

使用 Rendora 可以相较于其他方案有如下的优势:

无需修改原有项目

无需修改构建配置

支持任意路由页面的渲染

不受限于前端框架与所使用到的技术

搜索引擎爬虫和普通用户获取到的数据一致

它的基本原理就是请求经过 Rendora 的时候它会根据请求头 user-agent 来判断请求是属于爬虫还是普通用户, 普通用户直接代理到原有的Web服务器, 而爬虫的请求会经过无头浏览器(head-less browser) 处理生成一张页面返回给爬虫,而这个页面的内容可以理解为是运行时的 DOM 快照。

明白了基本原理后我们不难想到只要是异步加载数据然后再利用数据渲染内容的页面都适用。而且爬虫和普通用户两者最终获取到的数据可以高度一致。

安装

Rendora 官方文档中已经给出了安装方式,我就在这里直接照搬了,不过 Rendora 本身是由 GO 语言编写,而且依赖了无头浏览器还是有许多小坑要踩的。

在本文中我使用的系统是 Ubuntu18.04桌面版 ,但是其他的系统用户 windows 和 macos 都是可以安装以及使用的,安装 Rendora 方式稍有不同但是基本概念都是一致的。

基本依赖

需要安装 Go

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SPA (Single Page Application),即单页面应用程序,是一种Web应用程序的架构模式,其目的是提供流畅的用户体验和快速的页面加载速度。在开发SPA时,可以选择使用不同的工具箱来辅助开发。 1. React.js:React.js是由Facebook开发的一个用于构建用户界面的JavaScript库。它提供了一个组件化的开发模式,可以将UI拆分成独立的可重用组件,使代码更易于维护。React.js与其他库或框架的兼容性较好,使得开发人员可以自由选择其他工具进行集成。 2. Angular.js:Angular.js是由Google维护的一个前端开发框架,它提供了强大的数据绑定和依赖注入功能。使用Angular.js可以快速构建SPA,同时它还提供了许多其他功能,如路由管理、表单验证等,使开发过程更加高效。 3. Vue.js:Vue.js是一个流行的JavaScript框架,它与React.js和Angular.js相似,也支持组件化开发。Vue.js的核心库非常轻量级,可以与其他第三方库灵活集成,开发人员可以根据项目需求选择合适的工具。 4. Ember.js:Ember.js是一个用于构建大型可扩展应用程序的JavaScript框架。它提供了简单的API和强大的工具,如路由管理、模板引擎和依赖注入等,可以帮助开发者更高效地构建SPA。 综上所述,选择哪个工具箱来开发SPA取决于开发者的个人偏好、项目需求以及团队的熟悉程度。无论选择哪个工具箱,理解其原理和灵活运用都是实现良好的SPA应用的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值