Leverage browser caching (utilizează la maxim cache-ul navigatorului) este o problemă comună (o avertizare, o recomandare sau o problemă care necesită îmbunătățire) care apare la analizarea și testarea URL-urilor (conținuturilor paginilor web) cu diverse instrumente, cum ar fi GTmetrixPageSpeed Insights (în limba română), PingdomWebPageTest etc. Aceste unelte generează mai întâi rapoarte și apoi sugerează îmbunatățiri pentru gradul de performanță (optimizare) și/sau timpul (viteza) de încărcare. În general sunt utile, dar nu uitați niciodată că timpul de încărcare al unui sit sau blog (GTmetrix îi spune „Fully Loaded Time”, Pingdom și WegPageTest „Load time”, iar PageSpeed Insights nu afișează, de regulă, viteza reală), este cel mai important dintre toate aspectele.

   Dacă vă nemulțumește gradul (punctajul) pe care îl are situl propriu pentru utilizează la maxim cache-ul navigatorului, respectiv leverage browser caching (traducerea în PageSpeed Insights este „Profitați de memoria cache a browserului”), vă propun o soluție simplă, oarecum la îndemână, care vă va propulsa de la F (0), F (25), E (50) până la valoarea maximă A (100), dacă nu sunt înglobate resurse externe în pagina respectivă. Pentru resursele externe, cum ar fi de la Gravatar, Google Analytics, YouTube, Twitter, Pinterest etc. nu veți vedea nicio modificare, deoarece nu sunt servite de server. De exemplu, dacă aveți înglobat un video de pe YouTube imaginea originală este furnizată prin resursele proprii YouTube și va arăta o legătură (un link) de genul https://i3.ytimg.com/vi/2h-WhhqHjv4/xxxx.jpg (2 hours), deci nu este servită de serverul pe care îl folosiți pentru găzduire și nu puteți face nimic pentru a modifica timpul. La fel pentru legăturile din categoria https://1.gravatar.com/avatar/…. (5 minutes) sau https://google-analytics.com/…. (2 hours).

Utilizează la maxim cache-ul navigatorului (Leverage browser caching)

   Vă sugerez să încărcați codul următor în fișierul .htaccess, înainte de # BEGIN WordPress sau după # End WordPress, via cPanel (accesați File Manager -> Home Directory – Show Hidden Files trebuie să fie bifat -> public_html) sau prin FTP:

