Cum să activați compresia GZIP pentru a accelera site-urile WordPress

Publicat: 2020-10-16

Cel mai simplu mod de a vă accelera site-ul WordPress este să eliminați toate resursele sale nedorite. Al doilea cel mai simplu mod de a o accelera este comprimarea tuturor resurselor dorite. Activarea compresiei GZIP pe serverul dvs. web este una dintre cele mai simple și mai eficiente modalități de a realiza acest lucru.

Toate browserele moderne includ suport pentru compresia GZIP în mod implicit. Cu toate acestea, pentru a furniza resursele comprimate utilizatorilor dvs. fără probleme, trebuie să vă configurați corect serverul.

În această postare, veți afla elementele de bază ale compresiei datelor pe web, ce este compresia GZIP, diversele sale beneficii și cum o puteți utiliza pentru a accelera site-urile dvs. WordPress pe diferite setări de server.

Excitat? Să decomprimăm!

Preferiți să vizionați versiunea video?

Cel mai simplu mod de a vă accelera site-ul #WordPress: scăpați de resursele nedorite. Al doilea cel mai simplu mod: comprimați toate resursele dorite. Învață să faci acest lucru rapid cu compresia GZIP Click to Tweet

Bazele comprimării datelor pe web

Comprimarea datelor pe web este procesul de reducere a dimensiunii datelor transmise de site-uri web. În funcție de tipul de date - text, imagini, foi de stil, scripturi, fonturi - există diferite moduri de a comprima datele.

O ilustrare a principalelor componente ale unei pagini web
Componentele principale ale unei pagini web

De exemplu, minimizarea HTML, CSS și JavaScript este o modalitate simplă de a reduce cantitatea de date trimise de browsere. Aici, minificatorul comprimă textul eliminând caracterele inutile, cum ar fi comentariile și spațiile albe din codul sursă.

În exemplul de mai jos al unui document HTML simplu, există trei tipuri de conținut: marcaj HTML, stiluri CSS și cod JavaScript.

Fiecare tip de conținut are sintaxă și semantică unică. În total, acest document HTML are 357 de caractere în total.

 < html > < head > < style > /* kinsta-banner is used on the homepage only */ .kinsta-banner { font-size: 150% } .kinsta-banner { width: 75% } </ style > </ head > < body > <!-- kinsta banner START --> < div >...</ div > <!-- kinsta banner END --> < script > kinstaScripts(); // random scripts used on the page </ script > </ body > </ html >

Codul de mai sus este ușor de citit și urmat. Este ideal pentru dezvoltare. Cu toate acestea, este inutil ca browserul să citească comentariile și să aibă etichete perfect indentate. Un compresor inteligent poate analiza acest document și poate elimina toate biții inutile din el.

 < html >< head >< style >.kinsta-banner{font-size:150%;width:75%}</ style ></ head >< body >< div >...</ div >< script >kinstaScripts();</ script ></ body ></ html >

După minimizare, documentul HTML se reduce la doar 141 de caractere. Aceasta înseamnă o economie de 60,50% în numărul de caractere. Nu este la fel de ușor pentru ochi, dar asta nu contează pentru browser. Acesta va afișa în continuare aceeași pagină pentru utilizator.

Pentru a profita de ambele versiuni, puteți menține documentul original ca o „versiune de dezvoltare”, dar să minimizați tot codul înainte de a-l pune live.

Majoritatea pluginurilor de performanță WordPress se ocupă de asta automat pentru tine.

Comparație între dimensiunea fișierului jQuery necomprimat cu cel redus
Comprimarea dimensiunii fișierului a jQuery necomprimat vs miniat

De exemplu, versiunea necomprimată a bibliotecii jQuery 3.5.1 este de peste 3 ori mai mare decât versiunea redusă a aceluiași fișier.

De asemenea, aceleași tehnici de compresie descrise mai sus pot optimiza alte tipuri de conținut, cum ar fi imagini, videoclipuri, fonturi și multe altele. Reducerile specifice conținutului, ca acestea, reprezintă primul pas în optimizarea dimensiunii materialelor bazate pe text ale site-ului dvs. web.

Dar compresia datelor înseamnă mai mult decât minimizarea. Folosind tehnici matematice avansate, algoritmii de comprimare a datelor pot reduce și mai mult dimensiunea datelor.

Unul dintre cele mai populare exemple de astfel de metodă de comprimare a datelor este GZIP . Permite transmiterea eficientă a datelor și a contribuit în mod semnificativ la transformarea internetului într-un mediu de comunicații global viabil.

