Optimiser wordpress
Upcoming SlideShare
Loading in...5
×
 

Optimiser wordpress

on

  • 1,121 views

Optimiser Wordpress : présentation préparée pour le Wordpressday Algérie en décembre 2011 par Jean-François VIAL

Optimiser Wordpress : présentation préparée pour le Wordpressday Algérie en décembre 2011 par Jean-François VIAL
La video du screencast : http://vimeo.com/33115346
Licence : CC-By-SA

Statistics

Views

Total Views
1,121
Views on SlideShare
1,118
Embed Views
3

Actions

Likes
0
Downloads
15
Comments
0

2 Embeds 3

http://www.linkedin.com 2
http://www.scoop.it 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Optimiser wordpress Optimiser wordpress Presentation Transcript

  • OptimiserWordPress Day Algérie – Tlemcen – 1er Décembre 2011
  • Un mot sur lauteur : Jean-François VIAL (Jeff) Montpellier, FranceJeff Indépendant @ Modulaweb Spécialiste WordPress, Zimbra et logiciels libres Développeur PHP, Python, JS essentiellement Contact sur http://about.me/Jeff_ QRCode
  • Pourquoi ?Il y a plein de bonnes raions : Confort de visite Baisser la charge du serveur À cause de notre ami Google ! Permettre dencaisser des hausses de traffic Parce que cest bien :)
  • Comment ça marche ?Avec une plateforme LAMP (Linux, Apache2, PHP5) ;Étapes clés 1/2 :1. Démarrage dApache 1.Lecture des fichiers de conf 2.Lecture des fichiers Vhost2. Requête sur une page dun WordPress 1.Recherche du fichier .htaccess et prise en compte 2.Génération de la page 1.Lecture et compilation par PHP => Création dun opcode 2.Exécution de lopcode par Apache 3.Calcul de lEtag 4.Envoi de la page au client + cookies
  • Comment ça marche ?Avec une plateforme LAMP (Linux, Apache2, PHP5) ;Étapes clés 2/2 :3. Requête sur les dépendances de la page (css,images,js…) Pour chaque fichier : 1. Recherche du fichier .htaccess et prise en compte 2. Stockage des cookies 3. Lecture du fichier sur le disque 4. Récupération de la date de modification du fichier sur le disque 5. Calcul de lEtag 6. Envoi du fichier + cookies au client
  • Ce nest pas tout ! Tous les fichiers ne se téléchargent pas en même temps ! (par défaut 4 à la fois sur un même domaine) Attention à la favicon, si non présente, peut faire générer plusieurs pages 404 à WP ! Idem fichier robot.txt et autres fichiers courrants
  • Sur quoi agir ? Sur les accès au disque : il faut les limiter au strict nécessaire Sur le temps de génération des contenus dynamiques (cache dopcode) Sur le nombre de contenus dynamiques générés (cache HTML etc) Sur le téléchargement des dépendances (cache client) Sur le nombre de dépendances (grouper les js et css) Sur la taille des document servis (compression gzip) Sur la taille des requêtes (pas de cookies pour les contenus statiques, js, css, images…)
  • Limiter les accès au disque Copier le contenu du .htaccess dans le Vhost Supprimer lutilisation du .htaccess via la directive AllowOverride None dans le VHost Supprimer la génération de lEtag : • Installer le mod_headers dApache • Dans /etc/apache2/conf.d/headers, écrire les deux directives suivantes : Header unset ETag FileETag None (cf http://www.askapache.com/htaccess/apache-speed- etags.html)
  • Accélérer PHP ! Installer un système de mise en cache dopcode (mon choix : XCache) Sur Debian ou Ubuntu : sudo apt-get install php5-xcache puis configurer /etc/php5/conf.d/xcache.ini en fonction de votre système (fichier documenté) puis redémarrer Apache (/etc/init.d/apache2 restart) XCache, seul ne sert à rien, il faudra aussi installer le plugin correspondant pour WP en allant ici : http://neosmart.net/WP/XCache/
  • Limiter la génération des pages  Plugin WP Super Cache !  Page générée par WP servie en 0.8 s  Page en cache (fichier statique servi par Apache) <0.1 s  Si suffisamment de RAM, combiner avec mod_memcache et/ou memcached
  • Contrôler le cache client On peut indiquer au client la durée de vie de son cache Les fichiers statiques changent peu souvent, inutile de les recharger à chaque page lors dune visite (js, css, images…) Activation du mod_expires (a2enmod) Configuration du module via son fichier de conf ou Vhost Selon le type/mime Ex : ExpiresByType image/png "access plus 2 month" Ex : ExpiresByType text/xml "modification plus 2 days"
  • Grouper ! Grouper les js et css = 2 fichiers seulement Utilisation de PHPSpeedy Désactiver loption gzip si utilisation de mod_deflate (double compression!) Faire des tests avant la production Penser aussi aux sprites dans vos thèmes !
  • Documents compressés Les navigateurs modernes acceptent les contenus compressés gzip/deflate Apache possède un mod_deflate ! Taille des fichiers diminuée de 5 à 70% ! Déconseillé si peu de CPU/RAM (remède pire que le mal) Permet de limiter la bande passante, accélérer le téléchargment Attention, certain plugins compressent les fichier (comme PHPSpeedy) désactiver loption
  • Votre propre CDN Si le WP est sur mondomaine.com, faire pointer le sous domaine cdn.mondomaine.com sur le WP Configurer SuperCache pour gérer ce CDN Autre domaine = pas de partage de cookies ! Permet de paralléliser les téléchargements Multiplier les CDN si besoin Possibilité de répliquer les données sur autre serveur HTTP (comme lighttpd) et/ou autre machine !
  • Et Apache ? Apache peut être configuré très précisément ! Cas par cas, selon la consommation CPU/RAM Peser le pour et le contre, ajuster petit à petit Aucune recette miracle
  • Et MySQL? On peut configurer le cache de requêtes Peu utile si le reste est fait car moins de requêtes Nécessite un audit fin
  • Et PHP ? Il faut désactiver ce qui est inutile / inutilisé Ne pas loguer les erreurs en prod Désactiver les directives register_* et magic_quote_* Éventuellement régler les ressources dispos pour PHP
  • Et WordPress ? En lui même WP fait déjà le max ! On peut éventuellement désactiver les révisions pour ne pas surcharger la base via define(WP_POST_REVISIONS, false); Attention aux plugins ! Au plus il y en a, au plus cest lent Certains plugins sont très pénalisant : auditer à lactivation/ avant la prod !
  • Hébergement mutualisé Pas doptimisation coté serveur Optimisation coté WP uniquement (via les plugins) Optimisation des contenus et thème
  • Comment évaluer ? Firebug, onglet réseau GTMetrics = PageSpeed + YSlow Stress du serveur : • Apache bench (ab/ab2) débutants • Tsung ou Siege (GPL) + complet, + complexe • Selenium (Apache Licence) : le plus réaliste
  • Autres configs Lighttpd + XCode Nginx Varnish en frontal Couple Apache + mod_php + lighttpd pour le statique
  • Conseils Testez, testez, testez… mais ne vous prenez pas la tête Pas de miracles ! Découpez les articles longs Pensez à Ajax et au lazy-loading Un seul framework JS à la fois Peu de plugins, mais des plugins utiles / efficaces Petit serveur === petites perfs (pas de miracles!!!) Gros serveur !== bonnes perfs Petit serveur + bonne config == perfs correctes
  • Des questions ? Cest à vous de parler ! Pas pu poser votre question ? On peut continuer sur ne web ! http://about.me/Jeff_ MERCI !!!