Web Performance
ÐÑоизводиÑелÑноÑÑÑ Ð² web - ÑÑо обÑекÑивнÑе измеÑÐµÐ½Ð¸Ñ Ð¸ полÑзоваÑелÑÑкие оÑÑÑениÑ, ÑвÑзаннÑе Ñ Ð·Ð°Ð³ÑÑзкой и ÑабоÑой пÑиложениÑ. ÐÑоизводиÑелÑноÑÑÑ - ÑÑо о Ñом, как долго ÑÐ°Ð¹Ñ Ð³ÑÑзиÑÑÑ, ÑÑановиÑÑÑ Ð¸Ð½ÑеÑакÑивнÑм и оÑзÑвÑивÑм, о Ñом, как плавно пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑвие Ñ ÐºÐ¾Ð½ÑенÑом. ÐлавнÑй ли ÑкÑолл ÑÑÑаниÑÑ? ÐÑе ли кнопки кликабелÑнÑ? ÐÑплÑваÑÑие окна загÑÑжаÑÑÑÑ Ð¸ показÑваÑÑÑÑ Ð±ÑÑÑÑо? РанимиÑÑÑÑÑÑ? ХоÑоÑÐ°Ñ Ð¿ÑоизводиÑелÑноÑÑÑ ÑÑебÑÐµÑ ÑÑÑÑа вÑÐµÑ Ð°ÑпекÑов: как обÑекÑивнÑÑ , напÑимеÑ, ÑакÑиÑеÑкое вÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑÑÑаниÑÑ Ð¸Ð»Ð¸ ÑаÑÑоÑа ÑÐ¼ÐµÐ½Ñ ÐºÐ°Ð´Ñов; Ñак и ÑÑбÑекÑивнÑÑ - в бÑквалÑном ÑмÑÑле "как полÑзоваÑÐµÐ»Ñ Ð²Ð¾ÑпÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑиÑÑемÑ".
Чем долÑÑе загÑÑжаеÑÑÑ Ð²Ð°Ñе пÑиложение, Ñем болÑÑе полÑзоваÑелей ÑеÑаÑÑÑÑ Ð¸Ð·Ð±Ð°Ð²Ð¸ÑÑÑÑ Ð¾Ñ Ð½ÐµÐ³Ð¾. ÐÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½Ð¾ ÑменÑÑаÑÑ Ð²ÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки пÑиложениÑ, а Ñак же пÑомежÑÑка вÑемени, за коÑоÑое оно ÑÑановиÑÑÑ Ð¸Ð½ÑеÑакÑивнÑм. Ðо в Ñо же вÑемÑ, важно добавлÑÑÑ Ð² пÑиложение новÑе возможноÑÑи, коÑоÑÑе ÑменÑÑаÑÑ Ð²ÑÐµÐ¼Ñ Ð¾Ñклика и делаÑÑ Ð¿Ñиложение инÑеÑакÑивнÑм за ÑÑÑÑ Ð½ÐµÐ¾ÑевиднÑÑ Ñ Ð¸ÑÑоÑÑей, напÑимеÑ, за ÑÑÑÑ Ð°ÑÐ¸Ð½Ñ Ñонной загÑÑзки даннÑÑ , коÑоÑÑе не понадобÑÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ "здеÑÑ Ð¸ ÑейÑаÑ".
СÑÑеÑÑвÑÑÑ Ð¸Ð½ÑÑÑÑменÑÑ Ð¸Ð·Ð¼ÐµÑÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи, API и лÑÑÑие пÑакÑики, коÑоÑÑе помогÑÑ Ð½Ð°Ð¼ измеÑÑÑÑ Ð¸ ÑлÑÑÑаÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ. ÐÑ Ð¿Ð¾ÑÑаÑаемÑÑ ÑаÑкÑÑÑÑ Ð¸Ñ Ð² ÑледÑÑÑей ÑекÑии:
ÐлÑÑевÑе ÑÑаÑÑи о пÑоизводиÑелÑноÑÑи
Ð ÑководÑÑва Ð´Ð»Ñ Ð½Ð°ÑинаÑÑиÑ
The MDN Web Performance Learning Area contains modern, up-to-date tutorials covering Performance essentials. Start here if you are a newcomer to performance:
- ÐÑоизводиÑелÑноÑÑÑ Ð²ÐµÐ±Ð°: кÑаÑкий обзоÑ
-
ÐÐ±Ð·Ð¾Ñ Ð¿ÑÑи обÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð²ÑÑÐµÐ½Ð¸Ñ Ð²ÐµÐ±-пÑоизводиÑелÑноÑÑи.
- ЧÑо Ñакое пÑоизводиÑелÑноÑÑÑ Ð²ÐµÐ±Ð°?
-
Ð ÑÑой ÑÑаÑÑе ÑаÑÑмаÑÑиваеÑÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð² Ñелом â ÑÑда Ð²Ñ Ð¾Ð´ÑÑ Ð¸Ð½ÑÑÑÑменÑÑ, меÑÑики, API, загÑÑзка даннÑÑ Ð¿Ð¾ ÑеÑи и оÑобÑе гÑÑÐ¿Ð¿Ñ Ð¿Ð¾Ð»ÑзоваÑелей, коÑоÑÑе нам нÑжно ÑÑиÑÑваÑÑ.
- Ðак полÑзоваÑели воÑпÑинимаÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ?
-
То как полÑзоваÑели воÑпÑинимаÑÑ Ð²Ð°Ñ ÑÐ°Ð¹Ñ ÑвлÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ важнÑм, Ñем знаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑик в миллиÑекÑÐ½Ð´Ð°Ñ . Ðа ÑÑо воÑпÑиÑÑие влиÑÐµÑ ÑакÑиÑеÑкое вÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑÑÑаниÑÑ, бездейÑÑвие, ÑеакÑÐ¸Ñ Ð½Ð° взаимодейÑÑвие Ñ Ð¿Ð¾Ð»ÑзоваÑелем, а Ñакже плавноÑÑÑ Ð¿ÑокÑÑÑки и дÑÑÐ³Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°Ñий. Ð ÑÑой ÑÑаÑÑе Ð¼Ñ Ð¾Ð±ÑÑдим ÑазлиÑнÑе меÑÑики загÑÑзки, анимаÑÐ¸Ñ Ð¸ показаÑели оÑклика, а Ñакже лÑÑÑие пÑакÑики Ð´Ð»Ñ ÑлÑÑÑÐµÐ½Ð¸Ñ Ð²Ð¾ÑпÑиÑÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑелем без влиÑÐ½Ð¸Ñ Ð½Ð° Ñами меÑÑики.
- ÐÑÐ½Ð¾Ð²Ñ Ð¿ÑоизводиÑелÑноÑÑи веба
-
Рдополнение к HTML, CSS, JavaScript и мÑлÑÑимедийнÑм Ñайлам ÑÑÑеÑÑвÑÑÑ ÑÑнкÑии, коÑоÑÑе могÑÑ Ð·Ð°Ð¼ÐµÐ´Ð»Ð¸ÑÑ ÑабоÑÑ Ð¿Ñиложений, и ÑÑнкÑии, коÑоÑÑе могÑÑ ÑделаÑÑ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÑбÑекÑивно и обÑекÑивно бÑÑÑÑее. СÑÑеÑÑвÑÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво API, инÑÑÑÑменÑов ÑазÑабоÑÑика, Ñ Ð¾ÑоÑÐ¸Ñ Ð¸ Ð¿Ð»Ð¾Ñ Ð¸Ñ Ð¿ÑакÑик, ÑвÑзаннÑÑ Ñ Ð²ÐµÐ±-пÑоизводиÑелÑноÑÑÑÑ. ÐдеÑÑ Ð¼Ñ Ð¿ÑедÑÑавим многие из ÑÑÐ¸Ñ ÑÑнкÑий на базовом ÑÑовне и пÑедоÑÑавим ÑÑÑлки на более подÑобнÑе ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑÑÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи по каждой Ñеме.
- ÐÑоизводиÑелÑноÑÑÑ HTML
-
ÐекоÑоÑÑе аÑÑибÑÑÑ Ð¸ поÑÑдок ÑлеменÑов ÑазмеÑки могÑÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° пÑоизводиÑелÑноÑÑÑ Ð²Ð°Ñего веб-ÑайÑа. Ð¡Ð²ÐµÐ´Ñ Ðº минимÑÐ¼Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑво DOM-ÑлеменÑов, обеÑпеÑив иÑполÑзование наилÑÑÑего поÑÑдка и аÑÑибÑÑов Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑенÑа, Ñакого как ÑÑили, ÑкÑипÑÑ, мÑлÑÑимедиа и ÑÑоÑонние ÑкÑипÑÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе знаÑиÑелÑно ÑлÑÑÑиÑÑ Ð¾Ð¿ÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ (англ. UX). Ð ÑÑой ÑÑаÑÑе подÑобно ÑаÑÑмаÑÑиваеÑÑÑ, как можно иÑполÑзоваÑÑ HTML Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ Ð¼Ð°ÐºÑималÑной пÑоизводиÑелÑноÑÑи.
- ÐÑлÑÑимедиа: изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ видео
-
Ðаиболее доÑÑÑпнÑм Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¾Ð¼ повÑÑÐµÐ½Ð¸Ñ Ð²ÐµÐ±-пÑоизводиÑелÑноÑÑи ÑаÑÑо ÑвлÑеÑÑÑ Ð¼ÐµÐ´Ð¸Ð°-опÑимизаÑиÑ. Ðозможно обеÑпеÑиÑÑ Ð·Ð°Ð³ÑÑÐ·ÐºÑ ÑазлиÑнÑÑ Ð²Ð°ÑианÑов медиаÑайлов в завиÑимоÑÑи Ð¾Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей, ÑазмеÑа и плоÑноÑÑи пикÑелей диÑÐ¿Ð»ÐµÑ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ конкÑеÑного полÑзоваÑелÑÑкого ÑÑÑÑойÑÑва. ÐополниÑелÑнÑе ÑовеÑÑ, Ñакие как Ñдаление звÑковÑÑ Ð´Ð¾Ñожек из ÑоновÑÑ Ð²Ð¸Ð´ÐµÐ¾, могÑÑ ÐµÑе болÑÑе ÑлÑÑÑиÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ. Ð ÑÑой ÑÑаÑÑе Ð¼Ñ Ð¾Ð±ÑÑдим влиÑние изобÑажений, видео- и аÑдиоконÑенÑа на пÑоизводиÑелÑноÑÑÑ, а Ñакже ÑпоÑÐ¾Ð±Ñ Ð¾Ð¿ÑимизаÑии.
- ÐÑоизводиÑелÑноÑÑÑ CSS
-
CSS Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ½ÐµÐµ важнÑм напÑавлением опÑимизаÑии Ð´Ð»Ñ Ð¿Ð¾Ð²ÑÑÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи, но еÑÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑÑнкÑии CSS, коÑоÑÑе влиÑÑÑ Ð½Ð° пÑоизводиÑелÑноÑÑÑ Ð·Ð½Ð°ÑиÑелÑно ÑилÑнее пÑоÑÐ¸Ñ . Ð ÑÑой ÑÑаÑÑе Ð¼Ñ ÑаÑÑмоÑÑим некоÑоÑÑе ÑвойÑÑва CSS, влиÑÑÑие на пÑоизводиÑелÑноÑÑÑ, и пÑедложим ÑпоÑÐ¾Ð±Ñ ÑабоÑÑ Ñо ÑÑилÑми, коÑоÑÑе помогÑÑ ÑнизиÑÑ Ð½ÐµÐ³Ð°Ñивное влиÑние на пÑоизводиÑелÑноÑÑÑ.
- ÐÑоизводиÑелÑноÑÑÑ JavaScript
-
JavaScript пÑи пÑавилÑном иÑполÑзовании Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÐµÑпеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸Ð½ÑеÑакÑивнÑй и Ð·Ð°Ñ Ð²Ð°ÑÑваÑÑий опÑÑ. Ðли он Ð¼Ð¾Ð¶ÐµÑ Ð·Ð½Ð°ÑиÑелÑно ÑнизиÑÑ Ð²ÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки, вÑÐµÐ¼Ñ ÑендеÑинга, пÑоизводиÑелÑноÑÑÑ Ð² пÑиложении, вÑÐµÐ¼Ñ Ð°Ð²Ñономной ÑабоÑÑ Ð¸ ÑдобÑÑво Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ. Ð ÑÑой ÑÑаÑÑе опиÑÐ°Ð½Ñ Ð½ÐµÐºÐ¾ÑоÑÑе пеÑедовÑе меÑÐ¾Ð´Ñ ÑабоÑÑ Ñ JavaScript, коÑоÑÑе ÑледÑÐµÑ ÑÑиÑÑваÑÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÐµÑпеÑиÑÑ Ð¼Ð°ÐºÑималÑно возможнÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð´Ð°Ð¶Ðµ Ñложного конÑенÑа.
- ÐÑоизводиÑелÑноÑÑÑ Ð½Ð° мобилÑнÑÑ ÑÑÑÑойÑÑваÑ
-
ÐоÑколÑÐºÑ Ð´Ð¾ÑÑÑп в ÐнÑеÑÐ½ÐµÑ Ð½Ð° мобилÑнÑÑ ÑÑÑÑойÑÑÐ²Ð°Ñ Ð²ÐµÑÑма попÑлÑÑен, а вÑе мобилÑнÑе плаÑÑоÑÐ¼Ñ Ð¸Ð¼ÐµÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑеннÑе бÑаÑзеÑÑ, но, возможно, Ñ Ð¾Ð³ÑаниÑенной пÑопÑÑкной ÑпоÑобноÑÑÑÑ, ЦРи вÑеменем авÑономной ÑабоÑÑ, важно ÑÑиÑÑваÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð²Ð°Ñего веб-конÑенÑа на ÑÑÐ¸Ñ Ð¿Ð»Ð°ÑÑоÑÐ¼Ð°Ñ . Ð ÑÑой ÑÑаÑÑе ÑаÑÑмаÑÑиваÑÑÑÑ Ð²Ð¾Ð¿ÑоÑÑ Ð¿ÑоизводиÑелÑноÑÑи Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑнÑÑ ÑÑÑÑойÑÑв.
Using Performance APIs
- Performance API
-
This guide describes how to use the
Performanceinterfaces that are defined in the High-Resolution Time standard. - Resource Timing API
-
Resource loading and timing the loading of those resources, including managing the resource buffer and coping with CORS
- The performance timeline
-
The Performance Timeline standard defines extensions to the
Performanceinterface to support client-side latency measurements within applications. Together, these interfaces can be used to help identify an application's performance bottlenecks. - User Timing API
-
Create application specific timestamps using the user timing API's "mark" and "measure" entry types - that are part of the browser's performance timeline.
- Frame Timing API
-
The
PerformanceFrameTiminginterface provides frame timing data about the browser's event loop. - Beacon API
-
The Beacon interface schedules an asynchronous and non-blocking request to a web server.
- Intersection Observer API
-
Learn to time element visibility with the Intersection Observer API and be asynchronously notified when elements of interest becomes visible.
Other documentation
- Developer Tools Performance Features
-
This section provides information on how to use and understand the performance features in your developer tools, including Waterfall, Call Tree, and Flame Charts.
- Profiling with the built-in profiler
-
Learn how to profile app performance with Firefox's built-in profiler.
Glossary Terms
- Beacon
- Brotli compression
- Client hints
- Code splitting
- CSSOM
- Domain sharding
- Effective connection type
- First contentful paint
- First CPU idle
- First input delay
- First interactive
- First meaningful paint
- First paint
- HTTP
- HTTP/2
- Jank
- Latency
- Lazy load
- Long task
- Lossless compression
- Lossy compression
- Main thread
- Minification
- Network throttling
- Packet
- Page load time
- Page prediction
- Parse
- Perceived performance
- Prefetch
- Prerender
- QUIC
- RAIL
- Real User Monitoring
- Resource Timing
- Round Trip Time (RTT)
- Server Timing
- Speculative parsing
- Speed index
- SSL
- Synthetic monitoring
- TCP handshake
- TCP slow start
- Time to first byte
- Time to interactive
- TLS
- Transmission Control Protocol (TCP)
- Tree shaking
- Web performance
Documents yet to be written
- JavaScript performance best practices
-
JavaScript, when used properly, can allow for interactive and immersive web experiences ... or it can significantly harm download time, render time, in app performance, battery life, and user experience. This article outlines some JavaScript best practices that can ensure even complex content's performance is the highest possible.
- Mobile performance
-
With web access on mobile devices being so popular, and all mobile platforms having fully-fledged web browsers, but possibly limited bandwidth, CPU, and battery life, it is important to consider the performance of your web content on these platforms. This article also looks at mobile-specific performance considerations.
- Web font performance
-
An often overlooked aspect of performance landscape are web fonts. Web fonts are more prominent in web design than ever, yet many developers simply embed them from a third party service and think nothing of it. In this article, we'll covers methods for getting your font files as small as possible with efficient file formats and sub setting. From there, we'll go on to talk about how browsers text, and how you can use CSS and JavaScript features to ensure your fonts render quickly, and with minimal disruption to the user experience.
- Performance bottlenecks
-
â¦
- Understanding bandwidth
-
Bandwidth is the amount of data measured in Megabits(Mb) or Kilobits(Kb) that one can send per second. This article explains the role of bandwidth in media-rich internet applications, how you can measure it, and how you can optimize applications to make the best use of available bandwidth.
- The role of TLS in performance
-
TLSâor HTTPS as we tend to call itâis crucial in creating secure and safe user experiences. While hardware has reduced the negative impacts TLS has had on server performance, it still represents a substantial slice of the time we spend waiting for browsers to connect to servers. This article explains the TLS handshake process, and offers some tips for reducing this time, such as OCSP stapling, HSTS preload headers, and the potential role of resource hints in masking TLS latency for third parties.
- Reading performance charts
-
Developer tools provide information on performance, memory, and network requests. Knowing how to read waterfall charts, call trees, traces, flame charts , and allocations in your browser developer tools will help you understand waterfall and flame charts in other performance tools.
- Alternative media formats
-
When it comes to images and videos, there are more formats than you're likely aware of. Some of these formats can take your highly optimized media-rich pages even further by offering additional reductions in file size. In this guide we'll discuss some alternative media formats, how to use them responsibly so that non-supporting browsers don't get left out in the cold, and some advanced guidance on transcoding your existing assets to them.
- Analyzing JavaScript bundles
-
No doubt, JavaScript is a big part of modern web development. While you should always strive to reduce the amount of JavaScript you use in your applications, it can be difficult to know where to start. In this guide, we'll show you how to analyze your application's script bundles, so you know what you're using, as well how to detect if your app contains duplicated scripts between bundles.
- Lazy loading
-
Lazy loading (Ð»ÐµÐ½Ð¸Ð²Ð°Ñ Ð·Ð°Ð³ÑÑзка) - ÑÑо ÑÑÑаÑегиÑ, напÑÐ°Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð½Ð° опÑеделение ÑеÑÑÑÑов как неблокиÑÑÑÑÐ¸Ñ (не кÑиÑиÑеÑÐºÐ¸Ñ ) Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¾ÑложиÑÑ Ð·Ð°Ð³ÑÑÐ·ÐºÑ ÑÑÐ¸Ñ ÑеÑÑÑÑов на ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ, когда они дейÑÑвиÑелÑно Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ.
- Lazy-loading JavaScript with dynamic imports
-
When developers hear the term "lazy loading", they immediately think of below-the-fold imagery that loads when it scrolls into the viewport. But did you know you can lazy load JavaScript as well? In this guide we'll talk about the dynamic import() statement, which is a feature in modern browsers that loads a JavaScript module on demand. Of course, since this feature isn't available everywhere, we'll also show you how you can configure your tooling to use this feature in a widely compatible fashion.
- Controlling resource delivery with resource hints
-
Browsers often know better than we do when it comes to resource prioritization and delivery however they're far from clairyovant. Native browser features enable us to hint to the browser when it should connect to another server, or preload a resource before the browser knows it ever needs it. When used judiciously, this can make fast experience seem even faster. In this article, we cover native browser features like rel=preconnect, rel=dns-prefetch, rel=prefetch, and rel=preload, and how to use them to your advantage.
- Performance Budgets
-
Marketing, design, and sales needs, and developer experience, often ad bloat, third-party scripts, and other features that can slow down web performance. To help set priorities, it is helpful to set a performance budget: a set of restrictions to not exceed during the development phase. In this article, we'll discuss creating and sticking to a performance budget.
- Web performance checklist
-
A performance checklist of features to consider when developing applications with links to tutorials on how to implement each feature, include service workers, diagnosing performance problems, font loading best practices, client hints, creating performant animations, etc.
- Mobile performance checklist
-
A concise checklist of performance considerations impacting mobile network users on hand-held, battery operated devices.
СмоÑÑиÑе Ñакже
HTML
CSS
- will-change
- GPU v CPU
- Measuring layout
- Font-loading best practices
JavaScript
APIs
-
Resource Hints - dns-prefetch, preconnect, prefetch, and prerender
Headers
- Content-encoding
- HTTP/2
- gZip
- Client Hints
Tools
- Performance in Firefox Developer Tools
- Flame charts
- The Network panel
- Waterfall charts
Additional Metrics
- Speed Index and Perceptual Speed Index
Best Practices
-
Content Delivery Networks (CDN)