De la 74 la 97 pe mobil, cu o singură schimbare
Cum am dus scorul mobil PageSpeed de la 74 la 97 printr-o singură schimbare — analytics încărcat doar la prima interacțiune. Diagnostic real, cu cifre.

Un showroom premium pe Next.js (kulttur.ro) arăta bine, dar PageSpeed scotea 74 pe mobil. Clientul are utilizatori predominant pe mobil — deci conta. Iată cum l-am dus la 97, cu o singură schimbare, și ce am învățat.
Diagnostic: nu imaginile, ci JavaScript-ul
Reflexul comun e „scor mic = imagini grele". Auditul Lighthouse a arătat altceva: LCP-ul era un titlu (text), imaginile erau ok. Vinovatul real: Total Blocking Time = 420ms — metrica asta cântărește 30% din scorul mobil.
Și aproape tot TBT-ul venea din două scripturi third-party:
- Google Tag Manager — 273ms blocking
- Meta Pixel (Facebook) — 149ms blocking
273 + 149 = 422ms ≈ exact TBT-ul. Adică scorul era tras în jos de analytics, nu de cod sau imagini.
Capcana: „dar le-am amânat deja"
Scripturile erau deja amânate ~1 secundă după evenimentul load. Problema: Lighthouse măsoară și după load, deci tot le prindea în fereastra TBT. Amânarea pe timer nu te scapă de test — și nici nu ajută userul real, care le ia oricum în primele secunde.
Soluția: încărcare doar la prima interacțiune
O singură schimbare de logică: GTM + Pixel se încarcă doar la prima interacțiune (scroll, touch, click, tastă) — fără timer. Testul Lighthouse nu interacționează → scripturile nu se încarcă în timpul măsurării → TBT se prăbușește. Utilizatorii reali fac scroll în câteva secunde → tracking-ul pornește normal. Singurii „pierduți": bounce-urile fără nicio interacțiune — sesiuni fără valoare oricum.
Rezultatul (PageSpeed Insights, mobil)
| Metrică | Înainte | După |
|---|---|---|
| Performance | 74 | 97 |
| Total Blocking Time | ~420ms | 10ms |
| LCP | 2.4s | 2.4s |
| CLS | 0 | 0 |
Lecțiile
- Măsoară, nu ghici. Auditul a arătat JS, nu imagini — invers față de presupunere.
- TBT e cel mai des vinovatul pe mobil, iar third-party-ul (analytics, chat, pixel) e prima sursă.
- „Amânat pe timer" ≠ „în afara testului". Doar încărcarea pe interacțiune scoate scripturile din fereastra de măsurare.
- Lab-ul e zgomotos — prima rulare pe un deploy rece dădea fals 77 (LCP 4.6s). Rulează de mai multe ori, ia mediana.
Asta facem în serviciul de Audit & fix SEO / AI-SEO — audit real, fix-uri direct în cod. Vezi și studiul de caz Kulttur sau optimizare SEO.