Hoe versnel je een trage website: htaccess

htaccess

In het menu hierboven, bij “En verder / Website” zit een link naar PageSpeed. Een tool van Google waarmee je kan checken hoe snel (of hoe traag) je website laadt in een browser. Voor mijn site was dat reden om daar iets aan te doen. En dat bracht me voornamelijk bij het nut om eens naar .htaccess te kijken. Let op de punt voor htaccess. Die is belangrijk. Het is een speciaal soort bestand dat WordPress (bijvoorbeeld) gebruikt bij het ophalen van een pagina van de server en het genereren van deze pagina zodanig dat een browser er iets mee kan. Het toepassen van htaccess is overigens niet vereist. WordPress kan het ook zonder. De naam staat voluit voor “hypertext access”. In .htaccess zijn allerlei zaken te regelen m.b.t. beveiliging, maar ook m.b.t. browser-caching. Wat beveiliging betreft gebruikt de Wordfence Security plugin htaccess om enkele zaken te regelen. Nee, het verder hier uitvoerig bespreken ga ik niet doen. Dat kunnen andere beter. Maar het heeft ertoe geleid dat ik .htaccess heb uitgebreid met een DEFLATE om broncode te comprimeren, met code om cache-control te manipuleren en iets dergelijks voor de header-expiration.

Refer blocking

En ik vond ergens ook nog iets om wp-content/uploads op mijn site te blokkeren voor adressering ervan vanaf andere websites. Want dit geeft een extra belasting van de server (provider) waarop mijn site draait. Elke afbeelding heeft immers een eigen volledige URL. Als een andere site deze URL in een pagina plakt, dan wordt via de URL de afbeelding opgehaald en op die pagina getoond. Echter, het request passeert eerst de .htaccess van mijn site, als die er is. En als daar een refer blocking is opgenomen, dan wordt de route naar de afbeelding geblokkeerd en wordt het request geweigerd. De afbeelding zal niet worden getoond. Hieronder hoe die refer blocking eruit ziet.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ronputting.nl [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
</IfModule>

De eerste RewriteCond blokkeert alles. De tweede deblokkeert mijn eigen site. Immers, ik wil uiteraard wél mijn eigen wp-content/uploads op mijn eigen pagina’s kunnen tonen. De derde deblokkeert Google. Zodat ook Google iets met mijn wp-content/uploads kan, indien nodig. De RewriteRule tenslotte voert de feitelijke actie uit voor de aangegeven file extensies.

Heeft dit alles nut gehad?

Goede vraag. Een nieuwe analyse van PageSpeed verbeterde de boel met iets van 10%. Niet wereldschokkend, maar alle beetjes helpen. Daarnaast was het ook wel weer leerzaam. Dat ook natuurlijk. Belangrijkste les: wp-content/uploads! Hoe groter hoe trager. Da’s een open deur, maar toch. Bij het uploaden van wp-content/uploads is het bijzonder raadzaam om goed te bedenken wat je ermee wilt en ze bij voorkeur te resizen naar een kleiner formaat. Bijvoorbeeld naar maximaal 1366 x 768 pixels. PageSpeed helpt hierbij door aan te geven welke wp-content/uploads de boel vertragen. En desgewenst kan PageSpeed zelfs een nieuwe set van deze wp-content/uploads genereren en leveren. Je hoeft dan alleen nog maar de oude te vervangen door de nieuwe, kleinere versies. Of: installeer de EWWW Image Optimizer plugin. Deze analyseert alle wp-content/uploads en biedt ook een mogelijkheid om ze te resizen naar kleinere formaten.

Bronnen: deze, en deze en ook nog deze. En wat compressie betreft: lees deze.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.