Ce este compresia GZIP?

GZIP, prescurtare de la GNU Zip , este cea mai populară metodă de comprimare a datelor fără pierderi de pe web. Vă permite să reduceți dimensiunea paginilor HTML, a foilor de stil și a scripturilor site-ului dvs.

Pe lângă faptul că este un algoritm de compresie a datelor, GZIP este, de asemenea, o extensie de fișier ( .gz ) și un software utilizat pentru comprimarea/decomprimarea fișierelor.

Se bazează pe algoritmul DEFLATE, care este un amestec de codificare LZ77 și algoritmi de codare Huffman.

O ilustrare a modului în care compresia GZIP se bazează pe algoritmul DEFLATE
Compresia GZIP se bazează pe algoritmul DEFLATE

Un compresor GZIP preia un set de date brute și le comprimă fără pierderi. Datele brute pot fi de la orice tip de fișier, dar GZIP funcționează cel mai bine cu elemente bazate pe text (de exemplu, HTML, CSS, JS).

Următoarea secțiune acoperă cum funcționează compresia GZIP în profunzime.

Cum comprimă GZIP datele

O ilustrare aproximativă a modului în care funcționează compresia GZIP
O ilustrare aproximativă a modului în care funcționează compresia GZIP

Pentru început, compresorul GZIP rulează algoritmul de compresie LZ77 pe datele brute pentru a elimina redundanțele. Acest algoritm funcționează prin găsirea de modele repetate într-o fereastră glisantă predefinită (o mică secțiune a datelor brute).

Apoi înlocuiește toate șirurile repetate cu tupluri pentru a comprima datele brute.

O ilustrare a algoritmului de codificare LZ77
O ilustrare a algoritmului de codificare LZ77

În exemplul de mai sus, dimensiunea ferestrei glisante are doar 13 caractere (13 octeți). Cu toate acestea, compresia GZIP poate folosi o dimensiune maximă a ferestrei glisante de 32 KB (32.768 de octeți). Dimensiunea ferestrei glisante joacă un rol cheie în performanța compresiei LZ77.

După comprimarea datelor brute cu algoritmul LZ77, compresorul GZIP utilizează apoi algoritmul de codare Huffman pentru a le comprima în continuare. Face acest lucru atribuind caracterelor care apar mai frecvent cel mai mic număr de biți, în timp ce atribuie caracterelor rare cel mai mare număr de biți.

Această tehnică este ca cea folosită în codul Morse, în care literele care apar mai frecvent în limba engleză obțin cele mai scurte secvențe.

Pentru a înțelege cum funcționează algoritmul de codare Huffman, luați în considerare cuvântul BOOKKEEPER . Are 10 caractere, dar are doar 6 caractere unice. Acest cuvânt are un amestec bun de litere simple, duble și triple.

Aproape toate site-urile web folosesc codificarea caracterelor UTF-8 pentru a reprezenta literele și simbolurile. Fiecare caracter ASCII din UTF-8, care include și alfabetul englez, folosește 1 octet (8 biți).

Cuvântul „BOOKKEEPER” are multe litere care se repetă
Cuvântul „BOOKKEEPER” are multe litere care se repetă

Un șir de 10 caractere precum BOOKKEEPER va necesita 10 octeți (80 de biți) de memorie. Puteți vedea că conține 1 apariție a literelor B , P , R , 2 apariții a literelor O și K și 3 apariții a literei E .

Algoritmul de codare Huffman folosește aceste cunoștințe pentru a comprima fără pierderi șirul. Face acest lucru prin generarea unui arbore binar cu fiecare literă unică ca o frunză.

Literele cu cea mai mică frecvență (de exemplu B , P , R ) se vor găsi în partea de jos a arborelui, în timp ce cele care apar frecvent (ex. E , O , K ) se vor găsi în mod ideal în vârf.

Cel mai de sus nodul din arbore este rădăcina , iar valoarea sa este egală cu numărul total de caractere din șir.

Arborele Huffman pentru cuvântul „BOOKKEEPER”
Arborele Huffman pentru cuvântul „BOOKKEEPER”

După generarea arborelui Huffman, tuturor săgeților de ramificare stângă și ramificație dreaptă li se dau 0 și, respectiv, 1 numere. Puteți genera apoi codul Huffman pentru orice caracter, urmărind calea de la rădăcină la frunză și unind toate 0 și 1 s.

