Optimalisering av WordPress Lasthastighet Med header.php & .htaccess

Nettstedets lasthastighet betyr mye for hver blogg / nettside, spesielt for personer med delt hosting - som er den billigste tilgjengelige hosting-tjenesten. Her er noen .htaccess og header.php triks for å øke nettstedet ditt lasting hastighet med 50-70%


Web-ytelse blir stadig mer oppmerksomhet fra webutviklere og er et av de heteste temaene i webutvikling. Først og fremst er lastingshastigheten mer enn en funksjon. Hastighet er den viktigste funksjonen. Hvis nettstedet ditt eller bloggen er treg, vil folk ikke bruke den.

Hvilken hastighet betyr for internettgiganter:

  • For Google - 500 millisekunder ekstra belastningstid forårsaket 20% færre søk
  • For Yahoo - 400 millisekunder ekstra belastningstid forårsaket en 5-9% økning i antall personer som klikket "tilbake" før siden selv lastet inn
  • For Amazon - 100 millisekunder ekstra belastningstid resulterte i en 1% nedgang i salget

Google, i sin pågående innsats for å gjøre nettet raskere, blogget at "vi har bestemt oss for å ta hensyn til nettstedets hastighet i søkeresultatene."

Så et tregere nettsted vil til og med redusere søkemotorrangeringen din også.

Dermed er lastingshastigheten mye viktig. CDN (Content Delivery System) er ganske bra for dette formålet, men i liten grad, og gode CDN-leverandører er litt kostbare.

Den gode nyheten er at noen av de viktigste fartoptimaliseringene enkelt kan gjøres med enkle .htaccess triks. Disse kan gjøre at nettsiden lastes raskere ved å komprimere innhold og muliggjøre nettleservakking, og følg beste praksis for å øke hastigheten på ditt nettsted fra Yahoo! S eksepsjonelle ytelsesteam og koster ikke en cent.


Trinn 1 Gzip-filkomprimering

Komprimering reduserer responstidene ved å redusere størrelsen på HTTP-responsen.

Det er verdt å gzip HTML-dokumentene dine, skript og stilark. Faktisk er det verdt å komprimere tekstrespons, inkludert XML og JSON.

Bilde- og PDF-filer bør ikke gzipped fordi de allerede er komprimert. Prøver å gzip dem ikke bare avfall CPU, men kan potensielt øke filstørrelser.

Filkomprimering sparer også litt båndbredde.

Med .htaccess

  • For Apache-servere

    mod_pagespeed er en Apache-modul utviklet av Google, og kommandobestemmelsen kan brukes akkurat som andre moduler.

    For tiden støtter bare GoDaddy og DreamHost mod_pagespeed modul, så hvis du er vert for dem, bare kopier og lim inn følgende kode til din .htaccess fil:

      ModPagespeed på # ved hjelp av kommandoer, filtre etc 

    Mange av dere kan være vert for andre hosting-leverandører som ikke støtter mod_pagespeed modul.

    Du kan bruke mod_deflate modul (Apache 1.3x brukt mod_gzip men siden Apache 2x mod_deflate benyttes)

      AddOutputFilterByType DEFLATE tekst / html tekst / vanlig tekst / xml applikasjon / xml application / xhtml + xml tekst / css tekst / javascript applikasjon / javascript program / x-javascript 
  • For Nginx-servere

    Hvis du er vert på en Nginx webserver, kopier følgende til din .htaccess for å aktivere gzip-komprimering.

     server gzip on; gzip_types tekst / html tekst / css søknad / x-javascript tekst / vanlig tekst / xml bilde / x-icon; 

Med header.php

Hvis serveren din ikke støtter mod_deflate eller mod_gzip Du kan bruke dette PHP-skriptet for gzip-komprimering som fungerer på både Apache og Nginx

Bare kopier dette til temaet ditt header.php

 

Nedenfor er linjediagrammet som viser nettsiden min lastingshastighet uten og med gzip-komprimering.


Trinn 2 Deaktiver ETags

ETags (Entity Tags) er en mekanisme som webservere og nettlesere bruker til å bestemme om komponenten i nettleserens cache samsvarer med den opprinnelige serveren. Etags legges til for å gi en mekanisme for validering av enheter som er mer fleksible enn datoen for siste modifikasjon. Et ETag er en streng som unikt identifiserer en bestemt versjon av en komponent. Begrensningene i dette formatet er at strengen er sitert. Opprinnelsesserveren spesifiserer komponentens ETag ved hjelp av ETag-responskopien.

For å deaktivere ETags, lim dette inn i din .htaccess fil

 Header unset ETag FileETag None

Trinn 3 Bruk Browser Caching

