第6章: SEO与交互指标

在当今的SEO环境中,Google越来越重视用户交互指标,如页面停留时长、交互性能等。本章将深入探讨如何优化网页速度和用户交互体验,以提升SEO效果和用户满意度。

1. Google的新时代SEO指标

随着互联网技术的发展,Google不断更新其搜索算法,以提供更好的用户体验。近年来,Google引入了一系列新的SEO指标,这些指标更加注重用户体验和网页性能。

1.1 核心网页指标(Core Web Vitals)的重要性

核心网页指标是 Google 用来评估网页健康度和性能的用户体验指标,并且在 Google 搜索排名算法中持续发挥着一点点作用。这些指标旨在衡量用户体验的几个关键方面:加载速度、交互性和视觉稳定性。

  • 加载性能(LCP, Largest Contentful Paint): 这个指标衡量的是视口内可见的最大内容元素(例如,图片或大段文本)完成渲染所需的时间。一个良好的 LCP 分数是 2.5 秒或更短。

  • 交互性(INP, Interaction to Next Paint): 这个指标已于 2024 年 3 月取代首次输入延迟 (FID)。 INP 衡量的是页面对用户交互的响应速度。它考察的是页面访问生命周期内发生的所有交互的延迟。一个良好的 INP 分数是 200 毫秒或更短。

  • 视觉稳定性(CLS, Cumulative Layout Shift): 这个指标量化了页面加载过程中可见内容的意外布局偏移量。一个良好的 CLS 分数是 0.1 或更小。

1.2 用户交互指标的崛起

除了Core Web Vitals,Google还越来越重视其他用户交互指标:

  • 页面停留时长:用户在页面上停留的时间越长,通常意味着内容质量越高。

  • 跳出率:衡量用户访问一个页面后立即离开网站的比率。低跳出率通常表示内容相关性高。

  • 页面深度:用户在一次会话中浏览的页面数量。高页面深度表示用户对网站内容感兴趣。

  • 用户参与度:包括评论、分享、订阅等用户互动行为,高参与度表明内容对用户有价值。

这些指标共同反映了用户对网站的满意度,因此在SEO策略中应当给予足够重视。

2. 优化加载性能(LCP)

LCP是Core Web Vitals中的关键指标之一,它直接影响用户对页面加载速度的感知。

2.1 识别和优化LCP元素

LCP元素通常是页面上最大的可见元素,可能是:

  • 图片:使用适当的图片格式(如WebP)和尺寸,实现懒加载。

  • 视频:使用视频缩略图作为占位符,仅在用户交互时加载完整视频。

  • 大型DOM元素:优化DOM结构,减少不必要的嵌套。

优化策略:

  • 对于图片,可以使用 <picture> 元素提供多种格式和尺寸。

  • 使用 CDN 加速资源加载。

  • 实现关键CSS内联,确保首屏样式快速加载。

2.2 提升服务器响应时间

服务器响应时间直接影响LCP。可以通过以下方式优化:

  • 服务器端渲染(SSR)vs 客户端渲染(CSR)

  • SSR可以加快首屏加载速度,适合内容密集型网站。

  • CSR适合交互密集型应用,可以通过预渲染优化首屏加载。

  • 实现边缘计算:

    • 使用CDN不仅可以分发静态资源,还可以在边缘节点执行动态内容生成。

    • 考虑使用Cloudflare Workers等边缘计算服务,将部分计算任务下放到离用户最近的节点。

3. 提高交互性能(FID)

FID(First Input Delay)衡量的是用户首次与页面交互到浏览器响应该交互的时间。优化FID可以显著提升用户体验和页面的响应速度。

警告:First Input Delay (FID) 不再是 Core Web Vitals 指标,已被 Interaction to Next Paint (INP) 指标取代。因此,我们于 2024 年 9 月 9 日停止了对 FID 的支持现在,我们应重点关注 INP。

