QuintoAndar 如何提高转化率

news2024/11/26 15:35:31

QuintoAndar 如何提高转化率

——求关注、求点赞、求分享,二毛拜谢。

QuintoAndar 如何通过提高页面性能来提高每次会话的转化率和页面数

一个专注于优化 Core Web Vitals 并迁移到 Next.js 的项目使转换率提高了 5%,每个会话的页面增加了 87%。

QuintoAndar 是一家巴西房地产科技公司,其产品为房地产提供数字化端到端解决方案。今年,我们开展了一个项目,重点是提高我们应用程序中内容中心的性能,并在增加用户流量和转化指标方面取得了令人鼓舞的结果。

 

46 %

跳出率降低

87 %

每个会话的页数增加

5 %

在验证阶段改进转换

挑战 

我们的应用程序有一个包含 40,000 多个页面的公寓内容中心,用户可以在其中获取有关其房产的信息、查看公共区域的照片、阅读社区信息以及查找可供出租或出售的房源。这些页面对 QuintoAndar 非常重要:

  • 它们是自然流量的重要来源, 来自搜索引擎结果的用户数量稳步增加。
  • 与其他页面相比,它们的中长期转化率很高。

但是,在这些页面的性能和用户体验方面存在挑战:

  • Core Web Vitals衡量的它们的性能  没有优化,并且存在页面加载缓慢、用户输入响应缓慢和布局不稳定等已知问题。
  • 它们的 跳出率 很高,即使我们预计它们会高于应用程序的其他部分。
  • Google 搜索中的 页面体验更新(当时尚未发布)将把 Core Web Vitals 纳入排名算法,这意味着页面性能可能会影响搜索结果的显示方式。

同时,我们确定了一些开发人员体验机会,可以在整个公司的其他项目中获得收益:

  • 我们的服务器端呈现逻辑——呈现所有高流量页面,包括公寓页面——是在内部创建的,并且变得过于复杂而无法维护和招募新员工。
  • 实现良好应用程序性能的基本功能(例如 代码拆分)也需要自定义设置以及开发人员的手动工作。
  • QuintoAndar 拥有超过 30 个 React  Web 应用程序。为这些应用程序提供更新并根据最佳实践对其进行维护是一项艰巨的任务。

方法 

我们开始了公寓内容中心的性能优化项目,以改善其用户体验,因为这些改进可以带来转化收益、更好的 SEO 和更好的可用性。这一举措也是改善开发人员体验的合适机会。

迁移到 Next.js 

新版本的公寓页面是使用Next.js实现的 。公寓内容中心在很大程度上独立于应用程序的其他部分,似乎是尝试新框架的理想选择。我们将能够了解迁移工作的规模并评估其功能如何在不影响 QuintoAndar 中的其他 React 应用程序的情况下提供帮助。

一个硬性要求是确保页面仍可被搜索引擎抓取。Next.js 通过支持开箱即用的服务器端渲染来满足这一要求,并且不需要自定义设置。该文档使共享有关如何执行任务(例如 在服务器上获取数据)和新开发人员的知识变得更加容易 。众所周知,服务器端渲染还可以 提高性能 指标,例如 首次内容绘制 (FCP)。

该框架提供了其他性能友好的功能,例如自动 代码拆分 和 预取。尽管现有结构已经提供了这些功能,但开发人员所需的额外工作阻碍了它们的采用。例如,页面或组件级别的代码拆分必须手动完成。

优化 JavaScript 资源 

第一步是 删除未使用的代码。我们查看了 Webpack Bundle Analyzer 报告,其中显示了每个 JS 包的内容,并仔细审查了所有第三方脚本。因此,我们能够清理一些未在此特定页面中使用的跟踪库。

我们的团队更进一步,评估了现有功能的性能成本。例如,“赞”按钮需要相当多的 JS 才能工作。但是,在公寓页面中,只有不到 0.5% 的用户与按钮交互,该按钮在我们应用程序的其他部分可用且使用频率更高。经过涉及工程和产品的讨论,我们决定删除此功能。

显示“喜欢”按钮功能的动画。有一张关于可供出租的公寓的卡片。在卡片的右下角,有一个灰色的心形按钮,点击后会变成蓝色。

其他 JS 优化已经到位,例如 使用 Brotli 进行静态压缩,这是在构建时使用 BrotliWebpackPlugin 完成的,并且还应用于其他类型的静态资源。起初,我们依靠 CDN 提供的压缩,Brotli 与 gzip 相比将 JS 大小减少了 18%。但随后,我们在构建时切换到 Brotli 压缩,并且能够实现 24% 的压缩。