<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|svg|js|css|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
## EXPIRES HEADER CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType image/svg "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType text/css "access 1 week"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 week"
ExpiresByType application/x-javascript "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType video/mp4 "access 1 year"
ExpiresByType video/mpeg "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES HEADER CACHING ##

   Foarte, foarte important:

  1. Codul este valabil numai pentru serverele web Apache. Pentru serverele Nginx trebuie folosit cu totul altceva. Nu mă bag aici, n-am folosit niciodată, dar sigur găsiți informații pe internet.
  2. Asigurați-vă că extensiile (modules, în engleză) mod_expires și mod_headers sunt activate pe serverul gazdei pe care o folosiți. Toate gazdele le afișează undeva (un exemplu, pentru HostGator) și, în general, sunt folosite de majoritatea furnizorilor de găzduire.
  3. Prima dată descărcați fișierul .htaccess, ca măsură de siguranță. Dacă ați făcut ceva greșit, puteți să-l încărcați oricând, la locul lui, peste cel modificat (via cPanel sau FTP).
  4. Copiați codul de mai sus într-un editor, cum ar fi Notepad, și apoi copiați-l definitiv în fișierul .htaccess (înainte de # BEGIN WordPress sau după # End WordPress), pentru a evita caracterele și fonturile nepotrivite.
  5. În codul care trebuie inserat (de mai sus) „max-age=604800” înseamnă 604.800 secunde, adică o săptămână (7 zile). Este o valoare potrivită pentru mine, după încercări succesive, dar și valoarea minimă recomandată de PageSpeed Tools. În funcție de numărul de vizitatori, de mărirea site-ului – ambele au legătură cu cache-ul, de frecvența modificărilor aduse la articole, imagini, atașamente etc. puteți modifica această valoare, așa cum vă avantajează.
  6. Valorile pentru „ExpiresByType” nu trebuie menționate în secunde ci în zile (days), săptămâni (weeks), luni (months) sau ani (years). Ele utilizează la maxim cache-ul navigatorului pentru imagini (jpeg, png, gif etc.), pdf-uri, css, javascript etc. Puteți înlătura (șterge) unele dintre ele (toată linia de cod), dacă nu există pe site-ul personal, de exemplu imagini în format SVG, PDF-uri, videouri etc., dar dacă le lăsați acolo nu au nicio repercursiune. De asemenea, valorile pot fi modificate așa cum doriți (am dat doar un exemplu, mai sus, care s-a dovedit util în mai multe cazuri), după necesitățile fiecăruia, dar de preferință să nu depășească un an pentru resursele statice sau pentru cele care se schimbă rar și foarte rar. Totodată, recomand să nu modificați valoarea pentru „ExpiresDefault”, lăsați-o la 2 zile (access 2 days).
  7. La sfârșit salvați fișierul .htaccess și testați din nou URL-ul respectiv sau URL-urile analizate anterior pentru a vedea diferența.

   Cam asta trebuie să faceți. Dacă respectați ad literam ce am spus mai sus veți avea o creștere imediată și spectaculoasă, fără niciun efort deosebit, în GTmetrix (PageSpeed Score), Pingdom (Performance grade) și PageSpeed Insights (Optimizare). Vă rog să verificați, imediat, de preferință într-un navigator privat. Creșterea oferită prin utilizează la maxim cache-ul navigatorului (leverage browser caching) ar fi chiar mai impresionantă și remarcabilă dacă aveți optimizate deja pe sit imaginile (toate), compresia gzip, minificarea HTML, CSS și JavaScript, durata de răspuns a serverului, redirecționările fără rost etc. Este o bucurie destul de mare, pe moment, dar nu uitați, așa cum am spus la început, timpul de încărcare al unui sit sau blog este lucrul primordial la care trebuie lucrat. Din păcate, prin utilizează la maxim cache-ul navigatorului (leverage browser caching) nu veți câștiga secunde (sau milisecunde) prețioase la timpul de încărcare a sitului și nici nu se reduce numărul de cereri (requests).

   Tot ce am scris mai sus s-ar brodi mai bine cu un modul de cache. Majoritatea folosește unul și un astfel de modul este benefic pentru reducerea substanțială a timpului de încărcare al unui site sau blog, sunt sigur că ați încercat și ați văzut rezultatele. N-aș nominaliza niciunul, dar nu mă pot abține, din patriotism (adică să nu luați țeapă), WP Rocket apare pe primele pagini de căutare ca fiind „fenomenal”, cel mai bun modul de cache, prin comparație cu celelalte module de același gen. Este o „vrăjeală” pe față, care costă 49$. L-am luat de încercare, 14 zile, și apoi am cerut să-l traduc. S-au bucurat, mi-am făcut cont pe transifex, doar acolo se putea traducere, o chestie depășită față de ce face echipa WordPress.org, l-am tradus, mi-am mulțumit călduros, apoi am cerut să facă niște nici schimbări, așa cum sunt încetățenite în WordPress (traducere). Niciun răspuns. Oricum, WP Rocket nu mi-a redus timpul de încărcare al blogului în comparație cu modul de cache gratuit pe care îl foloseam mai demult, din contră timpul a crescut. Iar pentru utilizează la maxim cache-ul navigatorului (leverage browser caching) nu a avut nicio influență în testările făcute. Referitor la WP Rocket este o părere personală, poate subiectivă, pe care nu trebuie să o luați în considerare.