Codurile Huffman sunt coduri binare unice pentru fiecare personaj
Codurile Huffman sunt coduri binare unice pentru fiecare personaj

Puteți observa că literele cu cea mai mare frecvență au coduri Huffman cu cele mai mici dimensiuni de biți.

Notă: Algoritmul de codare Huffman poate genera coduri binare alternative utilizând o strategie de ordonare diferită pentru caractere cu aceleași frecvențe. Cu toate acestea, dimensiunea totală a șirului codificat va rămâne aceeași.

Un cuvânt de 80 de biți codificat ca șir de 25 de biți
Un cuvânt de 80 de biți codificat ca șir de 25 de biți

Aceasta este o reducere de 68,75% a memoriei necesare pentru stocarea cuvântului original.

Utilizarea arborelui Huffman cu convenția 0 / 1 generează coduri binare care satisfac proprietatea prefixului. Se asigură că codul Huffman al oricărui caracter specific nu este un prefix al codului oricărui alt caracter, ceea ce facilitează decodarea șirului codificat folosind arborele Huffman. Acesta joacă un rol principal în viteza de decompresie GZIP.

La fel ca în cuvântul de mai sus, compresorul GZIP folosește algoritmul de codare Huffman pentru a optimiza și mai mult tuplurile generate de algoritmul LZ77. Rezultă fișiere foarte comprimate cu extensia .gz.

Dacă sunteți interesat să aflați mai multe despre cum funcționează GZIP, consultați acest videoclip pentru o prezentare generală rapidă.

Cât de bună este compresia GZIP?

De obicei, GZIP atinge un raport de compresie de aproximativ 70% pentru fișierele mici, dar poate ajunge până la 90% pentru materialele mai mari bazate pe text.

Comparație a ratelor de compresie GZIP pentru diferite biblioteci CSS și JS
Ratele de compresie GZIP pentru unele biblioteci CSS și JS populare

În tabelul de mai sus, puteți vedea că comprimarea fișierelor minimizate cu GZIP le poate reduce și mai mult dimensiunea.

Notă: puteți comprima orice tip de fișier cu GZIP, dar pentru materialele deja comprimate cu alte metode (de exemplu, imagini, videoclipuri), nu va reprezenta nicio economie. Uneori, poate chiar să mărească dimensiunea fișierului.

Puterea unui algoritm de compresie nu depinde doar de raportul său de compresie, ci și de cât de rapid și eficient poate comprima și decomprima datele. Acolo GZIP excelează în majoritatea cazurilor de utilizare.

Deoarece GZIP se decomprimă rapid folosind un algoritm de streaming, este o potrivire excelentă pentru protocoalele web în care viteza este esențială. În plus, GZIP utilizează resurse minime atât pentru comprimarea, cât și pentru decomprimarea datelor, făcându-l ideal atât pentru servere, cât și pentru clienți.

Performanța de compresie a brotli vs bzip2 vs GZIP vs xz (Sursa: OpenCPU)
Performanța de compresie a brotli vs bzip2 vs GZIP vs xz (Sursa: OpenCPU)

Graficele de mai sus compară performanța de compresie a algoritmilor de compresie brotli , bzip2 , gzip și xz . GZIP pierde în testul raportului de compresie cu o marjă ușoară, dar pentru viteze de compresie și decompresie, bate concurența definitiv.

Privind graficul vitezei de compresie, putem concluziona că GZIP este ideal pentru compresia în timp real în serverele HTTP și alte fluxuri de date de pe web. Având în vedere toate avantajele sale în avansarea web, IETF a ratificat GZIP ca unul dintre cele trei formate standard pentru compresie în HTTP/1.1.

Notă: O abstractizare a bibliotecii de compresie a GZIP numită zlib este utilizată în multe sisteme de operare populare (Linux, macOS, iOS) și console de jocuri moderne (PlayStation 4, Wii U, Xbox One). Este, de asemenea, folosit în formatul de fișier PNG fără pierderi pentru comprimarea imaginilor.

6 Avantaje ale compresiei GZIP

Să aruncăm o privire mai atentă la cele mai importante avantaje ale compresiei GZIP.

Oferă un raport de compresie decent

După cum sa discutat anterior, GZIP nu are cel mai bun raport de compresie în comparație cu concurența. Dar nici nu este atât de departe de ei. De obicei, vă poate ajuta să reduceți dimensiunea resurselor bazate pe text cu 70-90%.

Compresie și decompresie super rapidă