优化图片资源 

在移动版中,有一个主图形象占据了折叠上方的大部分区域。它也恰好是页面的 最大内容绘制 (LCP)。

 

公寓页面的主图形象。

以前,所有图像都具有 srcset 和 size 属性来 提供响应式图像。我们还使用 Thumbor 按需 调整图像大小并配置我们的 CDN 以有效地缓存它们。

现代移动设备的显示器具有非常高的像素密度,这意味着浏览器将渲染 3x 或 4x 版本的图像(如果可用)。随着分辨率的增加,人眼更难感知差异,但无论如何文件大小都会增加。 限制最大图像分辨率可在 不影响用户体验的情况下改善图像大小。我们将主图图像限制为最多为其 2x 版本提供服务,这比 3x 版本小约 35%,比 4x 版本小 50%。

最后,我们使用了 预加载 策略来尽快下载和显示它,期待改进 LCP 指标。

<link rel="preload" href="/img/450x450/892847321-143.0038687080606IMG20180420WA0037.jpg" as="image">

该 Next.js内置的图像组件 包括许多优化,例如响应大小调整和优先加载。在这个项目中,我们没有迁移现有的图像来使用这个组件,但我们计划在新功能中采用它。

减少布局偏移 

公寓页面在累积布局转换 (CLS)方面存在一些问题 。负责布局转换的元素仅在客户端呈现——例如,使用客户端呈现的组件或没有定义宽度和高度属性的图像来补充服务器端标记。

为了解决这些问题,我们尽可能为这些元素设置精确的尺寸,或者使用 min-height 估计值。还有更多选项,例如使用 宽高比 CSS 属性。我们还创建了占位符来防止动态渲染的组件导致布局偏移。

 

定义地图图像等元素的尺寸会减少 CLS。

逐步推出更改 

我们的团队希望验证公寓中心页面的优化版本,以确保用户体验会更好。为实现这一目标,我们采用了渐进式部署策略:

  1. 在第一阶段,新版本发布了几个精选的网址,所以每天只有几百个用户会看到它们;
  2. 第二阶段,发布更多页面,每天有几千用户;
  3. 在第三个也是最后一个阶段,它面向所有页面发布,并完成了面向所有用户的推出。

在此期间,工程团队不断测量生产中的页面性能并不断进行改进。此外,该团队还比较了新版本和以前版本之间的业务指标。这个验证期的结果很有希望。

结果 

该团队使用 SpeedCurve 持续 对公寓页面进行 实验室测试。这些是移动版本的结果:

 

我们还想检查对我们真实用户的影响。使用通过Instana 网站监控收集的现场数据 ,我们查看了推出前后的 1 个月时间。比较移动用户的第 75 个百分位,我们发现 LCP 下降了 26%,FID 下降了 72%。

 

 

使用 Instana 收集的现场指标结果。

PageSpeed Insights 提供过去 28 天的现场数据报告。  仅访问最多的公寓页面就有足够的数据为移动用户生成报告。截至 2021 年 11 月,所有 Core Web Vitals 都在“好”桶中。

 

PageSpeed Insights 显示移动用户在访问量最大的公寓页面中获得了良好的体验。

在逐步推出期间,我们注意到跳出率有所下降。当我们完成所有页面的发布时, 谷歌分析 显示跳出率下降了 46%,每次会话的页面增加了 87%,平均会话持续时间增加了 49%。付费搜索的跳出率下降幅度更大,下降了 59%——这对于每次点击 付费 (PPC) 广告的投资来说是一个积极的信号 。

 

Google Analytics 显示,随着我们在更多页面中推出新版本,跳出率正在下降。

至于对业务指标的影响,我们分析了诸如安排旅行和申请租赁或购买房地产等交易的转化率。虽然改进仍在推出,但我们的团队比较了旧版本和新版本之间的转换。同一周,新版本页面组的转化率增加了 5%,而其他页面在同一指标上略有下降。

 

同一周,新版本的转化率有所增加,而旧版本的转化率则小幅下降。

结论 

这个项目是从无框架 React 到 Next.js 的长期迁移工作的第一部分。从那时起,在公寓页面上工作的团队就改进的开发人员体验给出了积极的反馈。其他必须引导新 Web 应用程序的团队已经使用 Next.js 这样做了。我们相信 Next.js 将简化维护工作并在不同的应用程序之间建立一个共同点。

