28 October 2026
Myth: Lab data predicts your field score Lab LCP 1.4s, field LCP p75 3.9s. Same page, 2.5s apart. Lab is one device, one network, cold or warm by config. Field is the distribution of every real visitor. — Your p75 user i…
@MillisecondMafia
18 October 2026
Myth: Gzip is good enough, skip Brotli Same asset: gzip 142KB -> brotli 118KB. ~17% smaller, free. Gzip and Brotli both compress, but Brotli uses a larger window and a built-in dictionary tuned for web text. — On text as…
@MillisecondMafia
11 October 2026
Cumulative Layout Shift (CLS) is the Core Web Vital that kills user trust silently. Pages that jump around as they load see 15-25% higher bounce rates even when overall load time is acceptable. The main culprits: — Image…
@MillisecondMafia
08 October 2026
Myth: Slow TTFB is always a server problem Field TTFB p75 = 1.4s; server response time = 110ms. Gap unexplained until you split the metric. Field TTFB includes redirect chains, DNS, TLS, and connection setup, not just se…
@MillisecondMafia
04 October 2026
Myth: Reduce HTTP requests to go faster Merged 40 requests into 12: LCP 2.4s -> 2.5s. The request-count rule is from HTTP/1.1's 6-connection limit. On HTTP/2 the bottleneck moved to bytes and priority, not count. — Inlin…
@MillisecondMafia
30 September 2026
LCP (Largest Contentful Paint) is the single most impactful Core Web Vital for affiliate sites. It measures how fast the main content element loads — usually a hero image or H1. To hit "Good" LCP (under 2.5 seconds): — P…
@MillisecondMafia
29 September 2026
Myth: Set width/height and CLS is solved Added width/height to every img: CLS 0.24 -> 0.19. Dimensions reserve space for images, fixing image-driven shift. But CLS (cumulative layout shift) also comes from fonts, injecte…
@MillisecondMafia
28 September 2026
Most sites lose 40-60% of their potential conversions not because of bad copy or weak offers — but because pages load in 4+ seconds on mobile. Here's the order that actually matters when optimizing for speed: 1. Core Web…
@MillisecondMafia
27 September 2026
💡 Если по теме — посмотри @BetMarginLab. Часто пишут revshare vs cpa.…
@MillisecondMafia
26 September 2026
Myth: Preload key resources to speed them up Added 9 : LCP 2.0s -> 2.7s. Preload tells the browser to fetch at highest priority immediately. Stack too many and they compete for bandwidth with the actual LCP resource, del…
@MillisecondMafia
25 September 2026
Myth: HTTP/2 killed bundling, ship many small files Unbundled 1 file into 60 modules: transfer same, TBT 180ms -> 340ms. HTTP/2 multiplexing removed the per-request connection penalty, so the old "concatenate everything"…
@MillisecondMafia
24 September 2026
Myth: async and defer do the same thing Swapped defer for async on 3 scripts: FCP 1.2s -> 1.2s, but LCP 2.1s -> 3.0s. Both download without blocking the parser. The difference is execution timing. — async executes the in…
@MillisecondMafia
23 September 2026
Diagnose hydration cost in an SPA framework Hydration (attaching JS interactivity to server HTML) runs as one big task that spikes TBT and delays INP readiness. — Step 1: Performance panel — find the long task right afte…
@MillisecondMafia
22 September 2026
Myth: Lazy-load all images for speed Lazy-loaded the hero: LCP 1.8s -> 3.6s. loading="lazy" on the LCP image defers its fetch until layout/scroll checks pass, adding a request round-trip before the browser even starts th…
@MillisecondMafia
21 September 2026
Myth: A CDN fixes slow TTFB Added CDN: TTFB 620ms -> 600ms. Expected sub-100ms. Why? TTFB (time to first byte) = network RTT + server think-time. A CDN cuts network distance, not your origin's database/render time. — If …
@MillisecondMafia
21 September 2026
Kill CLS layout shifts in order of impact CLS (Cumulative Layout Shift = sum of unexpected movement) is driven by a few big shifts, not many small ones. — Step 1: Performance panel > Experience track shows each shift + i…
@MillisecondMafia
20 September 2026
Critical CSS inline vs single external stylesheet Inlining above-fold CSS removes a render-blocking round trip. It has a cost. — External CSS: one render-blocking request, ~150-300ms before first paint on a cold cache. —…
@MillisecondMafia
20 September 2026
Myth: Minify your JS to go faster Minify on a 480KB bundle: 480KB -> 470KB transfer. After gzip, ~2KB delta. Minification strips whitespace and shortens local vars. Compression (gzip/brotli) already encodes repeated whit…
@MillisecondMafia
19 September 2026
HTTP/2 vs HTTP/3: head-of-line blocking on lossy networks H3 over QUIC helps a specific case: packet loss. — H2: one TCP connection, multiplexed. One lost packet stalls ALL streams (TCP head-of-line blocking). — H3 (QUIC…
@MillisecondMafia
19 September 2026
Myth: Lighthouse 100 means a fast site Lab score 100 -> field p75 LCP 3.4s. The two aren't the same measurement. Lighthouse is lab (synthetic, one cold load, throttled to a fixed Moto G profile). CrUX field data is p75 o…
@MillisecondMafia
18 September 2026
Set a performance budget that blocks bad merges Gains erode without a gate. Encode budgets in CI so a 50KB regression fails the build, not the field data three weeks later. — Step 1: Define budgets in budget.json: script…
@MillisecondMafia
18 September 2026
Text LCP 3.2s -> 1.4s by fixing font loading The LCP element was a headline, not an image. It rendered invisible until a 48KB web font finished — font-display: block with a 3s timeout. — Switched to font-display: swap + …
@MillisecondMafia
17 September 2026
Verify text compression is actually on Uncompressed HTML/CSS/JS silently triples transfer size and TTFB-to-content. Confirm it per asset, not per assumption. — Step 1: DevTools Network > add 'Content-Encoding' column. Lo…
@MillisecondMafia
17 September 2026
TTFB 1.6s -> 240ms by fixing one query loop A forum thread page ran 1 query per post to fetch author badges: 180 queries on a busy thread. — DB time was 1,240ms of the 1,600ms TTFB. — Replaced the loop with a single batc…
@MillisecondMafia
16 September 2026
32,000 DOM nodes turned every keystroke into a 180ms style recalc DOM size is a hidden INP tax: large trees make style/layout recalculation expensive per interaction. — A filterable table rendered all 32k rows into the D…
@MillisecondMafia
15 September 2026
TTFB 1.3s -> 380ms by killing a 3-hop redirect Measured TTFB included redirect time the user pays but most tools hide. — Entry URL did http -> https -> www -> trailing-slash: 3 round trips before the real response. — Eac…
@MillisecondMafia
15 September 2026
Flatten redirect chains step by step Each redirect is a full round-trip before real content loads — pure TTFB tax, often invisible until you trace it. — Step 1: curl -sIL -w '%{url_effective} %{http_code} %{time_total}\n…
@MillisecondMafia
14 September 2026
Improve Speed Index without touching LCP Speed Index measures how fast the visible area fills, frame by frame — you can pass LCP yet still feel slow. — Step 1: Lighthouse filmstrip + Performance screenshots show the fill…
@MillisecondMafia
14 September 2026
p75 hides a bimodal distribution — check the histogram A single p75 LCP of 2.4s can mean two different sites. — Site A: tight distribution, most users at 2.2-2.6s — one fix lifts everyone — Site B: 70% at 1.4s, 25% at 4.…
@MillisecondMafia
13 September 2026
Set cache headers that actually stick Misconfigured caching forces re-downloads and re-validation round-trips that bloat TTFB on repeat views. — Step 1: Hashed static assets (app.8f3a.js): Cache-Control: public, max-age=…
@MillisecondMafia