Med nettleservaching instruerer vi eksplisitt nettlesere å henge på bestemte filer i en bestemt tidsperiode. Når filen er nødvendig igjen, skal nettleseren trekke fra sin lokale cache i stedet for å be om den fra serveren igjen.

Kjører et nettsted uten å cache på plass, gir så mye fornuft som å kjøre til butikken for et glass vann hver gang du er tørst. Ikke bare er det upraktisk og kortsiktet, det tar mer arbeid!

Browser caching er veldig nyttig for å få tilbake brukere; det vil si at det kan bygge lojale, faste besøkende til deg og sparer mye båndbredde.

En første gangs besøkende på siden din vil gjøre flere HTTP-forespørsler for å laste ned alle webområdets filer, men ved å bruke overskriftene Expires og Cache-Control, får du disse filene cacheable. Dette unngår unødvendige HTTP-forespørsler på etterfølgende sidevisninger.

  • For Apache-servere

    Apache aktiverer gjennom mod_expires og mod_headers moduler.

    De mod_expires Modulen styrer innstillingen av HTTP-overskriften Expires og det maksimale aldersdirektivet for HTTP-header i Cache-Control i serverresponser. Hvis du vil endre Cache-Control-direktiver annet enn maksimal alder, kan du bruke mod_headers modul.

    De mod_headers Modulen gir retningslinjer for å kontrollere og modifisere HTTP-forespørsel og svarhodet. Overskrifter kan slås sammen, erstattes eller fjernes.

    Legg til disse reglene til .htaccess for innstilling utløper overskrifter:

     # BEGIN Utgå overskrifter  ExpiresByType image / jpeg "access pluss 2592000 sekunder" ExpiresByType image / png "access pluss 2592000 sekunder" ExpiresByType image / gif "tilgang pluss 2592000 sekunder" ExpiresByType image / x-ikonet "Access plus 2592000 sekunder" "ExpiresByType applikasjon / x-shockwave-flash" tilgang pluss 2592000 sekunder "ExpiresByType tekst / css" tilgang pluss 604800 sekunder "ExpiresByType tekst / javascript" tilgang pluss 216000 sekunder "ExpiresByType applikasjon / javascript" tilgang pluss 216000 sekunder "ExpiresByType program / javascript "tilgang pluss 216000 sekunder" ExpiresByType tekst / html "tilgang pluss 600 sekunder" ExpiresByType program / xhtml + xml "tilgang pluss 600 sekunder"  # END Expire overskrifter

    .htaccess regler for oppsett av Cache-Control header:

     # BEGIN Cache-Control Headers   Header sett Cache-Control "public"   Header sett Cache-Control "public"   Header sett Cache-Control "privat"   Overskrift sett Cache-Control "privat, må-revalidere"   # END Cache-Control Headers

    Merk:

    1. Det er ikke nødvendig å sette max-age Direktivet med Cache-Control header siden det allerede er satt av mod_expires modul.
    2. må-forlenge betyr at når et svar blir foreldet, må det fornyes det betyr ikke at det må kontrolleres hver gang.
  • For NGINX-servere

    Den tilsvarende .htaccess Innstillinger i Nginx ville se slik ut:

    (Eksempelet nedenfor vil fortelle dine besøkende nettlesere å henge på HTML, CSS, Javascript, bilder og favicon i en time)

     plassering ~ * \. (jpg | png | gif | jpeg | css | js) $ utløper 1t; 

Trinn 4 Reduser MySQL-databasestørrelsen

Siden WordPress 2.6, skjuler WordPress automatisk innlegg under skriving som forblir selv etter at innlegget er lagret som en revisjon i MySQL-databasen. Større database sender også siden belastningstiden høyere. Jeg foreslår at du fjerner revisjonsfunksjonen.

Lim inn følgende til wp-config.php å deaktivere revisjoner:

 define ('WP_POST_REVISIONS', false);

Hvis du bestemmer deg for å beholde revisjonsfunksjonen på deg, kan du også velge å beholde revisjonene i databasen i et fast antall dager, f.eks. 10 dager.


Mer…

  1. Hvis du legger til utløpsrubrikken, påvirker ikke nettsiden for innlasting for et første besøk, men du vil bli overrasket over hvor mye sidenbelastningen er redusert for neste sidevisning / besøk fra en tilbakevendende besøkende.
  2. Spor hvordan nettstedet ditt gjør på: Visning laster antall spørsmål og tid.

    Bare lim inn følgende kode etter copyright-teksten i temaet ditt footer.php:

      spørringer i  sekunder.

Kjenner du eller bruker noen andre metoder for å optimalisere lastetiden på bloggen din / nettsiden? Ikke glem å dele dem ved å kommentere.