How does Wix improve website performance by improving infrastructure?
InfoQ 2021-06-04 08:50:18
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" The world of performance is beautiful and complex , Full of variables and details . Studies have shown that , Website speed will directly affect the conversion rate and income of enterprises . In recent years , The industry is more focused on performance, visibility and Web Speed up . from 2021 year 5 Month begins , Page experience signals will be included in Google search rankings .Wix The unique challenge is to support "},{"type":"text","marks":[{"type":"strong"}],"text":" Millions of "},{"type":"text","text":" Site , Some of these sites were built years ago , It hasn't been updated since it was born . We have all kinds of tools and articles ] Can help users analyze and improve their site Web Service performance ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Wix It's a managed environment , Not everything is in the hands of users . Sharing a common infrastructure presents many challenges to all of these sites , But it's also a big improvement on a large scale ( That is to use economies of scale ) Paved the way ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Find common language "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" One of the core issues in the field of performance is to find a common term to discuss all aspects of user experience , At the same time, consider the performance of technology and perception . The use of a well-defined common language within the organization enables us to easily discuss and categorize various technical components and trade-offs 、 Understand our performance report , It's especially important to help us understand the areas of improvement that we should focus on first ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We adjusted all the monitoring indicators and internal discussions , Added a lot of industry standard indicators , Such as Web Vitals, Include :"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/03\/03c55aaa9b6ba7ab6d1f43cbf42563c5.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"Core Web Vitals"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Website complexity and performance scores "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" It's easy to create a website that can load immediately , As long as you make it simple , Use only HTML And pass CDN Just publish ."}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/66\/6600eeb11ac95941079f03e3668e7347.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"PageSpeed Insight examples "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" But the reality is , Sites are becoming more complex and sophisticated , It's running more and more like an application than a document , And support things like blogs 、 E-commerce solutions and custom code and other functions ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Wix Provides a wide range of templates , So that users can easily build a site with many business functions , And these additional features usually bring some performance costs ."}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":" Journey "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" At first it was HTML"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Every time you load a web page , It's always against a URL Start with an initial request for , To retrieve HTML file . This HTML The response triggers all other client requests and browser logic to run and render your site . This is the most important page loading step , Because nothing happens until the response arrives ( be called TTFB—— The time when the first byte arrives )."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1e\/1e8b043feb1a9ffaa993de38089c9e66.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"WebPageTest First View"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" In the past : Client rendering (CSR)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" When operating large-scale systems, there are always trade-offs , Such as performance 、 Reliability and cost . Until a few years ago ,Wix Both are using client-side rendering (CSR), Through the client ( Browser ) Medium JavaScript To generate the actual HTML Content . This enables us to support a large number of sites , Without having to bear huge back-end operating costs ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"CSR Enables us to use a generic HTML file , The document is actually empty . All it does is trigger the download process of the required code and data , And then use them to generate the complete... On the client device HTML."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Now? : Server rendering (SSR)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" A few years ago , We're transitioning to server-side rendering (SSR), Because this is right. SEO And performance , Shorten the initial page visibility time , And can not fully support the operation of JavaScript Better search engines get better index results ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" This approach improves the visibility experience , Especially on slower devices \/ Connected to the , It opens the door for further performance optimization . But it also means that for every web request , Need to dynamically generate unique HTML Respond to , this "},{"type":"text","marks":[{"type":"strong"}],"text":" Far from being "},{"type":"text","text":" Ideal move , Especially for websites with a large number of views, the pressure is even heavier ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Introducing caching in multiple locations "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Each site's HTML Most of them are static , But there are some things to note :"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" It often changes . Every time users edit their site or change site data , For example, changing store inventory ,HTML Will change ."}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" It has some visitor specific data and cookie. This means that two people visiting the same site will see something different HTML. This feature can support some product functions , For example, remember which items visitors put in the shopping cart , Or remember the conversation that the visitor started with the business before , wait ."}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Not all pages are cacheable . for example , Pages with custom user code may display the current time as part of the document , So you can't cache ."}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" In limine , We took a relatively safe approach , That is to cache data without visitors HTML, Then dynamically modify for each visitor for each cache hit HTML Specific parts of the response ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Inside CDN Solution "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" To do this, we deployed an in-house solution : Use "},{"type":"link","attrs":{"href":"https:\/\/varnish-cache.org\/?fileGuid=g3TQWXCD6kc6ppKW","title":"","type":null},"content":[{"type":"text","text":"Varnish HTTP Cache"}]},{"type":"text","text":" Proxy and cache , Use Kafka To invalidate messages , Another is based on Scala\/Netty Service for , Responsible for acting for these HTML Respond to , But it will be right HTML Make changes and add visitor specific data and cookie."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" This solution allows us to deploy these lightweight components in more geographic locations and multiple cloud provider regions around the world .2019 year , We introduced more than 15 A new area , And gradually become 90% The above page access that is suitable for caching has enabled caching . Providing sites from more locations can reduce the number of clients and provide HTML Network latency between responding servers , Because the content is closer to the site visitors ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We also started using the same solution to cache some read-only API Respond to , And invalidate the cache when making any changes to the content of the site . for example , The list of blog posts on the site will be cached , And there are articles published \/ The cache will be invalidated when it is modified )."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Reduce complexity "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Implementing caching can significantly improve performance ( Mainly in the TTFB and FCP Stage ), It allows us to deliver content closer to the end user , This improves reliability ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" however , Modify... For each response HTML This approach introduces unnecessary complexity . If we can eliminate this complexity , Can create conditions for further performance improvement ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Browser cache ( As well as CDN Prepare for )"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"HTML The request is provided directly from the browser cache , This saves a lot of bandwidth and reduces the loading time of duplicate views (~13%)"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" The next step is from HTML Delete this part of visitor specific data completely , And in HTML When it arrives, it retrieves this data from a separate endpoint called by the client for this purpose ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We'll combine this data with cookie Carefully migrate to a new endpoint , This endpoint is called every time the page is loaded , But back to a light JSON( Only the hydration process needs it ), To achieve complete page interaction ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" such , We can turn on the browser for this HTML The cache of , That is to say, the browser will now store... For repeatedly visited sites HTML Respond to , And only the server is called to verify that the content has changed . This is the use of "},{"type":"link","attrs":{"href":"https:\/\/en.wikipedia.org\/wiki\/HTTP_ETag?fileGuid=g3TQWXCD6kc6ppKW","title":"","type":null},"content":[{"type":"text","text":"HTTP ETag"}]},{"type":"text","text":" Accomplished , It's basically an identifier , Assigned to HTML A specific version of the source . If the content doesn't change , Our server will send a 304 Not Modified Respond to , There is no text ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/b5\/b5c0ca78d2038bfcdb5b098703394bce.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"WebPageTest Repeat View"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Besides , This change means our HTML No longer visitor specific , And it no longer contains Cookie. let me put it another way , It can be cached almost anywhere , So you can make the most of CDN The ability of providers . these CDN The geographic deployment advantage of the provider is greater , Deployed in hundreds of locations around the world ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"DNS、SSL and HTTP\/2"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" When caching is enabled , Reduced waiting time , Other important parts of the initial connection are also highlighted . After enhancing our network infrastructure and monitoring capabilities , We were able to improve DNS、 The connection and SSL Time ."}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/9e\/9ebdf22abd6c00e3bd7084185b0a245a.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":" Response time graph "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We have enabled... For all user domains HTTP\/2, This reduces the number of connections required and the cost of each new connection . This is a relatively easy to deploy change , At the same time, it makes use of HTTP\/2 Performance and flexibility benefits ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"Brotli Compress (vs gzip)"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Reduce the median file transfer size (21-25%)"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Traditionally , All of our files are in gzip Compression of the ( This is the most popular one on the Internet HTML Compression options ), This compression protocol was originally developed in 30 It was realized years ago !"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/a7\/a759011b93ea61982a852d6166f6d2ed.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"Brotli Compression level estimator "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Newer Brotli Compression introduces a lot of compression improvements , There is almost no negative cost , And it's becoming popular . All major browsers have supported it for some time ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" All of our supported clients are at the edge of nginx Enabled on agent Brotli Support ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" to turn to Brotli Compression reduces the median size of our file transfers 21%-25%, Thus, the bandwidth consumption is reduced and the loading time is shortened ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/90\/9071e3ff586aaa293293fb3079790ae1.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":" Median response size "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":" Content delivery network (CDN)"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" dynamic CDN choice "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" stay Wix, We use it all the time CDN Provide all... On the user's website JavaScript Code and images ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" lately , We integrated a DNS Provider solutions , It can automatically select the best one according to the network and area of the client CDN. This allows us to provide static files from the best location for each visitor , And avoid some CDN The usability of ."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" Soon to launch ……CDN The user domain provided "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" The last part of the question is through CDN Provide the final , And the most critical part : In the user domain HTML."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" As mentioned above , We created our own in-house solution to cache and provide site-specific HTML and API result . There are operating costs to maintain this solution in so many new areas , The process of adding new areas also needs our continuous maintenance and optimization ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" at present , We're integrating multiple CDN provider , To support directly from CDN Location provides the whole Wix Site , So as to improve the global distribution efficiency of our servers , Further shorten the response time . Because we serve many domains , So it's a challenge , It needs to be done on the edge SSL End ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" And CDN Integration enables Wix The website is closer to customers than ever before , And there are more improvements in the loading experience ( Including things like HTTP\/3 And so on ), And these improvements don't require us to do more ."}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":" About performance monitoring "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" If you're running a Wix Website , You may want to know how these improvements translate into Wix Website performance results , And how we compare with other website platforms ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Most of the work done above has been deployed in the past year , And some work is still being promoted ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"HTTPArchive Of Web Yearbooks (Web Almanac) Recently released "},{"type":"link","attrs":{"href":"https:\/\/almanac.httparchive.org\/en\/2020?fileGuid=g3TQWXCD6kc6ppKW","title":"","type":null},"content":[{"type":"text","text":"2020 Edition of "}]},{"type":"text","text":", Among them is about CMS A highlight of the user experience "},{"type":"link","attrs":{"href":"https:\/\/almanac.httparchive.org\/en\/2020\/cms?fileGuid=g3TQWXCD6kc6ppKW","title":"","type":null},"content":[{"type":"text","text":" chapter "}]},{"type":"text","text":". please remember , Many of the numbers mentioned in this article are from 2020 It started in the middle of the year ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We are looking forward to 2021 I saw the updated report in 2005 , And is actively monitoring our site's CrUX Reports and our internal performance metrics ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We are committed to continuously improving loading time , And provide a platform for our users , So that they can build their own ideal website without affecting the performance ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/d1\/d19126198c3cbd4c42b156cc103c34ae.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":" Mobile website LCP、 Speed index and FCP The long-term changes in the world "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"DebugBear Recently, a very interesting “"},{"type":"link","attrs":{"href":"https:\/\/www.debugbear.com\/blog\/website-builder-performance-review?fileGuid=g3TQWXCD6kc6ppKW","title":"","type":null},"content":[{"type":"text","text":" Website builder performance evaluation "}]},{"type":"text","text":"”, It covers some of the areas I mentioned above , And checked the performance of very simple websites built on each platform . The site was built about two years ago , No changes have been made since , But the platform continues to improve , The performance of the website is also improved . Look at the past year and a half "},{"type":"link","attrs":{"href":"https:\/\/www.debugbear.com\/project\/175\/pageLoad\/873\/overview?dateRange=2019-03-31T21:00Z-to-2021-03-31T21:59Z&fileGuid=g3TQWXCD6kc6ppKW","title":"","type":null},"content":[{"type":"text","text":" data "}]},{"type":"text","text":" You can find evidence ."}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":" Conclusion "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" We hope our experience will inspire you to promote a performance oriented culture in your organization , Also hope that the above information can help your platform or site ."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" To sum up :"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Select a set of metrics that can be consistently tracked using industry approved tools , We recommend that you use it CoreWebVitals."}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Use browser caching and CDN."}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Migrate to HTTP\/2( If possible , Migrate to HTTP\/3)."}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Use Brotli Compress ."}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Link to the original text :"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/web.dev\/wix\/?fileGuid=g3TQWXCD6kc6ppKW"}]}]}
Please bring the original link to reprint ,thank
Similar articles

2021-08-09

2021-08-09