总体而言,就用户和交易的绝对数量而言,公寓内容中心一直在不断增长。在长期分析中,造成这种情况的因素有很多,例如 QuintoAndar 运营的扩展和 SEO 计划(例如改进的页面索引)。在这个项目中,我们看到页面性能也是这些因素之一,具有巨大的积极转化影响潜力。

特别感谢 SEO 团队的产品经理Pedro Carmo深入研究用户数据并创建了本案例研究中看到的所有转换分析。

我是二毛,求关注求点赞,祝大家毛票票越来越多。

回复“加群”,可加入技术群交流,每周有红包掉落!!!

欢迎关注公众号:前端毛小悠。持续更新,为您带来更多知识。

点个关注不迷路~~

本作品采用知识共享署名 4.0 国际许可协议进行许可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

07.JavaWeb-Vue+elementUI

1.Vue 功能替代JavaScript和jQuery&#xff0c;基于JavaScript实现的前端框架 1.1配置Vue 1.1.1引入vue库 方法一&#xff1a;通过cdn链接引入最新版本的vue&#xff08;可能会慢些&#xff09; <head><script src"https://cdn.jsdelivr.net/npm/vue">…

基于yolov5开发构建道路路面病害检测识别系统——以捷克、印度、日本三国城市道路实况场景数据为例,开发对比分析模型并分析对应性能

城市道路病害检测是最近比较热门的一个任务领域&#xff0c;核心就是迁移深度学习目前已有的研究成果来实现实时城市道路路面病害的检测识别分析&#xff0c;在我之前的很多博文中都有做过类似桥梁、大坝、基建、隧道等水泥设施裂缝裂痕等目标检测相关的项目&#xff0c;除此之…

利用powershell脚本进行内网渗透

powershell知识点 ps1是powershell脚本的拓展名&#xff0c;就相当于cmd的.bat脚本&#xff0c;但是他更加强大。 获取版本信息 get-host #查看powershell的版本信息$psversiontable #查看powershell的版本信息执行策略 PowerShell 执行策略是一项安全功能&#xff0c;用于控…

softmax之温度系数

1.数学表示 这是传统的softmax&#xff1a; q i e x p ( z i ) ∑ j e x p ( z j ) q_i \frac{exp(z_i)}{\sum_jexp(z_j)} qi​∑j​exp(zj​)exp(zi​)​ 或者写&#xff1a; q i e x p ( z i ) / 1.0 ∑ j e x p ( z j / 1.0 ) q_i \frac{exp(z_i)/1.0}{\sum_jexp(z_j/…

《LCHub低代码指南》:ChatGPT会取代低代码开发平台吗?

目录 一、低代码开发平台的优势 1. 提高开发效率 2. 降低开发成本 3. 提高应用程序的质量 二、ChatGPT的优势 三、ChatGPT是否会取代低代码开发平台 四、结论 随着数字化时代的到来,低代码开发平台已经成为了企业数字化转型的重要工具之一。然而,随着人工智能技术的不…

提升教学质量,监督教室课堂秩序?这招小白也能轻松搞定

在当今快速发展的教育领域&#xff0c;提高教学质量和监督教师的工作表现是学校和教育机构的重要任务之一。 传统的巡课方式存在许多限制&#xff0c;如耗时、人力成本高以及数据收集和分析的困难等。为了应对这些挑战&#xff0c;越来越多的学校和教育机构转向在线巡课系统&am…

微信小程序怎么直播?

我们目前使用的小程序都是支持直播功能的&#xff0c;小程序直播功能是通过小程序直播组件实现的&#xff0c;这是微信为商家提供的实时视频直播工具&#xff0c;可以帮助商家快速通过小程序向用户提供优质的直播内容。同时&#xff0c;借助小程序丰富的营销功能&#xff0c;使…

一、Drools 规则引擎

一、问题引出 现有一个在线申请信用卡的业务场景&#xff0c;用户需要录入个人信息&#xff0c;如下图所示&#xff1a; 通过上图可以看到&#xff0c;用户录入的个人信息包括 姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、是否有信用卡等。录入…

Netty中ServerBootstrap类介绍

一、Netty基本介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具&#xff0c;用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 在保证易于开发的同时还保证了其应用的性能&#xff0c;稳定性和伸缩性。 Netty 是一…

UE5 PCG模块学习1