3.1 JavaScript执行优化

3.1.1JavaScript的执行效率直接影响FID。以下是一些优化策略:

  • 代码分割和懒加载:

    • 使用Webpack等工具进行代码分割,只加载当前页面需要的JavaScript。

    • 实现组件的懒加载,例如使用React的React.lazy()Suspense

const LazyComponent = React.lazy(() => import('./LazyComponent'))

function MyComponent() {
return (
<React.Suspense fallback={<div>Loading...</div>}>
<LazyComponent />
</React.Suspense>
)
}
  • 减少主线程阻塞:

    • 使用Web Workers处理复杂计算,避免阻塞主线程.

    • 优化长任务,将其拆分为更小的异步任务。

3.2 事件监听器优化

3.2.1过多或低效的事件监听器会影响页面的响应速度。

  • 使用防抖和节流:

    • 防抖(Debounce):对于频繁触发的事件,只在最后一次触发后执行。

    • 节流(Throttle):限制事件触发的频率。

// 防抖函数
function debounce(func, wait) {
let timeout
return function executedFunction(...args) {
const later = () => {
clearTimeout(timeout)
func(...args)
}
clearTimeout(timeout)
timeout = setTimeout(later, wait)
}
}
// 使用防抖
const debouncedHandleResize = debounce(() => {
// 处理窗口大小变化
}, 250) window.addEventListener('resize', debouncedHandleResize)
  • 优化滚动和调整大小的事件处理:

    • 使用`requestAnimationFrame`来优化滚动事件处理。

    • 考虑使用Intersection Observer API来替代滚动事件监听。

4. 保证视觉稳定性(CLS)

CLS(Cumulative Layout Shift)衡量页面加载过程中的视觉稳定性。减少布局偏移可以提供更好的用户体验。

4.1 布局偏移的常见原因

无尺寸的图像和广告:

  • 加载时未指定尺寸的图像会导致布局偏移。

  • 动态插入的广告可能会推挤其他内容。

动态注入的内容:

  • AJAX加载的内容可能会改变页面布局。

  • 字体加载可能导致文本重排。

4.2 CLS优化策略

预留空间技术:

  • 为图像和广告预留足够的空间。

  • 使用占位符或骨架屏来预示内容的位置。

<div style="aspect-ratio: 16 / 9; background: #f0f0f0;">
<img src="data:image.jpg" alt="Description" style="width: 100%; height: auto;" />
</div>
  • 字体加载优化:

    • 使用font-display: optionalfont-display: swap

    • 预加载关键字体。

<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin /
  • 优化网络请求:

    • 合并和压缩CSS和JavaScript文件。

    • 使用图片压缩和WebP格式减少图片大小。

    • 实现资源的预加载和预连接。

  • 实现离线功能和PWA:

    • 使用Service Workers缓存关键资源。

    • 实现离线页面,提供基本功能。

    • 添加"添加到主屏幕"功能,提高用户粘性。

// 注册Service Worker
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js').then(
function (registration) {
console.log('ServiceWorker registration successful')
},
function (err) {
console.log('ServiceWorker registration failed: ', err)
}

接着访问下一篇文章

欢迎加入群聊,我们一起讨论一些更有趣的技术、商业、闲聊。

·

