By : admin
Language: css
Date Published: 4 days, 3 hours ago
Web fonts often block rendering and hurt LCP because the browser waits for the font file before painting text. A fast‑font strategy combines three techniques: preload the most‑used font variants, use font-display: swap to show a fallback immediately, and self‑host or subset fonts to reduce transfer size. By loading the font early and allowing text to render with a system fallback, you eliminate the invisible‑text period and let the browser paint visible content sooner. Preconnecting to the font origin cuts DNS and TLS latency when using external services. Keep the number of font families and weights low—each extra variant adds a request. Test with Lighthouse or WebPageTest to confirm that the font request appears in the early critical‑chain and that LCP improves without layout shifts. This approach is especially valuable on high‑traffic financial or e‑commerce landing pages where every millisecond impacts bounce and conversion.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <!-- index.html – place in <head> as early as possible --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Fast‑Loading Font Example</title> <!-- Preconnect to the font origin (if using Google Fonts or a CDN) --> <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <!-- Preload the critical font variant (woff2 is best) --> <link rel="preload" href="/fonts/Inter-Regular-subset.woff2" as="font" type="font/woff2" crossorigin /> <style> /* Define the font‑face with swap display */ @font-face { font-family: "Inter"; src: url("/fonts/Inter-Regular-subset.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; /* show fallback instantly, swap when ready */ } /* Base typography */ body { margin: 0; font-family: Inter, system-ui, sans-serif; font-size: 1rem; line-height: 1.5; } /* Example content */ .hero { padding: 2rem; text-align: center; background: #f8fafc; } .hero h1 { font-size: 2.5rem; margin-bottom: 1rem; } </style> </head> <body> <section class="hero"> <h1>Welcome to the Optimized Page</h1> <p>This text renders quickly thanks to preloaded fonts and font‑display: swap.</p> </section> </body> </html> |