Pentru vitezele de compresie și decompresie a datelor, GZIP este câștigătorul clar. Este foarte de dorit pentru compresia din mers pe serverele HTTP și alte fluxuri de date.

Necesită foarte puțină memorie

GZIP lasă o amprentă de memorie minimă, făcându-l potrivit pentru servere și sisteme cu capacitate de memorie limitată. Prin urmare, îl veți găsi susținut chiar și de cei mai ieftini furnizori de găzduire web.

Nu se extinde prea mult chiar și în cele mai grave cazuri

Algoritmii de comprimare a datelor fără pierderi precum GZIP au o limită strictă dincolo de care nu pot comprima datele.

În mod obișnuit, acest lucru se întâmplă atunci când resursa este deja bine comprimată sau dacă este mică și costul general pentru adăugarea dicționarului GZIP este mai mare decât economiile de compresie. Putem atribui acest fenomen unui concept numit codificare entropică. GZIP este foarte rezistent la acest efect.

Liber de utilizat și open source

GZIP a fost creat în primul rând ca un înlocuitor gratuit, cu sursă deschisă, pentru programul brevetat de comprimare utilizat în sistemele Unix timpurii. Astfel, nu este grevat de niciun brevet și poate fi folosit în mod liber de oricine.

Se bucură de suport universal

Potrivit W3Techs, compresia GZIP este folosită de 82% din toate site-urile web pe care le urmăresc, ceea ce îl face cel mai utilizat algoritm de compresie de pe web.

GZIP este acceptat de aproape toate serverele și clienții. Indiferent de serverul pe care vă găzduiți site-ul, îl puteți accelera activând GZIP pe acesta.

Avertismente GZIP în instrumentele de testare a vitezei site-ului

Pe lângă minificare, activarea GZIP este una dintre cele mai simple și mai eficiente optimizări ale vitezei pe care le puteți implementa pe site-ul dvs. web.

Este, de asemenea, una dintre cele mai simple moduri de a optimiza WordPress. În ciuda acestui fapt, multe site-uri WordPress încă nu îl folosesc.

Când vizitați un site web, browserul dvs. verifică dacă serverul web are GZIP activat, verificând pentru content-encoding: gzip . Dacă antetul există, acesta preia fișierele comprimate, le decomprimă și apoi vă oferă automat fișierele mai mici.

Antetul de răspuns „content-encoding: gzip”.
Antetul de răspuns „content-encoding: gzip” din Chrome DevTools

Dacă browserul nu detectează antetul de răspuns GZIP, descarcă fișierele necomprimate. În cele mai multe cazuri, diferența între vitezele de încărcare a paginii poate fi de mai multe secunde. Prin urmare, dacă nu aveți GZIP activat, veți vedea avertismente în instrumentele de testare a vitezei site-ului.

Avertisment GZIP în Google PageSpeed ​​Insights / Lighthouse

Google PageSpeed ​​Insights afișează un avertisment atunci când nu aveți nicio compresie de text activată pe site-ul dvs. web.

Notă: Google PageSpeed ​​Insights și Google Lighthouse au fost două instrumente separate de testare a performanței site-ului web. Au lucrat independent unul de celălalt până în 2018, când Google a actualizat PageSpeed ​​Insights pentru a utiliza Lighthouse ca motor de analiză. Prin urmare, PageSpeed ​​Insights și Lighthouse sunt una și aceeași acum.

Avertismentul „Activați compresia textului” în Google PageSpeed ​​Insights
Avertismentul „Activați compresia textului” în Google PageSpeed ​​Insights

În exemplul de site de mai sus, comprimarea resurselor bazate pe text poate reduce greutatea paginii cu peste 78% și poate accelera timpul de încărcare a paginii cu 2,1 secunde .

Notă: PageSpeed ​​Insights se bazează pe anteturile de răspuns returnate browserului de către server. Uneori, poate afișa un avertisment fals chiar și atunci când aveți compresia GZIP activată. Poate fi din cauza rulării testului de viteză pe o mașină care utilizează un server proxy intermediar sau un software de securitate. Acestea pot interfera cu descărcarea fișierelor comprimate de pe servere externe.

Avertisment GZIP în GTmetrix

GTmetrix afișează un avertisment dacă site-ul dvs. web nu oferă resurse bazate pe text comprimat. La fel ca Google PageSpeed ​​Insights, vă va arăta și posibilele economii pe care le puteți realiza.

Avertisment „Activați compresia” în GTmetrix
Avertisment „Activați compresia” în GTmetrix

