Svetainės SEO optimizavimas naudojant GZIP glaudinimą yra paprastas ir efektyvus būdas sutaupyti pralaidumo ir pagreitinti jūsų svetainę. Didžioji dalis mano svetainės srauto gaunama iš šiuolaikinių naršyklių ir tiesą pasakius, dauguma mano vartotojų yra gana išmanantys technologijas. Šiuolaikinė naršyklė reikalinga norint mėgautis šiuolaikiniu žiniatinklio turiniu ir šiuolaikišku žiniatinklio greičiu – taigi tai yra „gzip“ kodavimas. Štai kaip jį nustatyti.
Svetainės SEO optimizavimas naudojant GZIP glaudinimą
Prieš pradėdami turėčiau paaiškinti, kas svetainės SEO optimizavimas naudojant GZIP glaudinimą ir kas yra turinio kodavimas. Kai prašote tokio failo http://www.yahoo.com/index.html
, jūsų naršyklė kalbasi su žiniatinklio serveriu. Pokalbis vyksta šiek tiek taip:
- Naršyklė: Ei, GET me /index.html
- Serveris: Gerai, leiskite pažiūrėti, ar index.html guli …
- Serveris: Radau! Štai jūsų atsakymo kodas (200 Gerai) ir aš siunčiu failą.
- Naršyklė: 100KB? Oho … laukiu, laukiu … gerai, tai pakrauta.
Žinoma, faktinės antraštės ir protokolai yra daug oficialesni (stebėkite juos naudodami tiesiogines HTTP antraštes, jei esate taip linkę).
Bet tai pavyko, ir jūs gavote savo failą.
Svetainės SEO optimizavimas naudojant GZIP glaudinimą, Taigi kokia problema?
Na, sistema veikia, bet ji nėra tokia efektyvi. 100 KB yra daug teksto , ir atvirai kalbant, HTML yra nereikalingas. Kiekviena <html>, <table> and <div>
žyma turi beveik tą patį uždarymo žymą. Žodžiai kartojami visame dokumente. Kad ir kaip pjaustytumėte, HTML (ir jo pusbrolis XML ) nėra lieknas.
O koks planas, kai failas per didelis?
Jei svetainės SEO optimizavimas naudojant GZIP suspaudima ir suspausta galėtume nusiųsti .zip failą tiesiai į naršyklę (index.html.zip), o ne paprastą seną index.html, sutaupytume pralaidumo ir atsisiuntimo laiko. Naršyklė galėjo atsisiųsti suspaustą failą, jį išskleisti ir parodyti naudotojui, kurio nuotaika gera, nes puslapis greitai įkeliamas. Pokalbis su serverio serveriu gali atrodyti taip:
- Naršyklė: Ei, ar galiu gauti index.html? Aš paimsiu suspaustą versiją, jei ją turėsite.
- Serveris: Leiskite man rasti failą … taip, jis čia. Ir imsite suspaustą versiją? Nuostabu.
- Serveris: Gerai, radau index.html (200 Gerai), suglaudinu jį ir siunčiu.
- Naršyklė: Puiku! Tai tik 10 KB. Išpakuosiu ir parodysiu vartotojui.
Formulė paprasta: mažesnis failas = greitesnis atsisiuntimas = laimingas vartotojas .
Netikite manimi? „ Yahoo“ pagrindinio puslapio HTML dalis po suspaudimo sumažėja nuo 101 kb iki 15 kb:
(Ne tokios) plaukuotos detalės
Sudėtinga šio mainų dalis yra naršyklė ir serveris, žinantys, kad yra gerai siųsti suspaustą failą. Sutartį sudaro dvi dalys
- Naršyklė siunčia antraštę pasakoja serverį ji priima suspausto turinys (gzip ir Deflate yra du glaudinimo programos):
Accept-Encoding: gzip, deflate
- Serveris siunčia atsakymą, jei turinys yra iš tikrųjų suslėgto:
Content-Encoding: gzip
Jei serveris nesiunčia turinio kodavimo atsakymo antraštės, tai reiškia, kad failas nėra suglaudintas (numatytasis daugelyje serverių). Antraštė „Priimti kodavimą“ yra tik naršyklės užklausa, o ne reikalavimas. Jei serveris nenori siųsti atgal suspausto turinio, naršyklė turi susitaikyti su sunkia įprasta versija.
Serverio nustatymas
„Geros naujienos“ yra tai, kad negalime valdyti naršyklės. Jis siunčia Accept-encoding: gzip, deflate
antraštę arba ne.
Mūsų užduotis yra sukonfigūruoti serverį, kad jis grąžintų suglaudintą turinį, jei naršyklė gali jį tvarkyti, taupydama pralaidumą visiems (ir suteikdama mums laimingą vartotoją).
Jei naudojate IIS, nustatymuose įgalinkite glaudinimą .
„Apache“ įjungti išvesties glaudinimą yra gana paprasta. Prie .htaccess failo pridėkite:
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>
„Apache“ iš tikrųjų turi dvi glaudinimo parinktis:
- „mod_deflate“ yra lengviau nustatyti ir yra standartinis.
- „mod_gzip“ atrodo galingesnis: galite iš anksto suspausti turinį.
Ištuštinimas yra greitas ir veikia, todėl aš jį naudoju; naudokite mod_gzip, jei tai plaukioja jūsų valtimi. Bet kuriuo atveju „Apache“ patikrina, ar naršyklė atsiuntė antraštę „Accept-encoding“ ir grąžina suspaustą arba įprastą failo versiją. Tačiau kai kurioms senesnėms naršyklėms gali kilti problemų (daugiau žemiau) ir yra specialių nurodymų, kuriuos galite pridėti, kad tai ištaisytumėte.
Jei negalite pakeisti .htaccess failo, galite naudoti PHP, kad grąžintumėte suspaustą turinį. Suteikite savo HTML failui .php plėtinį ir pridėkite šį kodą viršuje:
Be PHP :
<? php if (substr_count ($ _ SERVER [‘HTTP_ACCEPT_ENCODING’], ‘gzip’)) ob_start („ob_gzhandler“); else ob_start (); ?>
Mes patikriname antraštę „Priimti kodavimą“ ir grąžiname gzipped failo versiją (kitaip įprastą versiją). Tai beveik kaip sukurti savo žiniatinklio serverį (kaip smagu!). Bet iš tikrųjų pabandykite naudoti „Apache“, kad suspaustumėte išvestį, jei galite jai padėti.
Patikrinkite suspaudimą
Kai sukonfigūravote savo serverį, patikrinkite, ar tikrai pateikiate suspaustą turinį.
- Prisijungę: naudokite internetinį „gzip“ testą, kad patikrintumėte, ar jūsų puslapis yra suspaustas.
Būkite pasirengę stebėtis rezultatais. Pagrindinis „ instacalc“ puslapis sumažėjo nuo 36 tūkst. Iki 10 tūkst. , O tai sumažino 75 proc.
Įspėjimai
Kad ir kaip įdomu tai gali pasirodyti, HTTP glaudinimas nėra tik linksmybės ir žaidimai. Štai į ką reikia atkreipti dėmesį:
- Senesnės naršyklės : Taip, kai kurioms naršyklėms vis tiek gali kilti problemų dėl suspausto turinio (jie sako, kad gali jį priimti, bet tikrai negali). Jei jūsų svetainė tikrai turi dirbti su „Netscape 1.0“ sistemoje „Windows 95“, galbūt nenorėsite naudoti HTTP glaudinimo. „Apache mod_deflate“ turi tam tikrų taisyklių, kaip išvengti suspaudimo senesnėms naršyklėms.
- Jau suspaustas turinys : dauguma vaizdų, muzikos ir vaizdo įrašų jau yra suspausti. Negaiškite laiko jų dar kartą suspausti. Tiesą sakant, jums tikriausiai reikia tik suspausti „didįjį 3“ (HTML, CSS ir „Javascript“).
- CPU apkrova : turinio suspaudimas skrendant sunaudoja procesoriaus laiką ir taupo pralaidumą. Paprastai tai yra puikus kompromisas, atsižvelgiant į suspaudimo greitį. Yra būdų, kaip iš anksto suspausti statinį turinį ir siųsti per suspaustas versijas. Tam reikia daugiau konfigūracijos; net jei tai neįmanoma, produkcijos suspaudimas vis tiek gali būti grynasis laimėjimas. Atsižvelgiant į trumpą žiniatinklio dėmesį, vertanaudoti procesoriaus ciklus, kad naudotojai galėtų greičiau naudotis.
Suspaudimo įgalinimas yra vienas greičiausių būdų pagerinti svetainės našumą. Eikite, nustatykite ir leiskite naudotojams mėgautis pranašumais.