这次来学习一下UE5.2中正式加入的PCG功能。网上较多的案例是在Landscape地形上创建贴合地面的物体&#xff0c;博主研究了一下&#xff0c;这个案例将创建贴合Mesh的物体&#xff1a; 1.基础生成 1.首先在插件中检查Procedural Content Generation Framework是否已经被开启&…

自学黑客的12个步骤

黑客攻防是一个极具魅力的技术领域&#xff0c;但成为一名黑客毫无疑问也并不容易。你必须拥有对新技术的好奇心和积极的学习态度&#xff0c;具备很深的计算机系统、编程语言和操作系统知识&#xff0c;并乐意不断地去学习和进步。 如果你想成为一名优秀的黑客&#xff0c;下…

Java 获取七牛云存储空间中的所有图片列表

文章目录 获取七牛云密钥导入依赖编辑 YAML 配置文件添加七牛云配置类编写 QiNiuImgUrls 方法测试结果 七牛云官方文档&#xff1a;https://developer.qiniu.com/kodo/sdk/java 如果有还不会使用SpringBoot整合七牛云存储的小伙伴们&#xff0c;可以跳转查看这篇文章&#xff1…

Revit中如何画弯曲的轴网和显示实时轴号?

一、Revit中如何画弯曲的轴网 生活中&#xff0c;有很多圆筒样式的建筑&#xff0c;比如说鸟巢和土楼&#xff0c;他们的外壁是弯曲的。所以&#xff0c;当我们用Revit创建这类模型时&#xff0c;轴网就要画弯曲的&#xff0c;那么&#xff0c;Revit中如何画弯曲的轴网呢&#…

JMeter接口压测和性能监测

引言 今天我来和大家分享一篇关于JMeter接口压测和性能监测的文章。在现代互联网时代&#xff0c;应用程序的性能已经成为了一个非常重要的问题&#xff0c;并且对于许多公司的生存和发展都起着至关重要的作用。 而在这其中&#xff0c;JMeter是一个非常实用的工具&#xff0…

CSAPP - AttackLab实验(阶段1-5)

AttackLab实验 实验内容 官网&#xff1a;http://csapp.cs.cmu.edu/3e/labs.html “AttackLab”是一个Linux下的可执行C程序&#xff0c;包含了5个阶段&#xff08;phase1~phase5&#xff09;的不同内容。程序运行过程中&#xff0c;要求学生能够根据缓冲区的工作方式和程序…

【Flutter】如何移除 Flutter 右上角的 DEBUG 标识

文章目录 一、前言二、什么是 DEBUG 标识三、为什么我们需要移除 DEBUG 标识四、如何移除 DEBUG 标识五、完整代码六、总结 一、前言 欢迎来到 Flutter 的世界&#xff01;在这篇文章中&#xff0c;我们将探索 Flutter 的一些基础知识。但是&#xff0c;你知道吗&#xff1f;这…

Science:“消除噪音”量子比特实现了纠错的重大突破

光子盒研究院 在《科学》杂志的一篇新论文中&#xff0c;芝加哥大学普利兹克分子工程学院Hannes Bernien助教实验室的研究人员描述了一种不断监测量子系统周围噪音并实时调整量子比特以减少误差的方法——他们引入了“旁观者量子比特(spectator qubit)”。 尽管他们有解决新型问…

数字图像处理实验报告

目录 实验二、图像在空间域上的处理方法 实验三、图像在频率域上的处理方法 实验二、图像在空间域上的处理方法 一、实验目的 了解图像亮&#xff08;灰&#xff09;度变换与空间滤波的意义和手段&#xff1b;熟悉图像亮&#xff08;灰&#xff09;度变换与空间滤波的MATLA…

买法拍房需要注意什么

法拍房&#xff0c;由于其价格亲民、房屋信息透明度高、竞拍过程公平公正而受到越来越多的人开始关注。但是其中又有着许多的风险及相关的注意事项。那么&#xff0c;如何做到成功“捡漏”&#xff0c;买法拍房需要注意什么呢? 买法拍房需要注意什么 1、隐藏的各种收费 税费&a…

优思学院|质量和可靠性是同一件事吗?

什么是质量&#xff1f; 质量是什么&#xff1f;早期的定义是“整体上用来决定产品或服务能否满足使用目的之固有性质与性能总合”&#xff0c;换言之&#xff0c;质量就是“可显示出品质与服务好坏的东西”。 不过&#xff0c;关于质量的想法随时代变化&#xff0c;有范围愈…