Notă: GTmetrix își actualizează algoritmul de testare a vitezei pentru a înlocui vechile biblioteci PageSpeed ​​Insights și YSlow cu cele mai recente valori Google Lighthouse. Vă puteți aștepta ca avertismentul de compresie GZIP să fie similar cu cel afișat de Lighthouse.

Avertisment GZIP în Pingdom Tools

Pingdom Tools lansează un avertisment simplu pentru a comprima componentele site-ului dvs. cu GZIP.

Avertisment „Comprimați componente cu GZIP” în Pingdom Tools
Avertisment „Comprimați componente cu GZIP” în Pingdom Tools

În secțiunea de descriere, Pingdom Tools vă oferă și câteva statistici despre importanța GZIP. Fasole rece!

Avertisment GZIP în WebPageTest

WebPageTest afișează un avertisment în fila de evaluare a performanței dacă detectează că răspunsurile compresibile nu sunt difuzate în cel mai optimizat mod.

Avertisment „Utilizați compresia GZIP” în WebPageTest
Avertisment „Utilizați compresia GZIP” în WebPageTest

WebPageTest va da, de asemenea, un scor gradat pentru a arăta cât de grav este un avertisment. De exemplu, evaluează avertismentul de mai sus cu 23 din 100, ceea ce înseamnă că ar trebui să îl remediați cu prioritate.

Cum să verificați dacă compresia GZIP este activată

Antetul Accept-Encoding: gzip, deflate HTTP este acceptat efectiv de toate browserele moderne. Prin urmare, majoritatea gazdelor web, inclusiv Kinsta, activează implicit compresia GZIP pe toate serverele lor.

Când serverele web văd acest antet trimis de un browser, ele recunosc compatibilitatea browserului pentru GZIP și răspund cu un răspuns HTTP comprimat folosind content-encoding: gzip .

Dar dacă utilizați un alt furnizor de găzduire WordPress sau dacă doriți doar să confirmați dacă site-ul dvs. web servește corect conținut comprimat GZIP, verificați întotdeauna dacă este activat.

Mai jos sunt câteva modalități simple de a verifica compresia GZIP.

1. Instrumente online de testare a compresiei GZIP

Utilizarea unui instrument online este cea mai simplă modalitate de a verifica dacă compresia GZIP este activată pe site-ul dvs. web. Recomand să utilizați instrumentele gratuite Verificare compresie GZIP sau Test de compresie HTTP. Pur și simplu introduceți adresa URL a site-ului dvs. și apăsați butonul Verificare sau Testare .

Ambele instrumente online vă vor arăta un scurt raport despre dacă GZIP este sau nu activat și cantitatea de transfer de date pe care ați salvat-o (sau puteți salva) prin difuzarea adresei URL de testare cu compresia GZIP activată.

Primul instrument vă va arăta și alte informații relevante, cum ar fi tipul de server al site-ului dvs. web, tipul de conținut și timpul de compresie.

Testarea paginii de pornire a Kinsta cu instrumentul Verificare compresie GZIP
Testarea paginii de pornire a Kinsta cu instrumentul Verificare compresie GZIP
Testarea Kinsta.com cu instrumentul de testare a compresiei HTTP
Testarea Kinsta.com cu instrumentul de testare a compresiei HTTP

Trebuie să rețineți că optimizarea GZIP nu se oprește doar la pagina dvs. web, ci include și elementele sale statice bazate pe text, cum ar fi foile de stil, scripturile și fonturile. Dacă utilizați un CDN pentru a difuza aceste materiale, atunci trebuie să vă asigurați că CDN-ul le deservește și cu compresia GZIP activată.

Cele mai multe CDN-uri moderne, cum ar fi Cloudflare, Kinsta CDN, KeyCDN și CloudFront acceptă compresia GZIP. Puteți testa materialele deservite de CDN pentru compresia GZIP prin conectarea directă la materiale.

Test de compresie GZIP pentru activele găzduite de un CDN
Test de compresie GZIP pentru activele găzduite de un CDN

În raportul de mai sus, puteți vedea că Kinsta CDN folosește motorul KeyCDN, care este un CDN de tragere tradițional. Dacă utilizați Kinsta pentru a vă găzdui site-ul WordPress, nu trebuie să vă faceți griji cu privire la compresia GZIP, deoarece este activată în mod implicit.

2. Antetul de răspuns HTTP „codificarea conținutului: gzip”.