第六章: SEO与交互指标的更多相关文章

  1. (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(2)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选的第二部分,其余章节将陆续放出.上一 ...

  2. (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(1)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选,其余章节将陆续放出.上一篇:Wow ...

  3. SEO 第六章

    SEO第六章 本次课程目标: 1.      掌握网站的内链优化 2.      网站的URL优化 一. 网站地图 1. 什么是网站地图? 网站地图也叫站点地图,英文名叫sitemap,指的网站所有内 ...

  4. 精通Web Analytics 2.0 (8) 第六章:使用定性数据解答”为什么“的谜团

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第六章:使用定性数据解答"为什么"的谜团 当我走进一家超市,我不希望员工会认出我或重新为我布置商店. 然而, ...

  5. 【NPDP专项练习】第六章 市场研究

    第六章 市场研究 1.VOC也叫客户心声,指的是. A 选择一个单一的投资组合项目,并保证所有项目都在策略内 B 利用迭代在专家组中形成共识的决策 C 通过人工"商店"引导潜在客户 ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章  继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...

  7. 第六章SignalR的服务器广播

    第六章SignalR的服务器广播 1.概述: VS可以通过 Microsoft.AspNet.SignalR.Sample NuGet包来安装一个简单的模拟股票行情应用.在本教程的第一部分,您将从头开 ...

  8. Knockout应用开发指南 第六章:加载或保存JSON数据

    原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...

  9. 《Django By Example》第六章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:无他,祝大家年会都中奖!) 第六章 ...

  10. JavaScript DOM编程艺术-学习笔记(第五章、第六章)

    第五章: 1.题外话:首先大声疾呼,"js无罪",有罪的是滥用js的那些人.js的father 布兰登-艾克,当初为了应付工作,10天就赶出了这个js,事后还说人家js是c语言和s ...

随机推荐

  1. android studio真机调试华为手机

    背景 近来开发一个视频通话App,需要在华为手机上调试,按网上一顿操作,开启了USB调试之后,发现手机连上电脑后,android studio没反应,在此记录下解决方法.调试的手机型号是华为 nova ...

  2. DOCKER20231217: 容器引擎Docker

    1.1 Docker简介 1.1.1 什么是Docker? 一种轻量级的操作系统虚拟化技术,基于Go语言实现的开源容器项目,诞生于2013年,最初发起者是dotCloud公司(现 Docker Inc ...

  3. vmware workstation 17 pro激活密钥

    vmware workstation 17 pro激活密钥,通用批量永久激活许可 17:JU090-6039P-08409-8J0QH-2YR7F 16:ZF3R0-FHED2-M80TY-8QYGC ...

  4. TVbox蜂蜜影视_v3.1.6:智能电视观影新选择,简洁界面与强大功能兼具

    蜂蜜影视是一款基于猫影视开源项目 CatVodTVJarLoader 开发的智能电视软件,专为追求简洁与高效观影体验的用户设计.该软件从零开始编写,界面清爽,操作流畅,特别适合在智能电视上使用.其最大 ...

  5. JS用 URL 构造函数来解析 URL

    const url = new URL('http://username:password@hostname:9090/path?arg=value#anchor'); console.log(url ...

  6. mysql - 存储过程及分支语句

    存储过程是预编译好的sql语言的集合 减少编译次数,提高sql语句的重用性.但是在现阶段因为其维护困难及其他一系列的原因,有些时候并不推荐使用 创建 create procedure 存储过程的名字 ...

  7. 解决Dcat Admin laravel框架登录报错问题,(blocked:mixed-content)

    前言 在使用 Dcat Admin 后台登录时,发生 error 报错:(blocked:mixed-content) xhr VM484:1,浏览器拦截 其实这是浏览器在 HTTPS 页面中尝试加载 ...

  8. Golang Linux、Windows、Mac 下交叉编译

    前言 Golang 支持交叉编译, 即同一份代码,在一个平台上生成,然后可以在另外一个平台去执行. 之前写过一篇 Golang windows下 交叉编译 感觉写的不够全面,这篇作为补充. 交叉编译 ...

  9. rsarsa-给定pqe求私钥对密文解密

    题目: Math is cool! Use the RSA algorithm to decode the secret message, c, p, q, and e are parameters ...

  10. Windows核心编程 进程与线程

    进程 Windows作为多任务操作系统,允许多个程序同时在系统中运行.这些程序被称为进程,进程运行在一片独立的空间中,受到操作系统保护,操作系统的很多资源都是围绕着进程来进行分配,可以理解为操作系统维 ...