SEO 在 SPA 站点中的实践 (2)

SEO 在 SPA 站点中的实践

SEO 优化附加 buff, 站点秒开?

SEO 优化至此, 来看下站点优化前后 FP、FCP、LCP 等指标数据的变化。

以 blog 站点为例, 优化前后的指标数据如下(数据指标统计来自未使用梯子访问 gh-pages):

优化前: 接入预渲染方案前, 首次绘制(FP、FCP) 的时间节点在 8s 左右, LCP 在 17s 左右。

SEO 在 SPA 站点中的实践

优化后: 接入预渲染方案后, 首次绘制时间节点在 1s 之内开始, LCP 在 1.5s 之内。

SEO 在 SPA 站点中的实践

对比优化前后: 首屏绘制速度提升了 8 倍, 最大内容绘制速度提升 11 倍。本想优化 SEO, 结果站点性能优化的方式又 get 了一个。

生成站点地图 Sitemap

在完成预渲染实现站点路由静态化后, 距离 SEO 的目标又近了一步。暂且抛开 SEO 优化细节, 单刀直入 SEO 核心腹地 站点地图。

站点地图 Sitemap 格式与各字段含义简单说明如下:

<?xml version="1.0" encoding="utf-8"?> <urlset> <!-- 必填标签, 这是具体某一个链接的定义入口,每一条数据都要用 <url> 和 </url> 包含在里面, 这是必须的 --> <url> <!-- 必填, URL 链接地址,长度不得超过 256 字节 --> <loc></loc> <!-- 可以不提交该标签, 用来指定该链接的最后更新时间 --> <lastmod>2021-03-06</lastmod> <!-- 可以不提交该标签, 用这个标签告诉此链接可能会出现的更新频率 --> <changefreq>daily</changefreq> <!-- 可以不提交该标签, 用来指定此链接相对于其他链接的优先权比值,此值定于 0.0-1.0 之间 --> <priority>0.8</priority> </url> </urlset>

上述 sitemap 中, lastmod、changefreq、priority 字段对 SEO 没那么重要, 可以见 how-to-create-a-sitemap

根据上述结构, 笔者开发了 create-react-doc 的站点地图生成包 crd-generator-sitemap, 其逻辑就是将预渲染的路由路径拼接成上述格式。

使用方只需在站点根目录的 config.yml 添加如下参数便可以在自动化发版过程中自动生成 sitemap。

seo: google: true

将生成的站点地图往 Google Search Console 中提交试试吧,

SEO 在 SPA 站点中的实践

最后验证下 Google 搜索站点优化前后效果。

优化前: 只搜索到一条数据。

SEO 在 SPA 站点中的实践

优化后: 搜索到站点地图中声明的位置数据。

SEO 在 SPA 站点中的实践

至此使用 SSG 优化 SPA 站点实现 SEO 的完整流程完整实现了一遍。后续便剩下参照 搜索引擎优化 (SEO) 新手指南 做一些 SEO 细节方面的优化以及支持更多搜索引擎了。

小结

本文从 SPA 站点实现 SEO 作为切入点, 先后介绍了 SEO 的基本原理, SEO 在 SPA 站点中的 4 种实践案例, 并结合 create-react-doc SPA 框架进行完整的 SEO 实践。

如果本文对您有所帮助, 欢迎 star、反馈。

相关链接

create-react-doc

why-is-my-website-not-showing-up-on-google/

A Technical Guide to SEO With Gatsby.js

优化向:单页应用多路由预渲染指南

除了 SSR,就没有别的办法了吗?

基于 SSR/SSG 的前端 SEO 优化

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfxgf.html