A doua modalitate de a verifica dacă un site web furnizează conținut comprimat GZIP este prin verificarea content-encoding: gzip .

V-ați săturat de suport pentru găzduire WordPress de nivel 1 subpar, fără răspunsuri? Încercați echipa noastră de asistență de clasă mondială! Verificați planurile noastre

Puteți deschide Chrome DevTools sau Firefox Developer Tools și căutați acest antet de răspuns în secțiunea Rețea .

Am arătat deja cum arată în Chrome DevTools mai devreme. Iată cum arată în Firefox Developer Tools.

Antetul „content-encoding: gzip” din Firefox Developer Tools
Antetul „content-encoding: gzip” din Firefox Developer Tools

De asemenea, puteți activa opțiunea „Utilizați rânduri mari de solicitare” din panoul de setări Chrome DevTools pentru a vedea atât dimensiunea originală, cât și cea comprimată a paginii. După cum puteți vedea mai jos, dimensiunea paginii originale s-a redus de la 118 KB la doar 22,9 KB după comprimarea acesteia cu GZIP.

Vedeți dimensiunile paginilor comprimate și necomprimate în Chrome Devtools
Vedeți dimensiunile paginilor comprimate și necomprimate în Chrome Devtools

3. Instrumente de testare a vitezei paginii web

Majoritatea instrumentelor de testare a vitezei site-ului vă vor avertiza că nu utilizați compresie precum GZIP pentru a vă difuza paginile web. Mulți cititori care ajung la acest articol vin probabil din cauza acestor avertismente GZIP, dintre care multe le-am discutat deja mai sus în profunzime.

Avertismente GZIP în diverse instrumente de testare a vitezei paginilor web
Avertismente GZIP în diverse instrumente de testare a vitezei paginilor web

Puteți utiliza instrumente precum PageSPeed Insights, GTmetrix, Pingdom Tools și WebPageTest pentru a verifica dacă aveți compresia GZIP activată pe site-ul dvs. WordPress.

Cum să activați compresia GZIP

Dacă nu aveți compresia GZIP activată pe serverul dvs. web, există multe modalități de a o activa. Metoda exactă depinde de serverul web pe care îl utilizați pentru a vă găzdui site-ul.

Important: ca întotdeauna, faceți o copie de rezervă a fișierelor de configurare a site-ului și a serverului înainte de a le edita.

Activați GZIP cu un plugin WordPress

Cea mai ușoară modalitate de a activa compresia GZIP pe site-ul dvs. WordPress este prin utilizarea unui plugin de cache sau de optimizare a performanței.

De exemplu, dacă vă găzduiți site-ul WordPress pe serverul web Apache, W3 Total Cache include o opțiune pentru a activa compresia GZIP în panoul său de setări Browser Cache .

De asemenea, WP Rocket vă permite să adăugați automat reguli de compresie GZIP. Aceste pluginuri permit compresia GZIP adăugând modulul mod_deflate al Apache la fișierul .htaccess.

Activarea compresiei GZIP în W3 Total Cache
Activarea compresiei GZIP în W3 Total Cache

Pluginurile WordPress necesită permisiuni pentru a modifica fișierele de pe serverul dvs. web. Dacă nu au permisiunile potrivite, atunci vor eșua sau vă vor afișa o eroare.

În astfel de cazuri, trebuie să contactați furnizorul dvs. de găzduire sau să modificați manual fișierele de configurare ale serverului dvs. web folosind fragmentele de cod de mai jos.

Notă: Kinsta și-a optimizat platforma pentru înaltă performanță, fiabilitate și securitate. Aceasta include, de asemenea, activarea compresiei GZIP în mod implicit pentru toate planurile sale de găzduire.

Deoarece pluginurile de stocare în cache de la terțe părți pot provoca conflicte cu optimizările interne ale performanței Kinsta, Kinsta nu le permite majoritatea pe serverele sale. Pentru mai multe informații, puteți vedea lista completă a pluginurilor interzise Kinsta.

Activați GZIP pe serverul web Apache

Potrivit Netcraft, Apache deservește mai multe site-uri active decât orice alt server web utilizat în prezent. Este, de asemenea, unul dintre cele două servere web recomandate de WordPress.

Pentru a activa compresia GZIP pe serverele Apache, trebuie să utilizați modulele sale mod_filter și mod_deflate și să le configurați corespunzător cu directivele potrivite. Ei vor direcționa Apache să comprima ieșirea serverului înainte de a le trimite clienților prin rețea.

