Geavanceerde tips

 
Hieronder een aantal tips om uw website-performance aanzienlijk te verbeteren. Enkele tips vergen wel een ingrijpende aanpassing aan de configuratie van uw site en dienen dus niet op de live versie van uw site te worden uitgevoerd, of dan alleen op het moment dat u een mogelijke downtime accepteert. Neem contact op met Greenhost voor instellingen die u niet zelf, via het Cosmos Service Centre of het beheerpaneel van uw CMS, kunt aanpassen.

7 algemene tips voor veel snelheidswinst


Recente softwareversies gebruiken

Zorg ervoor dat u in staat bent altijd de laatste updates te installeren van uw CMS pakket, of zorg ervoor dat uw site automatisch update. Verder kan het verstandig zijn om modules, add-ons of plug-ins die langer dan een jaar niet zijn geüpdatet te verwijderen en/of te vervangen. Voor Magento raden we aan zo mogelijk over te stappen naar de meest recente versie van Magento, zeker wanneer u nog een oudre versie dan 1.8 van het platform gebruikt. Let hierbij wel op dat de modules die u gebruikt ook ondersteund worden door de laatste versie van Magento.

Kijk kritisch naar geïnstalleerde modules

Controleer of u alle modules die u heeft geinstalleerd (bijvoorbeeld via Magento connect) ook werkelijk nodig heeft. Alle modules die u installeert zorgen voor extra overhead en zijn dus een mogelijke bron van vertraging. Bovendien zijn sommige exotische modules vaak niet goed geprogrammeerd of kunnen ze fouten bevatten, waardoor uw webshop minder stabiel wordt. Sommige modules zorgen eventueel voor een performance-winst, maar kunnen ook dubbelop zijn. Als u uw caching goed heeft geconfigureerd (bijvoorbeeld door APC te gebruiken), is het installeren van een extra caching module vaak niet zinvol.

Schakel over op PHP 5.5

Het gebruik van PHP versie 5.5 zal een aanzienlijke snelheidswinst voor uw site betekenen. Hiervoor is een upgrade van Magento naar de nieuwste versie wel noodzakelijk. Oudere versies van Magento ondersteunen namelijk geen PHP 5.5. Neem contact op met Greenhost wanneer u klaar bent om over te stappen op PHP 5.5 en deze optie nog niet verschijnt in het beheer-menu.

Stel mod_deflate in om content te comprimeren

Via de apache module mod_deflate kunt u uw content comprimeren voordat ze naar de browser gaat. Dit kan resulteren in een aanzienlijke snelheidswinst. Voeg de volgende regels toe aan uw .htaccess config bestand (andere verwijzingen naar mod_deflate verwijderen!):

 <IfModule mod_deflate.c>
      # Insert filter on all content
     SetOutputFilter DEFLATE
      # Netscape 4.x has some problems...
     BrowserMatch ^Mozilla/4 gzip-only-text/html
      # Netscape 4.06-4.08 have some more problems
     BrowserMatch ^Mozilla/4\.0[678] no-gzip
      # MSIE masquerades as Netscape, but it is fine
     BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
      # Don't compress images (or gzipped files....)
     SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|gz)$ no-gzip dont-vary
</IfModule>


Stel expiry headers in voor betere cache control

Standaard wordt er geen gebruik gemaakt van browser-caching. Dit kunt u inschakelen via mod_expires. Voeg de volgende configuratieregels toe aan het .htaccess bestand in de root-directory van uw site (andere verwijzingen naar mod_expires verwijderen!):

<IfModule mod_expires.c>
         <FilesMatch \.(png|gif|jpg|js|css|js\.css)$>
             # Enables generation of 'Expires' and 'Cache-Control' headers
             ExpiresActive On
              # Sets default expiration time
             ExpiresDefault "access plus 1 month"
              # Disables entity tags (ETags)
             FileETag None
         </FilesMatch>
</IfModule>


Stel JavaScript aggregatie in

Het samevoegen (aggregate) en kroppen (minifi) van JavaScript-bestanden is bij sites gebouwd met een CMS zoals WordPress of Magento geen overbodige luxe. Magento biedt de mogelijkheid om JavaScript bestanden samen te voegen tot een groter bestand voordat het naar uw browser wordt gezonden. In combinatie met gzip-compressie (stap 7) kan dit tot aanzienlijke snelheidswinst leiden. Voor WordPress of andere CMSpakketten dient u en geschikte plug-in of add-on te vinden.

Gebruik APC als caching mechanisme [geldig tot PHP 5.4]

