CINXE.COM
The 2024 Web Almanac
<!doctype html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>The 2024 Web Almanac</title> <link rel="stylesheet" href="/static/css/normalize.css?v=3a712a3381a95c0a7b7c6ed3aa03b911"> <link rel="stylesheet" href="/static/css/almanac.css?v=1653be48f4c6c63139a92045bbc0a5c5"> <link rel="stylesheet" href="/static/css/index.css?v=69e30c0abbe9bb2368e12e7e8779d421"> <link rel="preload" href="/static/fonts/Poppins-Light.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Lato-Regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Poppins-Bold.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Lato-Black.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Lato-Bold.woff2" as="font" type="font/woff2" crossorigin> <script nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-22381566-3', { 'link_attribution': true }); gtag('config', 'G-PQ5N2MZG5M'); </script> <link rel="shortcut icon" href="/static/images/favicon.ico"> <link rel="apple-touch-icon" href="/static/images/apple-touch-icon.png"> <meta name="description" content="The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."> <meta property="og:title" content="The 2024 Web Almanac"> <meta property="og:url" content="https://almanac.httparchive.org/en/2024/"> <meta property="og:image" content="https://almanac.httparchive.org/static/images/home-hero-2024.png"> <meta property="og:image:height" content="600"> <meta property="og:image:width" content="1200"> <meta property="og:type" content="article"> <meta property="og:description" content="The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@HTTPArchive"> <meta name="twitter:title" content="The 2024 Web Almanac"> <meta name="twitter:image" content="https://almanac.httparchive.org/static/images/home-hero-2024.png"> <meta name="twitter:image:alt" content="The 2024 Web Almanac"> <meta name="twitter:description" content="The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."> <link rel="webmention" href="https://webmention.io/almanac.httparchive.org/webmention"> <link rel="pingback" href="https://webmention.io/almanac.httparchive.org/xmlrpc"> <link rel="me" href="mailto:team@httparchive.org"> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://almanac.httparchive.org/en/2024/" }, "headline": "The 2024 Web Almanac", "image": { "@type": "ImageObject", "url": "https://almanac.httparchive.org/static/images/home-hero-2024.png", "height": 600, "width": 1200 }, "publisher": { "@type": "Organization", "name": "HTTP Archive", "logo": { "@type": "ImageObject", "url": "https://almanac.httparchive.org/static/images/ha.png", "height": 160, "width": 320 }, "sameAs": [ "https://httparchive.org", "https://x.com/HTTPArchive", "https://bsky.app/profile/httparchive.org", "https://github.com/HTTPArchive" ] }, "author": { "@type": "Person", "sameAs": [ "https://almanac.httparchive.org/en/2024/contributors#rviscomi", "https://x.com/rick_viscomi", "https://github.com/rviscomi" ], "name": "Rick Viscomi" } , "description": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive.", "datePublished": "2024-10-15T00:00:00.000Z", "dateModified": "2024-11-11T00:00:00.000Z" } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://almanac.httparchive.org/en/", "potentialAction": { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://almanac.httparchive.org/en/search?q={search_term_string}" }, "query-input": "required name=search_term_string" } } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "en", "item": "https://almanac.httparchive.org/en/" }] } </script> <link rel="canonical" href="https://almanac.httparchive.org/en/2024/"> <link rel="alternate" type="application/rss+xml" title="Web Almanac by HTTP Archive RSS (en)" href="/en/rss.xml"> <link rel="alternate" href="https://almanac.httparchive.org/en/2024/" hreflang="en"> <link rel="alternate" href="https://almanac.httparchive.org/es/2024/" hreflang="es"> <link rel="alternate" href="https://almanac.httparchive.org/fr/2024/" hreflang="fr"> <link rel="alternate" href="https://almanac.httparchive.org/hi/2024/" hreflang="hi"> <link rel="alternate" href="https://almanac.httparchive.org/it/2024/" hreflang="it"> <link rel="alternate" href="https://almanac.httparchive.org/ja/2024/" hreflang="ja"> <link rel="alternate" href="https://almanac.httparchive.org/nl/2024/" hreflang="nl"> <link rel="alternate" href="https://almanac.httparchive.org/pt/2024/" hreflang="pt"> <link rel="alternate" href="https://almanac.httparchive.org/ru/2024/" hreflang="ru"> <link rel="alternate" href="https://almanac.httparchive.org/tr/2024/" hreflang="tr"> <link rel="alternate" href="https://almanac.httparchive.org/uk/2024/" hreflang="uk"> <link rel="alternate" href="https://almanac.httparchive.org/zh-CN/2024/" hreflang="zh-CN"> <link rel="alternate" href="https://almanac.httparchive.org/zh-TW/2024/" hreflang="zh-TW"> <link rel="alternate" href="https://almanac.httparchive.org/en/2024/" hreflang="x-default"> </head> <body class="year-2024"> <svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" display="none"> <!-- HTTPArchive --> <symbol id="ha-logo" viewBox="0 0 432 225"> <path d="M10.626 7.433h14.5v47.5c6-7.4 13.5-11 22.5-11 4.9 0 9.2 1.2 13.1 3.7 3.9 2.4 6.7 5.8 8.6 10.1 1.9 4.3 2.9 10.7 2.9 19.1v41.6h-14.6v-45.2c0-5.3-1.3-9.6-4-12.9-2.6-3.3-6-4.9-10.3-4.9-3.2 0-6.2.8-9 2.5-2.8 1.6-5.9 4.4-9.3 8.2v52.4h-14.4V7.433m66.4 49.5l27.2-26.7v15.1h23.1v13h-23.1v35.8c0 8.4 3.5 12.6 10.4 12.6 5.2 0 10.7-1.7 16.4-5.2v13.5c-5.6 3.1-11.6 4.7-18.2 4.7s-12.1-1.9-16.5-5.8c-1.4-1.2-2.5-2.5-3.4-3.9-.9-1.5-1.7-3.4-2.3-5.7-.6-2.4-.9-6.9-.9-13.5v-32.5h-12.7v-1.4m54.3 0l27.2-26.7v15.1h23.1v13h-23.1v35.8c0 8.4 3.5 12.6 10.4 12.6 5.2 0 10.7-1.7 16.4-5.2v13.5c-5.6 3.1-11.6 4.7-18.2 4.7s-12.1-1.9-16.5-5.8c-1.4-1.2-2.5-2.5-3.4-3.9-.9-1.5-1.7-3.4-2.3-5.7-.6-2.4-.9-6.9-.9-13.5v-32.5h-12.7v-1.4M212.8 30.1l-27.2 26.7v1.4h39c6.1.2 10.6 1.5 13.9 3.1 3.5 1.6 6.3 4.3 8.3 7.9 2.1 3.7 3.1 7.9 3.1 12.7 0 7.4-2.2 13.5-6.5 18.2-4.3 4.7-9.8 7.1-16.6 7.1-2.8 0-5.5-.4-8.2-1.1v12.3c3.4.9 6.7 1.3 9.7 1.3 10.5 0 19.2-3.5 26-10.6 6.8-7 10.2-16 10.3-27 0-11.6-3.6-20.6-10.9-27.1-7.1-6.4-17.1-9.6-29.8-9.7h-.4l-10.6-.1V30.1z" fill="currentColor" /> <path d="M198 63.7c0 52.2-.1 108.8-.1 154.7h14.8v-52.5c3.4-3.8 6.1-6.4 8.9-8 2.8-1.6 5.8-2.4 9-2.4 4.3 0 7.7 1.6 10.3 4.9 2.6 3.2 4 7.5 4 12.9v45.2h14.5v-41.6c0-8.5-.9-14.9-2.8-19.2-1.9-4.3-4.7-7.7-8.6-10.1-3.9-2.4-8.3-3.7-13.1-3.7-8.8 0-16.1 3.5-22.1 10.6v-53.1c.1-12.5 0-25.1 0-37.7H198zM55.9 174.5v31.1c0 2.5.8 3.7 2.5 3.7s4.5-1.3 8.2-3.9v8.8c-3.3 2.1-5.9 3.5-7.9 4.3-2 .8-4 1.2-6.2 1.2-6.2 0-9.9-2.4-11-7.3-6.1 4.8-12.7 7.2-19.6 7.2-5.1 0-9.3-1.7-12.7-5-3.4-3.4-5.1-7.6-5.1-12.7 0-4.6 1.6-8.7 4.9-12.3 3.3-3.7 8.1-6.5 14.1-8.7l18.5-6.4v-3.9c0-8.8-4.4-13.2-13.2-13.2-7.9 0-15.6 4.1-23 12.2v-15.8c5.6-6.6 13.7-9.9 24.2-9.9 7.9 0 14.2 2.1 19 6.2 1.6 1.3 3 3.1 4.3 5.3 1.3 2.2 2.1 4.4 2.4 6.6.4 2.2.6 6.3.6 12.5m-14.2 29.4v-21.7L32 186c-4.9 2-8.4 3.9-10.5 6-2 2-3 4.4-3 7.4s1 5.5 2.9 7.4c2 1.9 4.5 2.9 7.5 2.9 4.6-.1 8.8-2 12.8-5.8M90 145.3v16.8l.8-1.3c7-11.3 14-16.9 21-16.9 5.5 0 11.1 2.8 17.1 8.3l-7.6 12.7c-5-4.8-9.7-7.2-14-7.2-4.7 0-8.7 2.2-12.2 6.7-3.4 4.4-5.1 9.7-5.1 15.8v38.2H75.5v-73.1H90m96.9 56v14.3c-7.3 2.7-14.4 4.1-21.3 4.1-11.4 0-20.6-3.4-27.4-10.2-6.8-6.8-10.2-15.9-10.2-27.3 0-11.5 3.3-20.8 9.9-27.8 6.6-7 15.3-10.6 26.1-10.6 3.8 0 7.1.4 10.1 1.1 3 .7 6.7 2 11.1 4v15.4c-7.3-4.7-14.1-7-20.3-7-6.5 0-11.9 2.3-16 6.9-4.2 4.6-6.3 10.4-6.3 17.5 0 7.5 2.3 13.4 6.8 17.8 4.6 4.4 10.7 6.6 18.4 6.6 5.5.1 11.9-1.5 19.1-4.8m93.2-86.7c2.4 0 4.4.8 6.1 2.5 1.7 1.6 2.5 3.7 2.5 6s-.8 4.3-2.5 6c-1.7 1.7-3.7 2.5-6.1 2.5-2.2 0-4.2-.8-5.9-2.5-1.7-1.7-2.5-3.8-2.5-6s.8-4.2 2.5-5.9c1.7-1.8 3.7-2.6 5.9-2.6m-7.2 30.7h14.5v73.1h-14.5v-73.1m75 0h15.7l-32.3 74.4h-4.8l-33.1-74.4h15.8l19.7 45 19-45m78.8 37.8h-51.4c.4 7 2.7 12.6 7 16.7s9.9 6.2 16.8 6.2c9.5 0 18.3-3 26.4-8.9v14.1c-4.4 3-8.9 5.1-13.3 6.4-4.3 1.3-9.5 1.9-15.3 1.9-8.1 0-14.6-1.7-19.5-5-5-3.3-9-7.8-12-13.4-3-5.7-4.4-12.2-4.4-19.6 0-11.1 3.2-20.2 9.5-27.1 6.3-7 14.5-10.5 24.6-10.5 9.7 0 17.4 3.4 23.2 10.2 5.8 6.8 8.7 15.9 8.7 27.3v1.7m-51.4-8.6h36.8c-.4-5.8-2.1-10.2-5.2-13.3-3.1-3.1-7.2-4.7-12.4-4.7s-9.5 1.6-12.8 4.7c-3.2 3-5.4 7.5-6.4 13.3" fill="currentColor" /> </symbol> <!-- GitHub --> <symbol id="github-logo" viewBox="0 0 32.6 31.8"> <path d="M16.3 0C7.3 0 0 7.3 0 16.3c0 7.2 4.7 13.3 11.1 15.5.8.1 1.1-.4 1.1-.8v-2.8c-4.5 1-5.5-2.2-5.5-2.2-.7-1.9-1.8-2.4-1.8-2.4-1.5-1 .1-1 .1-1 1.6.1 2.5 1.7 2.5 1.7 1.5 2.5 3.8 1.8 4.7 1.4.1-1.1.6-1.8 1-2.2-3.6-.4-7.4-1.8-7.4-8.1 0-1.8.6-3.2 1.7-4.4-.1-.3-.7-2 .2-4.2 0 0 1.4-.4 4.5 1.7 1.3-.4 2.7-.5 4.1-.5 1.4 0 2.8.2 4.1.5 3.1-2.1 4.5-1.7 4.5-1.7.9 2.2.3 3.9.2 4.3 1 1.1 1.7 2.6 1.7 4.4 0 6.3-3.8 7.6-7.4 8 .6.5 1.1 1.5 1.1 3V31c0 .4.3.9 1.1.8 6.5-2.2 11.1-8.3 11.1-15.5C32.6 7.3 25.3 0 16.3 0z" fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" /> </symbol> <!-- Twitter --> <symbol id="twitter-logo" viewBox="0 0 300 271"> <path xmlns="http://www.w3.org/2000/svg" d="m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z" fill="currentColor" /> </symbol> <!-- LinkedIn --> <symbol id="linkedin-logo" viewBox="0 0 200 200"> <path d="M185.2 0H14.8C6.6 0 0 6.4 0 14.3v171.3c0 7.9 6.6 14.3 14.8 14.3h170.4c8.1 0 14.8-6.4 14.8-14.3V14.3C199.9 6.4 193.3 0 185.2 0zM60.6 167.3H30.4V77.1h30.2v90.2zM45.5 64.8h-.2c-10.1 0-16.7-6.9-16.7-15.6 0-8.8 6.7-15.6 17.1-15.6 10.3 0 16.7 6.7 16.9 15.6 0 8.6-6.5 15.6-17.1 15.6zm124 102.5h-30.2V119c0-12.1-4.4-20.4-15.3-20.4-8.4 0-13.3 5.6-15.5 11-.8 1.9-1 4.6-1 7.3v50.4H77.3s.4-81.8 0-90.3h30.2v12.8c4-6.1 11.2-14.9 27.2-14.9 19.9 0 34.8 12.9 34.8 40.6v51.8zm-62.2-77.1c0-.1.1-.2.2-.3v.3h-.2z" fill="currentColor" /> </symbol> <!-- Mastodon --> <symbol id="mastodon-logo" viewBox="0 0 61 65"> <path d="M60.7539 14.3904C59.8143 7.40642 53.7273 1.90257 46.5117 0.836066C45.2943 0.655854 40.6819 0 29.9973 0H29.9175C19.2299 0 16.937 0.655854 15.7196 0.836066C8.70488 1.87302 2.29885 6.81852 0.744617 13.8852C-0.00294988 17.3654 -0.0827298 21.2237 0.0561464 24.7629C0.254119 29.8384 0.292531 34.905 0.753482 39.9598C1.07215 43.3175 1.62806 46.6484 2.41704 49.9276C3.89445 55.9839 9.87499 61.0239 15.7344 63.0801C22.0077 65.2244 28.7542 65.5804 35.2184 64.1082C35.9295 63.9428 36.6318 63.7508 37.3252 63.5321C38.8971 63.0329 40.738 62.4745 42.0913 61.4937C42.1099 61.4799 42.1251 61.4621 42.1358 61.4417C42.1466 61.4212 42.1526 61.3986 42.1534 61.3755V56.4773C42.153 56.4557 42.1479 56.4345 42.1383 56.4151C42.1287 56.3958 42.1149 56.3788 42.0979 56.3655C42.0809 56.3522 42.0611 56.3429 42.04 56.3382C42.019 56.3335 41.9971 56.3336 41.9761 56.3384C37.8345 57.3276 33.5905 57.8234 29.3324 57.8156C22.0045 57.8156 20.0336 54.3384 19.4693 52.8908C19.0156 51.6397 18.7275 50.3346 18.6124 49.0088C18.6112 48.9866 18.6153 48.9643 18.6243 48.9439C18.6333 48.9236 18.647 48.9056 18.6643 48.8915C18.6816 48.8774 18.7019 48.8675 18.7237 48.8628C18.7455 48.858 18.7681 48.8585 18.7897 48.8641C22.8622 49.8465 27.037 50.3423 31.2265 50.3412C32.234 50.3412 33.2387 50.3412 34.2463 50.3146C38.4598 50.1964 42.9009 49.9808 47.0465 49.1713C47.1499 49.1506 47.2534 49.1329 47.342 49.1063C53.881 47.8507 60.1038 43.9097 60.7362 33.9301C60.7598 33.5372 60.8189 29.8148 60.8189 29.4071C60.8218 28.0215 61.2651 19.5781 60.7539 14.3904Z" fill="currentColor"/> <path d="M50.3943 22.237V39.5876H43.5185V22.7481C43.5185 19.2029 42.0411 17.3949 39.036 17.3949C35.7325 17.3949 34.0778 19.5338 34.0778 23.7585V32.9759H27.2434V23.7585C27.2434 19.5338 25.5857 17.3949 22.2822 17.3949C19.2949 17.3949 17.8027 19.2029 17.8027 22.7481V39.5876H10.9298V22.237C10.9298 18.6918 11.835 15.8754 13.6453 13.7877C15.5128 11.7049 17.9623 10.6355 21.0028 10.6355C24.522 10.6355 27.1813 11.9885 28.9542 14.6917L30.665 17.5633L32.3788 14.6917C34.1517 11.9885 36.811 10.6355 40.3243 10.6355C43.3619 10.6355 45.8114 11.7049 47.6847 13.7877C49.4931 15.8734 50.3963 18.6899 50.3943 22.237Z" fill="white"/> </symbol> <!-- Bluesky --> <symbol id="bluesky-logo" viewBox="0 0 600 530"> <path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z" fill="currentColor"/> </symbol> <!-- Globe --> <symbol id="globe-logo" viewBox="0 0 30 30"> <circle cx="14.5" cy="14.5" r="13.5" stroke-width="2" stroke-miterlimit="10" fill="none" stroke="currentColor" /> <ellipse cx="14.5" cy="14.5" rx="6.1" ry="13.5" stroke-width="2" stroke-miterlimit="10" fill="none" stroke="currentColor" /> <path d="M1.6 9.6h25.8M1.6 19.4h25.8" stroke-width="2" stroke-miterlimit="10" fill="none" stroke="currentColor" /> </symbol> <!-- Bar chart --> <symbol id="bar-chart-logo" viewBox="0 0 18 19"> <path d="M0 9h3v10H0V9zm5-9h3v19H5V0zm5 7h3v12h-3V7zm5-4h3v16h-3V3z" fill="currentColor" /> </symbol> <!-- Comment --> <symbol id="comment-logo" viewBox="0 0 22 22.1"> <path d="M4.4 22.1l8-5.1H22V0H0v17h4.4z" fill="currentColor" /> </symbol> <!-- SQL --> <symbol id="sql-logo" viewBox="0 0 32 14.6"> <path d="M.1 12.4V9.6c.5.4 1.1.8 1.7 1 .6.2 1.2.3 1.8.3.4 0 .7 0 .9-.1s.5-.2.7-.3c.2-.1.3-.2.4-.4.1-.2.1-.3.1-.5s-.1-.5-.2-.7c-.2-.2-.4-.4-.6-.5-.3-.2-.5-.4-.9-.5-.3-.2-.7-.3-1.1-.5-1-.4-1.7-.9-2.2-1.5S0 4.6 0 3.8c0-.7.1-1.2.4-1.7S1 1.2 1.5.9s1-.5 1.6-.7S4.3 0 5 0s1.2 0 1.8.1 1 .2 1.4.4v2.6c-.3-.1-.5-.3-.8-.4s-.5-.2-.7-.2c-.3-.1-.6-.2-.8-.2-.3 0-.5-.1-.7-.1-.3 0-.6 0-.9.1s-.5.2-.7.3c-.2.1-.4.2-.5.4-.1.2-.1.3-.1.5s.1.4.2.6c.1.2.3.3.5.5.1.1.4.3.7.4.3.1.6.3 1 .4.5.2 1 .4 1.4.7.4.2.7.5 1 .8s.5.6.7 1c.2.4.2.8.2 1.3 0 .7-.1 1.3-.4 1.8-.3.6-.7 1-1.1 1.3-.5.3-1 .5-1.6.6s-1.3.2-1.9.2c-.7 0-1.4-.1-2-.2-.6-.1-1.2-.3-1.6-.5zm16 .7c-1.8 0-3.3-.6-4.4-1.8-1.2-1.2-1.7-2.7-1.7-4.6 0-2 .6-3.6 1.7-4.9C12.9.6 14.4 0 16.3 0c1.8 0 3.3.6 4.4 1.8 1.1 1.2 1.7 2.7 1.7 4.7s-.6 3.6-1.7 4.8l-.1.1-.1.1 3.2 3.1h-4L18 12.9c-.6.1-1.2.2-1.9.2zm.1-10.6c-1 0-1.8.4-2.4 1.1-.6.7-.9 1.7-.9 3s.3 2.2.9 3c.6.7 1.4 1.1 2.3 1.1 1 0 1.8-.4 2.3-1.1.6-.7.9-1.7.9-3s-.3-2.3-.8-3.1c-.5-.7-1.3-1-2.3-1zM32 12.9h-7.5V.2h2.8v10.3H32v2.4z" fill="currentColor" /> </symbol> <!-- Search --> <symbol id="search-logo" viewBox="0 0 13 13"> <path d="m4.8495 7.8226c0.82666 0 1.5262-0.29146 2.0985-0.87438 0.57232-0.58292 0.86378-1.2877 0.87438-2.1144 0.010599-0.82666-0.28086-1.5262-0.87438-2.0985-0.59352-0.57232-1.293-0.86378-2.0985-0.87438-0.8055-0.010599-1.5103 0.28086-2.1144 0.87438-0.60414 0.59352-0.8956 1.293-0.87438 2.0985 0.021197 0.8055 0.31266 1.5103 0.87438 2.1144 0.56172 0.60414 1.2665 0.8956 2.1144 0.87438zm4.4695 0.2115 3.681 3.6819-1.259 1.284-3.6817-3.7 0.0019784-0.69479-0.090043-0.098846c-0.87973 0.76087-1.92 1.1413-3.1207 1.1413-1.3553 0-2.5025-0.46363-3.4417-1.3909s-1.4088-2.0686-1.4088-3.4239c0-1.3553 0.4696-2.4966 1.4088-3.4239 0.9392-0.92727 2.0864-1.3969 3.4417-1.4088 1.3553-0.011889 2.4906 0.45771 3.406 1.4088 0.9154 0.95107 1.379 2.0924 1.3909 3.4239 0 1.2126-0.38043 2.2588-1.1413 3.1385l0.098834 0.090049z" fill="currentColor" /> </symbol> <!-- Share Apple --> <symbol id="share-apple-logo" viewBox="0 0 24 24"> <path d="M0 0h24v24H0V0z" fill="none" /> <path d="M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6c-1.11 0-2-.9-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3c1.1 0 2 .89 2 2z" /> </symbol> <!-- Share Android --> <symbol id="share-android-logo" viewBox="0 0 24 24"> <path d="M0 0h24v24H0z" fill="none" /> <path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z" /> </symbol> </svg> <div id="skiptocontent"><a href="#maincontent">Skip navigation</a></div> <header id="header" class="alt-bg"> <div class="container"> <div class="top-header"> <a class="navigation-logo" href="/en/2024/"> <span class="wa">Web Almanac</span> <span class="line-group"> <span class="pre">By</span> <span class="ha">HTTP Archive</span> </span> </a> <nav id="header-page-navigation" aria-label="Page navigation"> <ul> <li><a href="/en/2024/contributors">Contributors</a></li> <li><a href="/en/2024/methodology">Methodology</a></li> <li> <a class="nav-dropdown-btn js-hide" href="/en/search">Search</a> <div class="nav-dropdown header search-nav js-enable hidden"> <button type="button" class="nav-dropdown-btn search-button" aria-expanded="false"> Search </button> <ul class="nav-dropdown-list align-right hidden header-search"> <li class="nav-dropdown-list-part"> <form action="/en/search"> <label for="header-search-box" class="visually-hidden">Search</label> <input id="header-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="header-search-icon"> <title id="header-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> </ul> </div> </li> <li> <a class="nav-dropdown-btn js-hide" href="/en/2024/table-of-contents">Table of Contents</a> <div class="nav-dropdown header table-of-contents js-enable hidden"> <button type="button" class="nav-dropdown-btn" aria-expanded="false" aria-label="Table of Contents" > Table of Contents </button> <ul class="nav-dropdown-list hidden header-list"> <li class="nav-dropdown-list-part nav-dropdown-list-current"> <span>Home</span> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents">Table of Contents</a> </li> <li class="nav-dropdown-list-chapter foreword"> <a href="/en/2024/table-of-contents#foreword">Foreword</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-1">Part I. Page Content</a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 1: CSS</span> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 2: JavaScript</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/markup"> Chapter 3: Markup </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/structured-data"> Chapter 4: Structured Data </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/fonts"> Chapter 5: Fonts </a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 6: Media</span> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 7: WebAssembly</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/third-parties"> Chapter 8: Third Parties </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-2">Part II. User Experience</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/seo"> Chapter 9: SEO </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/accessibility"> Chapter 10: Accessibility </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/performance"> Chapter 11: Performance </a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 12: Privacy</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/security"> Chapter 13: Security </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-3">Part III. Content Publishing</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/cms"> Chapter 14: CMS </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/ecommerce"> Chapter 15: Ecommerce </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/jamstack"> Chapter 16: Jamstack </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/sustainability"> Chapter 17: Sustainability </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-4">Part IV. Content Distribution</a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 18: Page Weight</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/cdn"> Chapter 19: CDN </a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 20: HTTP</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/cookies"> Chapter 21: Cookies </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#appendices">Appendices</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/methodology">Methodology</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/contributors">Contributors</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/search">Search</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown header"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Year Switcher">2024</button> <ul class="nav-dropdown-list hidden header-list"> <li> <a href="/en/2022/">2022</a> </li> <li> <a href="/en/2021/">2021</a> </li> <li> <a href="/en/2020/">2020</a> </li> <li> <a href="/en/2019/">2019</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown header"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Language Switcher" >English</button> <ul class="nav-dropdown-list hidden header-list"> <li> <a lang="es" href="/es/2024/">Español</a> </li> <li> <a lang="fr" href="/fr/2024/">Français</a> </li> <li> <a lang="it" href="/it/2024/">Italiano</a> </li> <li> <a lang="nl" href="/nl/2024/">Nederlands</a> </li> <li> <a lang="pt" href="/pt/2024/">Português</a> </li> <li> <a lang="tr" href="/tr/2024/">Türkçe</a> </li> <li> <a lang="ru" href="/ru/2024/">Русский</a> </li> <li> <a lang="uk" href="/uk/2024/">Українська</a> </li> <li> <a lang="hi" href="/hi/2024/">हिन्दी</a> </li> <li> <a lang="ja" href="/ja/2024/">日本語</a> </li> <li> <a lang="zh-CN" href="/zh-CN/2024/">简体中文</a> </li> <li> <a lang="zh-TW" href="/zh-TW/2024/">繁體中文</a> </li> <li> <a class="help-translate" href="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"><em>Help translate</em></a> </li> </ul> </div> </li> </ul> </nav> <nav id="menu" aria-labelledby="menu-btn"> <a href="#footer" class="menu-btn js-hide" aria-label="Page menu"> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> </a> <button type="button" class="menu-btn js-enable hidden" disabled id="menu-btn" aria-label="Open the menu" aria-expanded="false" data-open-text="Open the menu" data-close-text="Close the menu"> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> </button> <ul class="menu"> <li><a href="/en/2024/contributors">Contributors</a></li> <li><a href="/en/2024/methodology">Methodology</a></li> <li> <form class="search-nav" action="/en/search"> <label for="mobile-search-box" class="visually-hidden">Search</label> <input id="mobile-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="mobile-search-icon"> <title id="mobile-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> <li> <a class="js-hide" href="/en/2024/table-of-contents">Table of Contents</a> <div class="table-of-contents-switcher js-enable hidden"> <label for="table-of-contents-switcher-mobile" class="visually-hidden"> Table of Contents Switcher </label> <select id="table-of-contents-switcher-mobile" data-label="toc-menu-mobile"> <option selected disabled value="/en/2024/">Home</option> <option value="/en/2024/table-of-contents">Table of Contents</option> <option value="/en/2024/table-of-contents#foreword">Foreword</option> <option disabled> Chapter 1: CSS </option> <option disabled> Chapter 2: JavaScript </option> <option value="/en/2024/markup"> Chapter 3: Markup </option> <option value="/en/2024/structured-data"> Chapter 4: Structured Data </option> <option value="/en/2024/fonts"> Chapter 5: Fonts </option> <option disabled> Chapter 6: Media </option> <option disabled> Chapter 7: WebAssembly </option> <option value="/en/2024/third-parties"> Chapter 8: Third Parties </option> <option value="/en/2024/seo"> Chapter 9: SEO </option> <option value="/en/2024/accessibility"> Chapter 10: Accessibility </option> <option value="/en/2024/performance"> Chapter 11: Performance </option> <option disabled> Chapter 12: Privacy </option> <option value="/en/2024/security"> Chapter 13: Security </option> <option value="/en/2024/cms"> Chapter 14: CMS </option> <option value="/en/2024/ecommerce"> Chapter 15: Ecommerce </option> <option value="/en/2024/jamstack"> Chapter 16: Jamstack </option> <option value="/en/2024/sustainability"> Chapter 17: Sustainability </option> <option disabled> Chapter 18: Page Weight </option> <option value="/en/2024/cdn"> Chapter 19: CDN </option> <option disabled> Chapter 20: HTTP </option> <option value="/en/2024/cookies"> Chapter 21: Cookies </option> <option value="/en/2024/methodology"> Methodology </option> <option value="/en/2024/contributors"> Contributors </option> <option value="/en/search"> Search </option> </select> </div> </li> <li> <div class="year-switcher js-show"> <label for="year-switcher-mobile" class="visually-hidden">Year Switcher</label> <select id="year-switcher-mobile"> <option selected="selected" value="/en/2024/"> 2024 </option> <option value="/en/2022/"> 2022 </option> <option value="/en/2021/"> 2021 </option> <option value="/en/2020/"> 2020 </option> <option value="/en/2019/"> 2019 </option> </select> </div> </li> <li> <div class="language-switcher js-show"> <label for="language-switcher-mobile" class="visually-hidden">Language Switcher</label> <select id="language-switcher-mobile"> <option selected="selected" lang="en" value="/en/2024/"> English </option> <option lang="es" value="/es/2024/"> Español </option> <option lang="fr" value="/fr/2024/"> Français </option> <option lang="it" value="/it/2024/"> Italiano </option> <option lang="nl" value="/nl/2024/"> Nederlands </option> <option lang="pt" value="/pt/2024/"> Português </option> <option lang="tr" value="/tr/2024/"> Türkçe </option> <option lang="ru" value="/ru/2024/"> Русский </option> <option lang="uk" value="/uk/2024/"> Українська </option> <option lang="hi" value="/hi/2024/"> हिन्दी </option> <option lang="ja" value="/ja/2024/"> 日本語 </option> <option lang="zh-CN" value="/zh-CN/2024/"> 简体中文 </option> <option lang="zh-TW" value="/zh-TW/2024/"> 繁體中文 </option> <hr> <option value="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"> Help translate </option> </select> </div> </li> <li id="mobile-misc" class="misc"> <ul class="misc"> <li> <a href="https://httparchive.org/" aria-labelledby="ha-logo-mobile"> <svg width="70" height="35" role="img"> <title id="ha-logo-mobile">HTTP Archive home</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ha-logo"></use> </svg> </a> </li> <li> <ul class="social-media"> <li> <a href="https://x.com/HTTPArchive" aria-labelledby="twitter-logo-mobile"> <svg width="20" height="20" role="img"> <title id="twitter-logo-mobile">Twitter</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> </a> </li> <li> <a href="https://bsky.app/profile/httparchive.org" aria-labelledby="bluesky-logo-mobile"> <svg width="20" height="20" role="img"> <title id="bluesky-logo-mobile">Bluesky</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bluesky-logo"></use> </svg> </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org" aria-labelledby="github-logo-mobile"> <svg width="22" height="20" role="img"> <title id="github-logo-mobile">GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> </a> </li> </ul> </li> </ul> </li> </ul> </nav> </div> </div> </header> <script nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"> // If JS is enabled then enable menus ASAP to avoid CLS as menu items change from links to buttons (function() { document.querySelectorAll('.js-hide').forEach(element => { // Don't just hide it - delete it completely to avoid any specifity issues element.parentNode.removeChild(element); }); document.querySelectorAll('.js-enable').forEach(element => { element.classList.remove('js-enable'); element.classList.remove('hidden'); element.disabled = false; element.hidden = false; }); })(); </script> <main id="maincontent"> <section id="intro" class="intro-container"> <div class="intro"> <div class="intro-year">2024</div> <h1 class="title title-lg title-alt">Web Almanac</h1> <h2>HTTP Archive’s annual<br> <b>state of the web</b> report</h2> <p> Our mission is to combine the raw stats and trends of the HTTP Archive with the expertise of the web community. The Web Almanac is a comprehensive report on the state of the web, backed by real data and trusted web experts. The 2024 edition is comprised of 21 chapters spanning aspects of page content, user experience, publishing, and distribution. </p> <a href="/en/2024/table-of-contents" class="btn"> Start exploring </a> </div> <div class="intro-image-wrapper"> <svg viewBox="0 0 57 16"> <text x="9" y="15">2024</text> </svg> <img src="/static/images/home-hero.png" alt="" width="820" height="562" fetchpriority="high"> </div> </section> <section id="featured-chapter" class="featured-chapter"> <div class="featured-chapter-content"> <h2 class="title title-center">Featured Chapter</h2> <h3>Fonts</h3> <blockquote> Overall, the trend is clear: more and more people prefer to self-host their web fonts. This is a great choice in many cases because self-hosting avoids external dependencies for something as critical to rendering as fonts are. </blockquote> <div class="featured-chapter-content-data"> <div class="featured-chapter-content-data-item"> <div class="no-wrap">11%</div> <div>Percentage of pages using resource hints to preload fonts.</div> </div> <div class="featured-chapter-content-data-item"> <div class="no-wrap">55%</div> <div>Fonts supporting OpenType features.</div> </div> <div class="featured-chapter-content-data-item"> <div class="no-wrap">34%</div> <div>Percentage of pages using variable fonts.</div> </div> </div> <a href="/en/2024/fonts" class="btn"> Read the <span class="featured-chapter-name">Fonts</span> chapter </a> </div> </section> <section id="contributors" class="contributors-container alt-bg"> <div class="container"> <div class="contributors"> <h2 class="title title-alt">Contributors</h2> <p> The Web Almanac has been made possible by the hard work of the web community. 78 people have volunteered countless hours in the planning, research, writing and production phases of the 2024 Web Almanac. </p> <a href="/en/2024/contributors" class="alt btn"> See the contributors </a> </div> <div class="people" aria-hidden="true"> <div class="people-number">78</div> <img id="character-markup" class="character" src="/static/images/character-markup.png" alt="" width="154" height="252" loading="lazy"> <img id="character-star" class="character" src="/static/images/character-star.png" alt="" width="245" height="254" loading="lazy"> <img id="character-hat" class="character" src="/static/images/character-hat.png" alt="" width="186" height="207" loading="lazy"> </div> </div> </section> <section id="methodology" class="methodology-container"> <div class="methodology"> <h2 class="title title-center">Methodology</h2> <div class="methodology-data"> <div class="websites-tested"> <div> Websites Tested </div> <div> 16.9M </div> </div> <div class="data-processed"> <div> Data Processed </div> <div> 83 TB </div> </div> </div> <p class="methodology-info"> Unless otherwise noted, the metrics in all of the 21 chapters of the 2024 Web Almanac are sourced from the HTTP Archive dataset. HTTP Archive is a community-run project that has been tracking how the web is built since 2010. Using WebPageTest and Lighthouse under the hood, metadata about nearly 17 million websites are tested monthly and included in a public BigQuery database for analysis. The June 2024 dataset was used as the basis for the 2024 Web Almanac’s metrics. For more information, see the Methodology page. </p> <a href="/en/2024/methodology" class="alt btn"> Learn about our Methodology </a> <img class="methodology-characters" src="/static/images/methodology-characters.png" alt="" width="984" height="354" loading="lazy"> </div> </section> </main> <footer id="footer" class="alt-bg"> <div class="container"> <div class="home-logo"> <a class="navigation-logo" href="/en/2024/"> <span class="wa">Web Almanac</span> <span class="line-group"> <span class="pre">By</span> <span class="ha">HTTP Archive</span> </span> </a> </div> <hr> <nav id="footer-nav-items" aria-label="Footer navigation" class="nav-items"> <ul> <li><a href="/en/2024/contributors">Contributors</a></li> <li><a href="/en/2024/methodology">Methodology</a></li> <li> <a class="nav-dropdown-btn js-hide" href="/en/search">Search</a> <div class="nav-dropdown footer search-nav js-enable hidden"> <button type="button" class="nav-dropdown-btn search-button" aria-expanded="false"> Search </button> <ul class="nav-dropdown-list align-right hidden footer-search"> <li class="nav-dropdown-list-part"> <form action="/en/search"> <label for="footer-search-box" class="visually-hidden">Search</label> <input id="footer-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="footer-search-icon"> <title id="footer-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> </ul> </div> </li> <li> <a class="nav-dropdown-btn js-hide" href="/en/2024/table-of-contents">Table of Contents</a> <div class="nav-dropdown footer table-of-contents js-enable hidden"> <button type="button" class="nav-dropdown-btn" aria-expanded="false" aria-label="Table of Contents" > Table of Contents </button> <ul class="nav-dropdown-list hidden footer-list"> <li class="nav-dropdown-list-part nav-dropdown-list-current"> <span>Home</span> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents">Table of Contents</a> </li> <li class="nav-dropdown-list-chapter foreword"> <a href="/en/2024/table-of-contents#foreword">Foreword</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-1">Part I. Page Content</a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 1: CSS</span> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 2: JavaScript</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/markup"> Chapter 3: Markup </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/structured-data"> Chapter 4: Structured Data </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/fonts"> Chapter 5: Fonts </a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 6: Media</span> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 7: WebAssembly</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/third-parties"> Chapter 8: Third Parties </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-2">Part II. User Experience</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/seo"> Chapter 9: SEO </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/accessibility"> Chapter 10: Accessibility </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/performance"> Chapter 11: Performance </a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 12: Privacy</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/security"> Chapter 13: Security </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-3">Part III. Content Publishing</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/cms"> Chapter 14: CMS </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/ecommerce"> Chapter 15: Ecommerce </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/jamstack"> Chapter 16: Jamstack </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/sustainability"> Chapter 17: Sustainability </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#part-4">Part IV. Content Distribution</a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 18: Page Weight</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/cdn"> Chapter 19: CDN </a> </li> <li class="nav-dropdown-list-chapter"> <span class="nav-dropdown-list-todo">Chapter 20: HTTP</span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/cookies"> Chapter 21: Cookies </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2024/table-of-contents#appendices">Appendices</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/methodology">Methodology</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2024/contributors">Contributors</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/search">Search</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown footer"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Year Switcher">2024</button> <ul class="nav-dropdown-list hidden footer-list"> <li> <a href="/en/2022/">2022</a> </li> <li> <a href="/en/2021/">2021</a> </li> <li> <a href="/en/2020/">2020</a> </li> <li> <a href="/en/2019/">2019</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown footer"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Language Switcher" >English</button> <ul class="nav-dropdown-list hidden footer-list"> <li> <a lang="es" href="/es/2024/">Español</a> </li> <li> <a lang="fr" href="/fr/2024/">Français</a> </li> <li> <a lang="it" href="/it/2024/">Italiano</a> </li> <li> <a lang="nl" href="/nl/2024/">Nederlands</a> </li> <li> <a lang="pt" href="/pt/2024/">Português</a> </li> <li> <a lang="tr" href="/tr/2024/">Türkçe</a> </li> <li> <a lang="ru" href="/ru/2024/">Русский</a> </li> <li> <a lang="uk" href="/uk/2024/">Українська</a> </li> <li> <a lang="hi" href="/hi/2024/">हिन्दी</a> </li> <li> <a lang="ja" href="/ja/2024/">日本語</a> </li> <li> <a lang="zh-CN" href="/zh-CN/2024/">简体中文</a> </li> <li> <a lang="zh-TW" href="/zh-TW/2024/">繁體中文</a> </li> <li> <a class="help-translate" href="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"><em>Help translate</em></a> </li> </ul> </div> </li> </ul> </nav> <nav id="mobile-footer-nav-items" aria-label="Footer navigation" class="nav-items"> <ul> <li><a href="/en/2024/contributors">Contributors</a></li> <li><a href="/en/2024/methodology">Methodology</a></li> <li> <form class="search-nav" action="/en/search"> <label for="mobile-footer-search-box" class="visually-hidden">Search</label> <input id="mobile-footer-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="mobile-footer-search-icon"> <title id="mobile-footer-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> <li> <a class="js-hide" href="/en/2024/table-of-contents">Table of Contents</a> <div class="table-of-contents-switcher js-enable hidden"> <label for="table-of-contents-switcher-mobile-footer" class="visually-hidden"> Table of Contents Switcher </label> <select id="table-of-contents-switcher-mobile-footer" data-label="toc-menu-mobile"> <option selected disabled value="/en/2024/">Home</option> <option value="/en/2024/table-of-contents">Table of Contents</option> <option value="/en/2024/table-of-contents#foreword">Foreword</option> <option disabled> Chapter 1: CSS </option> <option disabled> Chapter 2: JavaScript </option> <option value="/en/2024/markup"> Chapter 3: Markup </option> <option value="/en/2024/structured-data"> Chapter 4: Structured Data </option> <option value="/en/2024/fonts"> Chapter 5: Fonts </option> <option disabled> Chapter 6: Media </option> <option disabled> Chapter 7: WebAssembly </option> <option value="/en/2024/third-parties"> Chapter 8: Third Parties </option> <option value="/en/2024/seo"> Chapter 9: SEO </option> <option value="/en/2024/accessibility"> Chapter 10: Accessibility </option> <option value="/en/2024/performance"> Chapter 11: Performance </option> <option disabled> Chapter 12: Privacy </option> <option value="/en/2024/security"> Chapter 13: Security </option> <option value="/en/2024/cms"> Chapter 14: CMS </option> <option value="/en/2024/ecommerce"> Chapter 15: Ecommerce </option> <option value="/en/2024/jamstack"> Chapter 16: Jamstack </option> <option value="/en/2024/sustainability"> Chapter 17: Sustainability </option> <option disabled> Chapter 18: Page Weight </option> <option value="/en/2024/cdn"> Chapter 19: CDN </option> <option disabled> Chapter 20: HTTP </option> <option value="/en/2024/cookies"> Chapter 21: Cookies </option> <option value="/en/2024/methodology"> Methodology </option> <option value="/en/2024/contributors"> Contributors </option> <option value="/en/search"> Search </option> </select> </div> </li> <li> <div class="year-switcher js-show"> <label for="year-switcher-mobile-footer" class="visually-hidden">Year Switcher</label> <select id="year-switcher-mobile-footer"> <option selected="selected" value="/en/2024/"> 2024 </option> <option value="/en/2022/"> 2022 </option> <option value="/en/2021/"> 2021 </option> <option value="/en/2020/"> 2020 </option> <option value="/en/2019/"> 2019 </option> </select> </div> </li> <li> <div class="language-switcher js-show"> <label for="language-switcher-mobile-footer" class="visually-hidden">Language Switcher</label> <select id="language-switcher-mobile-footer"> <option selected="selected" lang="en" value="/en/2024/"> English </option> <option lang="es" value="/es/2024/"> Español </option> <option lang="fr" value="/fr/2024/"> Français </option> <option lang="it" value="/it/2024/"> Italiano </option> <option lang="nl" value="/nl/2024/"> Nederlands </option> <option lang="pt" value="/pt/2024/"> Português </option> <option lang="tr" value="/tr/2024/"> Türkçe </option> <option lang="ru" value="/ru/2024/"> Русский </option> <option lang="uk" value="/uk/2024/"> Українська </option> <option lang="hi" value="/hi/2024/"> हिन्दी </option> <option lang="ja" value="/ja/2024/"> 日本語 </option> <option lang="zh-CN" value="/zh-CN/2024/"> 简体中文 </option> <option lang="zh-TW" value="/zh-TW/2024/"> 繁體中文 </option> <hr> <option value="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"> Help translate </option> </select> </div> </li> </ul> </nav> <div id="footer-mobile-social-media" class="mobile-ha-social-media"> <a class="ha-logo" href="https://httparchive.org/" aria-labelledby="httparchive-logo-footer-mobile"> <svg width="70" height="35" role="img"> <title id="httparchive-logo-footer-mobile">HTTP Archive home</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ha-logo"></use> </svg> </a> <ul class="social-media"> <li> <a href="https://x.com/HTTPArchive" aria-labelledby="twitter-logo-footer-mobile"> <svg width="20" height="20" role="img"> <title id="twitter-logo-footer-mobile">Twitter</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> </a> </li> <li> <a href="https://bsky.app/profile/httparchive.org" aria-labelledby="bluesky-logo-footer-mobile"> <svg width="20" height="20" role="img"> <title id="bluesky-logo-footer-mobile">Bluesky</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bluesky-logo"></use> </svg> </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org" rel="me" aria-labelledby="github-logo-footer-mobile"> <svg width="22" height="20" role="img"> <title id="github-logo-footer-mobile">GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> </a> </li> </ul> </div> <hr> <p class="copyright"> <span>© Web Almanac. Licensed under <a hreflang="en" href="https://github.com/HTTPArchive/almanac.httparchive.org/blob/main/LICENSE">Apache 2.0</a>.</span> <br> <a class="accessibility-statement" href="/en/accessibility-statement">Accessibility Statement</a> <span class="footer-bullet">•</span> <a class="rss-feed" href="/en/rss.xml">RSS Feed</a> </p> <a class="ha-logo not-mobile" href="https://httparchive.org/" aria-labelledby="ha-logo-footer"> <svg width="70" height="35" role="img"> <title id="ha-logo-footer">HTTP Archive home</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ha-logo"></use> </svg> </a> <ul class="social-media not-mobile"> <li> <a href="https://x.com/HTTPArchive" aria-labelledby="twitter-logo-footer"> <svg width="20" height="20" role="img"> <title id="twitter-logo-footer">Twitter</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> </a> </li> <li> <a href="https://bsky.app/profile/httparchive.org" aria-labelledby="bluesky-logo-footer"> <svg width="20" height="20" role="img"> <title id="bluesky-logo-footer">Bluesky</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bluesky-logo"></use> </svg> </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org" rel="me" aria-labelledby="github-logo-footer"> <svg width="22" height="20" role="img"> <title id="github-logo-footer">GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> </a> </li> </ul> </div> </footer> <script async src="/static/js/almanac.js?v=1830c897b7a91e8f3ba7a8c08e07540d" nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-PQ5N2MZG5M" nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"></script> <link rel="preconnect" href="https://www.google-analytics.com"> <script defer src="/static/js/web-vitals.js?v=f6f30f40e7d014a2d38f1362c5eb6244" nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"></script> <script defer src="/static/js/send-web-vitals.js?v=b7224f484fe762e075d4838286ddb066" nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"></script> <!-- Let's assume you're going to visit one of the chapters and prefetch the page.css stylesheet --> <!-- A small optimisation but hey, every little helps! --> <link rel="prefetch" href="/static/css/page.css?v=09bfe6babea9027e32ffe7ccfa9f6f4c"> <script type="speculationrules" nonce="gLGFsl4taMA03jXmF6rlH2nd3rtiWajc"> { "prerender": [ { "source": "document", "where": { "and": [ {"href_matches": "/*"}, {"not": {"href_matches": "/static/*"}} ] }, "eagerness": "moderate" } ] } </script> </body> </html>