最新动态
优化SPA:使得网站对SEO更友好
2024-12-26 15:04

「传统网页开发模式」,网站内容(html)都是采用服务端渲染(SSR)的方式产出的。这样做,方便「爬虫」能够定位到网站内容。这个过程就是:爬虫发现你的网站内容,并且将其展现在大众面前。

但是,按照传统网页开发模式生成页面的过程存在一个致命问题。每当页面中「很小」的数据变更(例如:提交一个表单),服务端需要对「整个页面进行重新渲染」并通过网络将最新的页面传到客户端。

另一方面,客户端渲染(CSR)允许单页面应用(SPA)能够在页面不刷新的前提下,进行页面信息的动态获取和展示。在页面初始阶段,浏览器只需接受页面「最基本的结构信息」(html)然后其余的页面内容都是通过JS来获取或者展示。

当页面中的「部分」内容发生了变更,浏览器只需要向服务端发送用于获取该与该变更信息相关的AJAX。服务端在接收到指定的请求后,经过拼装处理,将浏览器想要的结果(通常是JSON的数据格式)返回。

虽然,SPA能够很好规避SSR渲染时数据更新需要刷新整个页面的弊端,但是由于SPA在页面初始阶段,只返回了页面的基础架构,后续页面内容都是通过JS动态获取的。这样「很不利于爬虫对网站后续内容的收录」

❝SPA对SEO不友好,是由其「后续」页面内容存在「滞后性」导致的 ❞

在2009年,Google 发布了一种用于解决SPA对SEO不友好的应变方案。

前置知识:何为

❝谷歌机器人是一种特殊的软件,通常被称为蜘蛛,被设计用来在公共网站的页面上爬行。它遵循从一个页面到下一个页面的一系列链接,然后将找到的数据处理成一个集体索引。 可以把它想象成一个拥有不断扩展的库存的图书馆 ❞

在讲方案前,我们先简单介绍一下,对网站应用的处理流程

当 Googlebot 尝试通过发出 HTTP 请求从抓取队列中抓取某个网址时,它首先会检查网页是否允许抓取。Googlebot 会读取 文件。如果此文件将该网址标记为「disallowed」,Googlebot 就会跳过向该网址发出 HTTP 请求的操作,然后会跳过该网址。

接下来,Googlebot 会解析 HTML 链接的 href 属性中其他网址的响应,并将这些网址添加到抓取队列中。若不想让 Googlebot 发现链接,使用 机制

抓取网址并解析 HTML 响应非常适用于「经典网站或服务器端呈现的网页」(在这些网站或网页中,HTTP 响应中的 HTML 包含「所有内容」

Google的Ajax爬虫方案

该方案包含很多操作步骤。

最后,爬虫能够将原始URL和某时刻的页面快照对应起来,并且将快照内容对外展示。

❝号外:在2015年,Google宣布将放弃AJAX爬虫方案。并于2018年正式停止对其支持。 ❞

现在 不需要用户提供预渲染页面,就能够处理自带额外信息(#!)的URL。

如果想让你的应用在百度、(俄罗斯搜索引擎)、或者等搜索引擎中,SEO取到高分的话,「切记:和Google处理JS一样,不要过于轻信它们的AJAX爬虫方案」

下图展示了,各个浏览器对各种JS框架的爬虫支持程度

尽管,大部分搜索引擎对JS框架或多或少支持爬虫处理。但是,由于CSR的页面内容存在滞后性。使得网站信息不能及时送达用户。

你可以使用一些JS框架(React/Vue)进行网站开发,并且将应用转换为「静态HTML」,并存入指定的服务器。

当客户端向服务端发起页面请求时,浏览器能获取一个「完整」的初始化结构,而不像CSR那样:只获取一个包含指定JS的HTML简易壳子。采用SSR渲染页面,当JS还在后台加载时,用户已经看到完整的页面信息了。

网络爬虫还可以访问页面的完整HTML版本,并在搜索结果中建立索引和显示。

在后续的操作中,应用又变成了客户端渲染,这样能够保证页面变更内容能更快到达用户。

可以通过一个图,对比CSR和SSR渲染同一页面所用的时间。很明显,SSR渲染,页面的有效内容较早出现。

其实,针对SSR还有其他的技术细节需要考虑,例如,何为同构、数据脱水、渲染注入(hydrate)等。关于SSR,我们后期会有专门的文章来解释。

下面,就直接来一个React SSR的实现步骤哇。

❝Google建议「使用渐进增强」「特性探测」用于对SPA进行SEO优化 ❞

来自SEO高手的建议:为网站建立一个 。即便爬虫已经将你的网站收录了,网站所有者仍然可以继续向爬虫报告网站中未被收录的页面。

「Sitemap.xml」是一个包含你网站中「所有」URL连接的文件。你可以把sitemap.xml想象成向导,用于指引爬虫对网站进行针对性的探索。

sitemap是需要对外公布的。所以,需要在robot.txt中进行注册。

这样,爬虫就能知道你网站的sitemap.xml的具体位置。

同时,在html文档中,需要添加元信息。这样,爬虫在访问到网站后,就会立马知道了,该网站是 SPA。

当网站中存在多个页面内容是一样的,的link标签就会派上用处。可以让爬虫知道URL的哪些部分是强制的,哪些不是。

例如,这将允许爬虫检测查询参数是否影响页面的呈现(分页参数,如?page=11,)或(跟踪参数,如source=baidu)。

如果有一个可以通过多个url访问的页面(电子商务网站经常发生这种情况),或者有多个内容重复的页面,那么让其中一个成为「规范页面」

选择认为更重要的页面(或者访问者/链接最多的页面)。每当访问非关键页面的时候,总会被引用到关键页面。

对于 cannoical的使用方式,可以参考如上链接。

    以上就是本篇文章【优化SPA:使得网站对SEO更友好】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/13507.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评