PHP5.5 heeft standaard al een caching mechanisme aanstaan. Deze optie geldt voor sites die nog met  PHP 5.4 moeten werken (bedenk: een upgrade naar PHP 5.5 geeft snellere resultaten!).

APC (Alternative PHP Cache) is een opcode cacher voor PHP. Deze zorgt ervoor dat vaak aangeroepen PHP scripts door de server in een gecompileerde vorm in het geheugen worden bewaard en dus sneller uitgevoerd kunnen worden. APC kan zorgen voor een substantiële performance boost. Vraag aan Greenhost om de APC extensie te activeren – mits u een minimaal een professional hosting pakket bij ons heeft.

+5 extra [Magento only] tips

Caching en Indexes [Magento only]

U moet bij iedere installatie van Magento altijd caching en indexes aanzetten. Dit kunt u doen door in uw Magento beheer paneel onder system > cache management en system > index management alles aan te vinken en de wijzigingen op te slaan.

Stel een flat catalog category in [Magento only]

In uw Magento beheer paneel kunt u onder system configuration > catalog de optie `Use flat catalog category’ aanvinken. Dit zorgt voor een indexatie van uw product-categorieën. Pas als u een grote webwinkel heeft (minstens 1000 producten), zorgt het aanvinken van `Use flat catalog product’ ook voor snelheidswinst – anders kunt u deze liever uit laten staan. NB: bij oudere versies van Magento < 1.4.x moet u onder Cache Management ook nog klikken op rebuild catalog index.

Vertraging na verloop van tijd? [Magento only]

In Magento versies < 1.4.x zit een bug waardoor het beheer paneel steeds trager gaat functioneren. De workaround voor dit probleem is om met SFTP in te loggen en alles onder de directory /domains/uw/shop/var/cache/* te wissen. Daarmee veegt u de gehele cache schoon. Let er goed op dat u zich in de juiste directory bevindt! Soms kan deze actie ook nuttig zijn als u de indruk heeft dat de frontend trager is geworden.  Het kan geen kwaad, ongeacht de versie van Magento, om de cache van tijd tot tijd te wissen. Vervolgens kunt u via uw Magento beheer paneel onder `Cache management’ en `Index management’ de indexes opnieuw genereren en caches refreshen.

Sla sessies op in de database [Magento only]

Sla sessies op in de MySQL database en niet als bestanden. Dit zorgt voor een snellere afhandeling van sessies. Verander in het bestand app/etc/local.xml de regel:

 <session_save><![CDATA[files]]></session_save>

 


in

 <session_save><![CDATA[db]]></session_save>

Cronjob instellen voor Magento onderhoud [Magento only]

Dit zorgt niet direct voor een snelheidswinst, maar laat Magento automatische onderhoudstaken verrichten. Ga in het Greenhost service center naar het onderdeel `Periodieke taken (crontab)’ en voeg de volgende taak toe die ieder kwartier moet draaien:

/usr/bin/php5 /domains/uwdomein/subdomein/pad-naar-shop-root/cron.php

Als eerste argument geeft u dus het volledige pad naar het cron.php bestandje in uw shop root weer.

Algemene wijsheid: gebruik ook webdeveloper-tools en onze Apache-logs

U kunt eindeloos uw website-installatie blijven tweaken, maar vaak zit slechte performance in een andere hoek. Laadt uw site bijvoorbeeld externe elementen van een andere site? Gebruikt u images met een grotere filesize dan nodig, ingewikkelde database queries in customized PHP code? Zijn er JavaScript errors bij het laden van uw site? Inspecteer kritisch ieder onderdeel van uw website waarbij vooral tools zoals Firebug en varianten als GTmetrix of Firefox Web Developer zeer nuttig zijn.

In het Cosmos Service Centre van Greenhost kunt u onder Hosting – Logs bij `Webserver foutmeldingen’ ook de Apache error logs bekijken, waarin soms nuttige meldingen kunnen staan die mogelijke problemen met uw site aangeven.

Geavanceerd: full page caching voor de poweruser

Ervaren webontwikkelaars kunnen gebruik maken van een zogenaamde full page cache module. Zo’n cache module probeert de laadsnelheid van uw website te verbeteren door niet dynamische elementen eenmalig te genereren en direct naar de browser te zenden. Daarbij moet u vaak zelf nog aangeven welke elementen u wel of niet in zo’n cache wilt hebben. Daarom kan dit proces niet worden geautomatiseerd. Als u zich hier echter in verdiept kunt u op dit vlak nog meer winst boeken. Via een zoekmachine kunt u meerdere full page cache extensies vinden voor Magento. Enkele daarvan zijn gratis.