Aveți două opțiuni pentru a edita configurațiile serverului Apache în funcție de nivelul de acces pe care îl aveți:

  1. Dacă puteți accesa fișierul de configurare a serverului principal (numit de obicei httpd.conf ), vi se recomandă să îl utilizați pentru a configura Apache, deoarece fișierele .htaccess pot încetini Apache.
  2. Dacă nu puteți accesa fișierul de configurare a serverului principal, ceea ce este de obicei cazul cu majoritatea furnizorilor de găzduire partajată WordPress, atunci trebuie să configurați Apache folosind fișierul .htaccess .

Prima opțiune este strict pentru administratori de sistem, deoarece furnizorii de găzduire rar vă permit să editați fișierul de configurare a serverului principal. Explicarea modului de a proceda astfel nu intră în domeniul de aplicare al acestui articol. Pentru a începe, puteți consulta exemplele de configurații ale serverului Apache partajate de proiectul HTML5 Boilerplate și documentația Apache.

A doua opțiune este ideală pentru majoritatea proprietarilor de site-uri WordPress, deoarece mulți furnizori de găzduire partajată vă permit să editați fișiere .htaccess .

Pentru a începe, utilizați SFTP sau managerul de fișiere online al gazdei dvs. pentru a găsi fișierul .htaccess în directorul rădăcină al site-ului dvs. WordPress. Apoi adăugați fragmentul de cod de mai jos.

Important: Asigurați-vă că modulul mod_filter este activ pe serverul dvs. Majoritatea gazdelor web îl au activat în mod implicit, dar dacă nu este, directiva AddOutputFilterByType nu va funcționa și poate genera o eroare HTTP 500. Puteți verifica jurnalele de erori ale serverului dvs. dacă aveți probleme după adăugarea fragmentului de cod de mai jos.

 <IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for ancient browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>

Adaugă codul de mai sus numai după directivele existente ale fișierului tău .htaccess . Salvați fișierul și apoi verificați dacă activează compresia GZIP pe serverul dvs.

Exemplu de fișier Apache .htaccess după activarea compresiei GZIP
Exemplu de fișier Apache .htaccess după activarea compresiei GZIP

Serverul dvs. web ar trebui să ofere acum fișiere comprimate pentru toate extensiile de fișiere enumerate mai sus. Puteți confirma acest lucru utilizând oricare dintre metodele menționate anterior.

Dacă doriți să vă asigurați că proxy-urile și software-ul de securitate de pe partea clientului nu interferează cu compresia GZIP, puteți înlocui fragmentul de cod de mai sus cu cel de mai jos.

 <IfModule mod_deflate.c> # force compression for clients that mangle 'Accept-Encoding' request headers <IfModule mod_setenvif.c> <IfModule mod_headers.c> SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding </IfModule> </IfModule> # compress all output with one of the following file extensions <IfModule mod_filter.c> AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/geo+json" \ "application/vnd.ms-fontobject" \ "application/wasm" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/eot" \ "font/opentype" \ "font/otf" \ "font/ttf" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "text/cache-manifest" \ "text/calendar" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/markdown" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" </IfModule> # define and map media types to their appropriate encoding type # Using SVG format (Scalable Vector Graphics) is highly recommended to # load logos, icons, text, and simple images. You can compress .SVG files # further using GZIP to create .SVGZ files. However, most browsers don't # know that they need to decompress them first if they're not served # without an appropriate 'content-encoding' HTTP response header. Thus, # these images wouldn't show up in the browser. Hence, this module. <IfModule mod_mime.c> AddType image/svg+xml svg svgz AddEncoding gzip svgz </IfModule> </IfModule>

Puteți afla mai multe despre toate directivele utilizate aici, accesând depozitul de coduri și urmând toate resursele legate acolo.

Activați GZIP pe serverul web Nginx

Conform Netcraft, Nginx este cel mai folosit server web de computerele orientate către web. Dacă tendința actuală continuă, în curând va depăși Apache pentru a deveni cel mai folosit server web de site-urile active. Chiar și Kinsta folosește Nginx pentru a-și alimenta soluțiile de găzduire optimizate pentru performanță pentru WordPress.

Puteți activa compresia GZIP pe serverul dvs. web Nginx utilizând directivele definite în modulul ngx_http_gzip_module.

