Multe site-uri din România trec prin același scenariu: după instalarea unui banner de cookie-uri, scorurile din PageSpeed Insights scad vizibil, iar raportul Core Web Vitals din Search Console începe să afișeze URL-uri „care necesită îmbunătățiri”. Nu e o coincidență. Bannerul de consimțământ este, tehnic, unul dintre primele lucruri care se încarcă și primul element care desenează ceva peste conținut — exact intervalul în care se măsoară cât de stabilă și cât de receptivă este pagina. Vestea bună e că diferența dintre un banner neutru din punct de vedere al performanței și unul care strică experiența ține de câteva decizii de implementare, nu de renunțarea la conformitate.

Ce măsoară de fapt Core Web Vitals

Cei trei indicatori urmăriți de Google sunt LCP (cât durează până se afișează cel mai mare element vizibil), INP (cât de repede răspunde pagina la prima interacțiune a utilizatorului) și CLS (cât de mult sare conținutul în timpul încărcării). Pragurile recomandate — sub 2,5 secunde pentru LCP, sub 200 de milisecunde pentru INP și sub 0,1 pentru CLS — sunt explicate în detaliu în documentația web.dev despre Web Vitals, împreună cu metodologia de măsurare pe utilizatori reali.

Detaliul important: aceste valori se calculează din date de teren, adunate din browserele vizitatorilor reali, nu din teste de laborator. Dacă bannerul tău apare la fiecare vizită nouă și produce un salt de conținut, acel salt intră în statistică de fiecare dată. Un test rulat într-un browser în care ai deja consimțământul salvat nu va arăta problema.

CLS: saltul de conținut pe care îl simte fiecare vizitator

Cea mai frecventă greșeală nu e un script greu, ci un banner care împinge pagina. Implementările care inserează bannerul ca element normal în fluxul documentului — o bară lipită la începutul body sau un bloc adăugat deasupra header-ului — mută tot conținutul cu 80–150 de pixeli în jos la o fracțiune de secundă după ce vizitatorul a început deja să citească. Rezultatul: un CLS care poate depăși cu ușurință pragul recomandat, chiar dacă restul paginii e impecabil.

Soluția e banală tehnic și rar aplicată: bannerul trebuie să fie `position: fixed` și scos complet din fluxul documentului, astfel încât apariția lui să nu redimensioneze nimic. Aceeași regulă e valabilă și pentru butonul mic de reapelare a preferințelor, pe care multe site-uri îl lasă să ocupe spațiu în layout.

A doua sursă de CLS e mai subtilă: blocarea scripturilor terțe. Când consimțământul lipsește, iframe-urile de YouTube, hărțile Google sau unitățile publicitare nu se încarcă — iar dacă nu au dimensiuni rezervate prin CSS, acceptarea bannerului le face să apară brusc și să împingă textul. Aici remediul e la nivelul temei: rezervi spațiul cu `aspect-ratio` sau cu un container de dimensiune fixă, indiferent dacă elementul se încarcă sau nu.

JS greu și încărcare sincronă

A doua categorie de probleme vine din greutate și din momentul încărcării. Unele platforme de consimțământ livrează pachete de câteva sute de kilobytes, cu framework-uri complete, biblioteci de traduceri pentru 40 de limbi și liste de furnizori descărcate la fiecare afișare. Pe un telefon de gamă medie, conectat pe o rețea mobilă în afara marilor orașe, parsarea și execuția acelui cod blochează firul principal exact în secunda în care utilizatorul încearcă să atingă ecranul — de aici degradarea INP.

Agravantul clasic este scriptul sincron, inserat fără `async` sau `defer`, care oprește construirea paginii până se termină descărcarea. Dacă serverul platformei de consimțământ răspunde lent, întreaga pagină aștepta. Tot în această categorie intră fonturile încărcate separat doar pentru banner și imaginile sau logourile mari servite fără dimensiuni declarate.

Cum arată un widget bine făcut

Un banner corect implementat respectă câteva criterii verificabile, nu promisiuni de marketing:

  • Dimensiune mică. Un reper rezonabil este un fișier comprimat de ordinul zecilor de kilobytes — există platforme care livrează un widget de consimțământ sub 30 KB, suficient pentru banner, categorii, blocare automată și jurnal de consimțământ.
  • Încărcare neblocantă. Script `async` sau `defer`, fără dependențe externe descărcate în cascadă.
  • Zero layout shift. Banner fixat, suprapus peste conținut, cu stiluri injectate într-un singur pas.
  • Decizie locală. Starea consimțământului se citește din cookie sau din `localStorage`, nu printr-un apel la server la fiecare vizită.
  • Blocare inteligentă. Scripturile terțe sunt oprite înainte de execuție, nu încărcate și apoi „dezactivate”.
  • Fără resurse redundante. Fonturi de sistem, SVG inline, fără imagini mari.

Legătura cu SEO, pe înțelesul tuturor

Core Web Vitals sunt un semnal real în clasarea Google, dar unul de calibru mic în comparație cu relevanța și autoritatea conținutului. Un site cu CLS slab nu dispare din rezultate; în schimb, pe nișe competitive — imobiliare, turism, retail, servicii locale — poate pierde poziții față de un concurent echivalent care are pagini stabile. Efectul mai important e însă comercial: fiecare secundă de întârziere și fiecare salt de conținut cresc rata de abandon, mai ales pe mobil, unde vine astăzi majoritatea traficului în România.

Merită precizat și ce nu e o problemă: simpla prezență a unui banner nu penalizează site-ul, iar refuzul cookie-urilor de către utilizatori nu afectează indexarea. Googlebot nu interacționează cu bannerul și vede pagina ca un vizitator fără consimțământ — motiv în plus să te asiguri că bannerul nu acoperă conținutul principal și nu blochează accesul la text.

Ce poți verifica în următoarea jumătate de oră

Deschide site-ul în fereastră privată, pe profil mobil, și urmărește ce se întâmplă în primele două secunde: dacă textul coboară după apariția bannerului, ai un CLS de rezolvat. Rulează apoi un test de performanță în DevTools, filtrează cererile de rețea după domeniul platformei de consimțământ și notează dimensiunea totală descărcată și timpul de execuție pe firul principal. Verifică în codul sursă dacă scriptul de banner are `async` sau `defer`. În final, intră în raportul Core Web Vitals din Search Console și compară evoluția CLS cu data la care ai instalat bannerul — corelația, dacă există, se vede imediat. Dacă toate aceste verificări ies prost, schimbarea platformei de consimțământ e de obicei mai rapidă și mai ieftină decât optimizarea restului site-ului.