Vue.js 单页应用 SEO 解决方案分析

Vue.js 单页应用 SEO 解决方案分析

在 Vue.js 开发单页应用时,我们经常会遇到一个问题:如何实现搜索引擎(例如百度、Google )的爬取,使得我们的页面可以被搜索引擎收录及排名。在这篇文章中,我将为大家介绍 Vue.js 单页应用的 SEO 解决方案,并提供一些实用的代码示例供大家参考。

传统的 SPA 对 SEO 的限制

使用传统的 SPA(单页应用)框架时,由于页面不会发生整个刷新,所以在使用一般的搜索引擎时,无法被爬取。web crawlers 通常会按照 HTML 内容来构造一个文档对象模型(DOM),而浏览器在渲染页面时,会按照 DOM 来显示页面。由于单页应用不会引起页面的刷新,也就不会重建 DOM,所以 web crawlers 无法感知页面的变化,无法获取对应的信息。

这会导致单页应用面临 SEO 不利的情况。 如果我们使用的是传统的SPA开发方案,我们的优化空间不太灵活,可能会导致搜索引擎收录不到我们的 SPA 页面,甚至存在永久失去排名的风险,这显然不是我们想看到的结果。

解决方案:服务端渲染(SSR)和使用 Prerender.io(预渲染)

从传统的 SPA 到使用服务端渲染(SSR)是一个可行的方案,我们需要在服务端渲染之前,请求数据并将其注入到 HTML 中,以便得到最少的交互次数。另一方面,使用 Prerender.io(预渲染)是一个灵活又快速的解决方案,适用于小型到单用户的 SPA 页面。

  1. 服务端渲染(SSR)

服务端渲染可以将我们的单页应用渲染为完整的 HTML 页面,当 web crawlers 收到请求后,返回的内容就是重建后的 DOM 内容,这样,搜索引擎可以获取所有页面的内容,进行收录与排名。

在 Vue.js 中使用 SSR 并不困难,我们只需使用 Vue.createSSRApp 取代常规的应用实例,使用 createRenderer 替换常规的 renderer,并在用作参数的选项中设置必要的数据源。 使用这种方法可以最大限度地减少对原有代码的干扰。

在实际开发中,服务端渲染还有一些注意点。由于服务端渲染不同于客户端渲染,需要将我们的单页应用调整为 SSR 时,需要特别注意一些点,例如:

  • 使用组件可重用性
  • 确定页面结构
  • 预先获取 API 数据
  1. 使用 Prerender.io(预渲染)

Prerender.io 会爬取您的 SPA 网站,并在服务器端使用 PhantomJS 渲染 HTML,从而可以生成完整的 HTML 页面,这些页面可以被搜索引擎爬取和收录。如果您的网站已经是一个SPA应用了,使用 Prerender.io 是一种很容易的加速 SEO 呈现的方法。

Prerender.io 的工作原理是非常简单的,它通过中间层服务器的方式进行页面的渲染,首先你需要在你的代码中加入预渲染的相关代码,然后在你的部署环境中安装 Prerender.io 的服务,并将空的搜索引擎爬取请求重定向到 Prerender.io 的预渲染服务器。经过预渲染服务器之间,全面的 SPA 就已经被成功的 prerender 了。

总结

在现代 web 应用时代, Vue.js 已经成为一种非常流行的前端框架,而 SPA 也已经成为一种比较成熟的前端开发模式。但是在单页应用中使用 Vue.js 时,我们要注意 SEO 的问题。本文介绍了两种解决方案,希望能对您有所帮助。

无论你是通过 SSR 还是 Prerender.io 达到 SEO 的优化,都需要了解其具体的实现方法,选择一个合适的方案,才能在搜索引擎的排名中获得更好的结果。同时,也需要注意一些其他的 SEO 技巧,比如 URL 结构、页面结构、页面元数据等等。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653f7e437d4982a6eb90f563


纠错
反馈