Pentru a începe, adăugați directivele de mai jos în fișierul dvs. nginx.conf . De obicei, puteți găsi acest fișier în locația /etc/nginx/nginx.conf a serverului dvs.

 # enables GZIP compression gzip on; # compression level (1-9) # 6 is a good compromise between CPU usage and file size gzip_comp_level 6; # minimum file size limit in bytes to avoid negative compression outcomes gzip_min_length 256; # compress data for clients connecting via proxies gzip_proxied any; # directs proxies to cache both the regular and GZIP versions of an asset gzip_vary on; # disables GZIP compression for ancient browsers that don't support it gzip_disable "msie6"; # compress outputs labeled with the following file extensions or MIME-types # text/html MIME-type is enabled by default and need not be included gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/vnd.ms-fontobject application/wasm application/x-web-app-manifest+json application/xhtml+xml application/xml font/eot font/otf font/ttf image/bmp image/svg+xml text/cache-manifest text/calendar text/css text/javascript text/markdown text/plain text/xml text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

Dacă site-ul dvs. deservește fișiere JS și CSS mari, atunci puteți crește dimensiunea tamponului utilizată pentru compresie adăugând următoarea directivă la fișierul dvs. nginx.conf :

 # sets the 'number' and 'size' of buffers for GZIP compression # default buffer size is 4K or 8K depending on the platform gzip_buffers 16 8k;

Nu uitați să reîncărcați Nginx după salvarea fișierului nginx.conf .

 sudo service nginx reload

În cele din urmă, ar trebui să testați pentru a vedea dacă serverul dvs. are compresia GZIP activată. Puteți consulta documentația Nginx pentru o listă actualizată a tuturor directivelor ngx_http_gzip_module .

Activați GZIP pe serverul web IIS

Internet Information Services (IIS) de la Microsoft este al treilea cel mai popular server web utilizat în prezent. IIS este implementat în principal în mediile de întreprindere care rulează pe Windows, în special pentru configurarea serverelor intranet și extranet specifice companiei.

Este rar folosit pentru a găzdui site-uri WordPress din cauza diverselor probleme de compatibilitate.

Cu toate acestea, dacă vă aflați într-una dintre acele situații rare în care trebuie să activați compresia GZIP pe IIS, puteți consulta documentația Microsoft pentru a începe. De asemenea, s-ar putea să găsiți util acest fir Stack Overflow.

Alternative la compresia GZIP

Lumea comprimării datelor pe web avansează mereu. Cu dimensiunea medie a paginii în creștere constantă, tehnologia web încearcă și ea să ajungă din urmă pentru a face transferul de date pe web mai eficient.

Creșterea dimensiunii paginii în timp (Sursa: HTTPArchive)
Creșterea dimensiunii paginii în timp (Sursa: HTTPArchive)

Un nou algoritm de compresie a câștigat popularitate pe scară largă în ultimii câțiva ani: Brotli. Comprimarea fonturilor web WOFF2 a fost obiectivul principal al lui Brotli inițial, dar de atunci s-a extins pentru a suporta compresia pentru orice tip de date.

Brotli comprimă datele mai bine decât GZIP, dar necesită mult mai mult timp și resurse pentru a comprima datele. Cu toate acestea, timpul său de decompresie este comparabil cu cel al GZIP, deși este încă puțin mai lent.

Suport Brotli în diferite browsere
Suport Brotli în diferite browsere

Majoritatea browserelor acceptă Brotli astăzi, dar utilizarea acestuia pe site-urile WordPress este încă oarecum complicată. Trebuie să vă găzduiți site-ul la un furnizor de găzduire care acceptă Brotli sau vă permite să instalați biblioteca Brotli. Majoritatea gazdelor WordPress gestionate nu îl acceptă încă, dar dacă utilizați un CDN, cum ar fi Cloudflare sau KeyCDN, îl puteți activa cu ușurință.

Brotli arată o mare promisiune pentru elementele statice de compresie. Akamai a publicat un articol detaliat care compară Brotli cu GZIP. You can check it out to learn more about Brotli.

Ready to speed up your site? ️ Enabling GZIP compression on your web server is one of the simplest and most efficient ways to achieve that. Learn how with this step-by-step walkthrough ️ Click to Tweet

rezumat

A well-optimized web is great for everyone. Users love snappier websites, website owners love the reduced hosting charges, and web hosts love the optimization achieved on their servers. Compression techniques like GZIP are one of the best ways to speed up page load times for your visitors.

WordPress site owners can speed up their sites instantly by enabling GZIP compression. Kinsta enables it by default on all its servers, but for others, this article covers multiple ways to enable GZIP compression on various web servers.

Speed is critical for any website. Just compress!