Optimisation WordPress

by Lucas Giza
1 an ago
1459 Views

Que vous exécutiez une installation WordPress à trafic élevé ou un petit blog sur un hôte partagé à faible coût, vous devez optimiser WordPress et votre serveur pour qu’ils fonctionnent aussi efficacement que possible. Cet article fournit une vue d’ensemble de l’optimisation de WordPress avec des approches spécifiques recommandées. Cependant, il ne s’agit pas d’une explication technique détaillée de chaque aspect.

Si vous avez besoin d’une solution rapide maintenant , allez directement à la section Caching , vous obtiendrez le plus grand avantage pour les plus petits tracas. Si vous souhaitez vous lancer immédiatement dans un processus d’optimisation plus approfondi, reportez-vous à la section Comment améliorer les performances dans WordPress .

Un aperçu général du sujet de la performance est présenté ci-dessous dans Ce qui affecte la performance et comment la mesurez-vous . La plupart des techniques présentées ici s’appliquent également à WordPress Multisite (MU).

 

Ce qui affecte les performances

Hébergement

Les techniques d’optimisation à votre disposition dépendront de la configuration de votre hébergement.

Hébergement partagé

C’est le type d’hébergement le plus courant. Votre site sera hébergé sur un serveur avec beaucoup d’autres. La société d’hébergement gère le serveur Web pour vous, de sorte que vous avez très peu de contrôle sur les paramètres du serveur, etc. Les domaines les plus pertinents pour ce type d’hébergement sont: la mise en cache , les performances WordPress et le déchargement.

Hébergement virtuel et serveurs dédiés

Avec ce scénario d’hébergement, vous contrôlez votre propre serveur. Le serveur peut être un matériel dédié ou l’un des nombreux serveurs virtuels partageant le même matériel physique. Outre les domaines ci-dessus ( performances de mise en cache et WordPress) , les principaux domaines d’intérêt ici sont: Optimisation du serveur et * Déchargement

Nombre de serveurs

Une fois que vous avez affaire à un trafic très intense, il peut être nécessaire d’employer plusieurs serveurs. Si vous êtes à ce niveau, vous devriez déjà avoir utilisé toutes les techniques applicables énumérées ci-dessus.

La base de données WordPress peut être facilement déplacée sur un autre serveur et ne nécessite qu’une petite modification du fichier de configuration. De même, les images et autres fichiers statiques peuvent être déplacés vers d’autres serveurs (voir Déchargement ).

Elastic Load Balancer d’Amazon peut aider à répartir le trafic sur plusieurs serveurs Web, mais requiert un niveau d’expertise plus élevé. Si vous utilisez plusieurs serveurs de base de données, la classe HyperDB fournit un remplacement instantané pour la classe WPDB standard et peut gérer plusieurs serveurs de base de données dans des structures répliquées et partitionnées.

Performance matérielle

Votre capacité matérielle aura un impact énorme sur les performances de votre site. Le nombre de processeurs, la vitesse du processeur, la quantité de mémoire disponible et l’espace disque ainsi que le support de stockage sur disque. Les fournisseurs d’hébergement offrent généralement des performances plus élevées pour un prix plus élevé.

Une innovation en matière d’hébergement est l’utilisation de disques SSD (Solid State Drives) plus rapides que les supports magnétiques traditionnels. Digital Ocean propose un hébergement SSD abordable et Amazon a récemment ajouté l’hébergement SSD à son offre cloud.

Configuration WordPress

Votre thème aura un impact énorme sur les performances de votre site. Un thème léger et rapide fonctionnera beaucoup plus efficacement qu’un thème inefficace chargé de graphiques.

Le nombre de plugins et leurs performances auront également un impact considérable sur les performances de votre site. Désactiver et supprimer les plug-ins inutiles est un moyen très important d’améliorer les performances.

La performance du logiciel

Il est également important de vous assurer que vous utilisez la dernière version du logiciel, car les mises à niveau logicielles corrigent souvent des bogues et améliorent les performances. S’assurer que vous utilisez la dernière version de Linux (ou Windows), Apache, MySQL / MariaDB et PHP est très important.

Suivre les mises à jour de WordPress est également important.

Charge du serveur

La quantité de trafic sur votre serveur et la manière dont il est configuré pour gérer la charge auront également un impact considérable. Par exemple, si vous n’utilisez pas de solution de mise en cache, les performances ralentiront au fur et à mesure que des demandes de page supplémentaires arriveront et s’empileront, ce qui provoquera souvent un crash du serveur Web ou du serveur de base de données. Si elles sont correctement configurées, la plupart des solutions d’hébergement peuvent gérer un trafic très important. Le déchargement du trafic sur d’autres serveurs peut également réduire la charge du serveur.

Un trafic abusif tel que des attaques de connexion, des fuites d’images (d’autres sites reliant vos fichiers d’image à partir de pages très fréquentées) ou des attaques par déni de service peut également augmenter la charge du serveur. Identifier et bloquer ces attaques est très important.

Taille des graphiques

S’assurer que les images de vos publications sont optimisées pour le Web peut vous faire gagner du temps, de la bande passante et augmenter le classement de vos moteurs de recherche.

Distance géographique

La distance qui sépare votre serveur des visiteurs de votre site Web a également un impact sur les performances perçues. Un réseau de distribution de contenu ou un réseau de diffusion de contenu peut reproduire des fichiers et des images statiques sur diverses régions géographiques afin que tous les visiteurs de votre site obtiennent des performances optimales.

Comment mesurez-vous la performance?

  • Google PageSpeed est un excellent moyen de mesurer les performances de votre site WordPress et de recevoir des commentaires clairs et spécifiques sur les améliorations à apporter.
  • New Relic fournit également une bibliothèque gratuite pour mesurer les performances des serveurs en PHP et MySQL / MariaDB
  • Linux Top fournit un tableau de bord pour les performances en temps réel de votre serveur.
  • Si vous utilisez Varnish Cache, VarnishStat aide à évaluer les aspects de performance de vos outils de mise en cache.
  • Zend Server Z-Ray fournit une vision X-Ray et une connaissance approfondie de votre application PHP WordPress

Outils de test de performance

Comment améliorer les performances dans WordPress

Si vous avez besoin d’une solution rapide maintenant , allez directement à la section Caching , vous obtiendrez le plus grand avantage pour les plus petits tracas.

Optimiser votre configuration WordPress

Minimiser les plugins

Les plugins sont le premier et le plus simple moyen d’améliorer les performances de WordPress . Désactivez et supprimez tous les plugins inutiles. Essayez de désactiver sélectivement les plug-ins pour mesurer les performances du serveur. Est-ce que l’un de vos plugins affecte de manière significative les performances de votre site?

Ensuite, vous pouvez regarder pour optimiser les plugins . Les plugins sont-ils codés de manière inefficace? Répètent-ils des requêtes de base de données inutiles? WordPress a son propre système de mise en cache, donc généralement, utiliser des fonctions telles que get_option (), update_option (), etc. sera plus rapide que l’écriture SQL.

Des thèmes

Après les plugins viennent l’ optimisation du thème .

  • Fichiers d’image
    • Y a-t-il des images inutiles? (par exemple, pouvez-vous remplacer certaines images par du texte?)
    • Assurez-vous que tous les fichiers image sont optimisés. Choisissez le format correct (JPG / PNG / GIF) pour le type d’image.
  • Nombre total de fichiers / taille
    • Pouvez-vous réduire le nombre de fichiers nécessaires pour afficher la page moyenne sur votre site?
    • Combinez plusieurs fichiers CSS en un seul fichier optimisé.
    • Réduisez les fichiers CSS et JavaScript.
    • Si nécessaire, regardez dans les plugins pour aider ce processus .
  • Réduction / optimisation des requêtes
    • Les valeurs statiques peuvent-elles être codées en dur dans vos thèmes? Cela signifie que vous devez modifier le code chaque fois que vous apportez des modifications, mais pour les zones généralement statiques, cela peut être un bon compromis.
      • Par exemple, votre jeu de caractères de site, le titre du site, etc.
      • Pouvez-vous coder en dur des menus qui changent rarement? Éviter des fonctions comme wp_list_pages () par exemple.

Nous avons vu des thèmes qui ajoutent une charge supplémentaire de 3x au serveur. En fin de compte, cela a causé 3 fois plus de requêtes sur la base de données – ce qui est mauvais en soi. Nous avons ensuite découvert que certaines des requêtes n’étaient pas optimisées. Pas bon.

Vous pouvez également utiliser le déchargement pour optimiser votre thème.

Laisser quelqu’un d’autre le faire

En utilisant une solution d’hébergement géré telle que WordPress.com , Pagely ou WPEngine , nous mettons à profit le travail acharné et l’expertise des fournisseurs de services pour vous aider à optimiser l’optimisation.

Mise à niveau du matériel

Payer plus pour des niveaux de service plus élevés chez votre fournisseur d’hébergement peut être très efficace. L’augmentation de la mémoire (RAM) ou le passage à un hôte avec des disques SSD (Solid State Drives), par exemple, Digital Ocean peut faire toute la différence. L’augmentation du nombre de processeurs et de leur vitesse aidera également.

Optimiser le logiciel

Assurez-vous que vous utilisez la dernière version du système d’exploitation, par exemple Linux, Windows et le dernier serveur Web, par exemple Apache, la base de données, par exemple le serveur MySQL et PHP.

DNS : Ne lancez pas de DNS sur votre serveur WordPress. Utilisez un service commercial pour DNS tel que Route 53 d’Amazon ou l’offre gratuite de votre registraire de domaine. L’utilisation d’un service tel qu’Amazon peut également faciliter la commutation entre les serveurs de sauvegarde pendant la maintenance ou les urgences. Il fournit également un degré de tolérance aux pannes. Si vous hébergez votre DNS sur des serveurs externes, cela réduira la charge sur votre serveur Web principal. C’est un changement simple, mais il va décharger une partie du trafic et de la charge du processeur.

Serveur Web : votre serveur Web peut être configuré pour améliorer les performances. Il existe une gamme de techniques allant de la mise en cache de serveur Web à la définition d’en-têtes de cache afin de réduire la charge par visiteur. Recherchez les optimisations de votre serveur Web spécifiques (par exemple, recherchez “optimisation apache” pour plus d’informations). Certains serveurs Web proposent des versions plus rapides, comme Apache Litespeed . Il existe également un certain nombre de façons d’optimiser Apache pour obtenir de meilleures performances en fonction de votre hébergement et de la configuration de votre site, par exemple Memcache.

PHP : Il existe différents accélérateurs PHP disponibles qui peuvent améliorer considérablement les performances de vos fichiers PHP. Cela s’appliquera à tous les fichiers PHP, pas seulement à votre installation WordPress. Recherchez l’optimisation PHP pour plus d’informations, par exemple APC .

MySQL / MariaDB : L’optimisation de MySQL ou MariaDB est un art noir en soi. Quelques modifications simples apportées aux paramètres du cache de requête peuvent avoir un effet considérable sur les performances de WordPress, car WordPress répète de nombreuses requêtes à chaque requête. Recherchez l’optimisation mysql pour plus.

Iliya Polihronov a présenté au WordCamp San Francisco 2012 un excellent exemple de la manière dont WordPress a été optimisé . Iliya, entre autres choses, optimise les serveurs pour WordPress.com.

Ne pas exécuter un serveur de messagerie sur votre serveur WordPress. Pour votre formulaire de contact, utilisez quelque chose comme Formulaire de contact 7 avec Mailgun gratuit.

Mise en cache

Caching Plugins

Les plugins de mise en cache peuvent être facilement installés et mettront en cache vos publications et pages WordPress sous forme de fichiers statiques. Ces fichiers statiques sont ensuite servis aux utilisateurs, ce qui réduit la charge de traitement sur le serveur. Cela peut améliorer les performances plusieurs centaines de fois pour des pages relativement statiques.

Combiné à un cache de page de niveau système tel que Varnish, il peut s’avérer très puissant. Si vos publications / pages ont beaucoup de contenu dynamique, la mise en cache peut être plus complexe.

Mise en cache côté serveur

La mise en cache des données au niveau du serveur est plus complexe que l’utilisation de plug-ins de cache WordPress de base, mais cette approche est généralement beaucoup plus efficace et est donc largement utilisée par les sites Web à fort trafic. Les solutions les plus simples mettent les données en cache localement sur le serveur d’origine, tandis que les systèmes plus complexes et impliqués peuvent utiliser plusieurs serveurs de mise en cache (également appelés serveurs proxy inversés) placés “devant” le serveur Web sur lequel l’installation de WordPress est en cours d’exécution.

Mise en cache OPcode (PHP OPcache)

WordPress étant basé sur PHP, il contient une grande quantité de code qui doit être “analysé” par PHP à chaque chargement de page. Si vous utilisez un thème ou un plugin lourd, ou un grand nombre de plugins, la quantité de code PHP augmente de manière exponentielle.

Dans de nombreux environnements de serveur (en particulier l’hébergement mutualisé), ce temps “d’analyse” peut affecter considérablement les performances, en ajoutant plusieurs secondes au temps total nécessaire pour terminer le chargement d’une page. C’est là que la mise en cache OPcode peut aider, parfois radicalement, car elle évite de trop (trop) analyser le code PHP, au moyen de la “mise en cache” du contenu PHP dans un cache temporaire.

Tout au long de son existence, PHP a pris en charge diverses extensions de mise en cache OPcode. Pendant de nombreuses années, le plus populaire d’entre eux s’appelait Zend, un script propriétaire appartenant à un tiers, suivi de APC, qui était également géré par un tiers. Cependant, lors de la publication de PHP 5.5, Zend a décidé d’ouvrir son code et de le contribuer entièrement au projet PHP. À ce stade, il a été inclus (et activé par défaut) dans le cadre des installations PHP.

OPcache améliore les performances de PHP en stockant le bytecode de script précompilé dans la mémoire partagée, évitant ainsi à PHP de charger et d’analyser les scripts de chaque requête. – PHP.net

C’est l’une des raisons pour lesquelles il est si important de mettre à jour votre version de PHP. De nombreux hébergeurs vous permettent de mettre à niveau à la demande, tandis que d’autres le font automatiquement. Et bien qu’OPcache soit pris en charge par PHP 5.5+, il possède plusieurs options supplémentaires disponibles dans PHP 7+ (ainsi que des performances PHP généralement plus rapides), c’est donc une bonne idée de rester aussi à jour que possible.

Mise en cache basée sur la mémoire

  • Varnish : stocke les pages prédéfinies en mémoire et les sert rapidement, sans nécessiter l’exécution de la pile Apache, PHP, WordPress. Comme décrit ci-dessous, l’utilisation d’un plug-in pour les commentaires tels que Disqus au lieu de commentaires WordPress natifs peut aider Varnish en ne demandant pas à vos lecteurs de se connecter à WordPress et en augmentant le nombre de pages vues que Varnish peut servir en mémoire cache.

Mise en cache du navigateur

La mise en cache du navigateur peut aider à réduire la charge du serveur en réduisant le nombre de demandes par page. Par exemple, en définissant les en-têtes de fichier appropriés sur les fichiers qui ne changent pas (fichiers statiques tels que des images, CSS, JavaScript, etc.), les navigateurs mettront alors ces fichiers en cache sur l’ordinateur de l’utilisateur. Cette technique permet au navigateur de vérifier si les fichiers ont changé au lieu de simplement les demander. Le résultat est que votre serveur Web peut répondre à un plus grand nombre de réponses 304, confirmant qu’un fichier est inchangé, au lieu de 200 réponses, qui nécessitent l’envoi du fichier.

Examinez les en-têtes HTTP Cache-Control (en particulier max-age) et Expires, ainsi que les balises d’entité pour plus d’informations.

Lectures complémentaires

Déchargement

Utiliser un réseau de diffusion de contenu (CDN)

L’utilisation d’un CDN peut réduire considérablement la charge de votre site Web. Le déchargement de la recherche et de la livraison d’images, de fichiers javascript, css et de thèmes sur un CDN est non seulement plus rapide, mais alourdit considérablement la pile d’applications de votre serveur WordPress. Un CDN est plus efficace s’il est utilisé avec un plugin de mise en cache .

Cloudflare est un réseau de diffusion de contenu populaire, qui propose également des services de sécurité Internet. Les plans sont gratuits, mais des fonctionnalités supplémentaires sont disponibles moyennant des frais supplémentaires. Cloudflare est un CDN à coût fixe, ce qui signifie qu’ils facturent par fonctionnalités plutôt que par utilisation. Cloudflare vous permet d’acheminer le trafic de vos sites via leur réseau avant de revenir à votre hôte d’origine. Sur la base de connaissances Cloudflare, ils ont un guide sur la manière d’ accélérer WordPress et d’améliorer les performances tout en utilisant leur service.

Amazon Cloudfront utilise le service Amazon S3 pour fournir une fonctionnalité CDN (Content Delivery Network) à vos fichiers statiques. Un CDN est un service qui met en cache vos fichiers statiques sur de nombreux serveurs Web à travers le monde. Fournir des performances de téléchargement plus rapides pour vos utilisateurs, peu importe où ils se trouvent. Il est recommandé d’utiliser Cloudfront en tandem avec S3 et pas uniquement avec S3; les coûts ne sont pas significativement différents. MaxCDN est un réseau de distribution de contenu (CDN) au paiement à l’utilisation similaire à Amazon Cloudfront. Parmi les différences, citons la prise en charge de la vidéo à la demande et la «mise en miroir» (aucun téléchargement requis) de fichiers, bien que vous puissiez les télécharger si vous préférez.

Il existe d’autres fournisseurs de CDN, alors lancez-vous dans la recherche en ligne et vous pourrez en adapter davantage à vos besoins.

Contenu statique

Tous les fichiers statiques peuvent être déchargés sur un autre serveur. Par exemple, toutes les images statiques, les fichiers JavaScript ou CSS peuvent être déplacés vers un autre serveur. Cette technique est courante dans les systèmes très performants (Google, Flickr, YouTube, etc.), mais elle peut également s’avérer utile pour les sites de petite taille sur lesquels un seul serveur est en difficulté. En outre, le transfert de ce contenu sur différents noms d’hôte peut jeter les bases de futurs serveurs.

Certains serveurs Web sont optimisés pour servir des fichiers statiques et peuvent le faire beaucoup plus efficacement que des serveurs Web plus complexes comme Apache, par exemple lighttpd .

Amazon Simple Storage Service (S3) est un service d’hébergement de fichiers statiques dédié, payé à l’utilisation. Sans coûts minimum, il pourrait être pratique pour les sites à faible trafic d’atteindre le pic qu’un serveur partagé ou simple peut gérer.

Nom d’hôte multiple

Il peut également y avoir des améliorations pour l’utilisateur en fractionnant les fichiers statiques entre plusieurs noms d’hôte. La plupart des navigateurs ne feront que 2 demandes simultanées à un serveur, donc si votre page nécessite 16 fichiers, ils seront demandés 2 à la fois. Si vous répartissez cela entre 4 noms d’hôtes, ils vous seront demandés 8 à la fois. Cela peut réduire les temps de chargement des pages pour l’utilisateur, mais également augmenter la charge du serveur en créant plus de demandes simultanées. En outre, il est connu que le “traitement en pipeline” peut souvent saturer la connexion Internet du visiteur en cas de surutilisation.

Le déchargement d’images est l’endroit le plus simple et le plus simple à démarrer. Tous les fichiers images peuvent être répartis de manière égale entre trois noms d’hôte (assets1.votre site.com, assets2.votre site.com, assets3.votre site.com, par exemple). À mesure que le trafic augmente, ces noms d’hôte peuvent être déplacés vers votre propre serveur. Remarque: évitez de choisir un nom d’hôte au hasard, car cela affectera la mise en cache du navigateur et entraînera une augmentation du trafic, ainsi que des recherches DNS excessives, susceptibles de nuire aux performances.

De même, tous les fichiers JavaScript et CSS statiques peuvent être déchargés vers des noms d’hôte ou des serveurs distincts.

Les flux

Vos flux peuvent facilement être transférés à un service externe. Les services de suivi de flux tels que Google FeedBurner le font automatiquement, les serveurs Feedburner gèrent tout le trafic de flux et ne mettent à jour le flux de votre site que toutes les quelques minutes. Cela peut être un gros économiseur de trafic.

De même, vous pouvez transférer vos propres flux sur un serveur distinct (feeds.yoursite.com, par exemple), puis gérer vos propres statistiques et statistiques sur les flux.

Services d’hébergement gratuits

Il est possible d’héberger gratuitement certains de vos fichiers sur des serveurs externes. Par exemple, les sites Web d’hébergement d’images populaires tels que Flickr proposent un hébergement d’images sans frais. Même le déchargement de vos images les plus populaires sur un service gratuit pourrait réduire considérablement l’impact sur votre serveur principal.

Cependant, vous devez prendre en compte un problème très important lorsque vous utilisez un service gratuit pour décharger vos images. Étant donné que la plupart des services populaires sont en fait des sites de partage de photos, le droit d’auteur devient une préoccupation. Assurez-vous de lire la clause de non-responsabilité relative au service et de décider si cela vous convient. De plus, vous ne voudrez peut-être pas que vos images soient exposées aux utilisateurs du site de partage de photos.

Considérez que les services d’hébergement d’images gratuits sont récemment devenus un choix moins viable, car leur trafic est souvent bloqué par les réseaux d’entreprise.

Lectures complémentaires

Réglage de la base de données

Nettoyage de votre base de données

De nombreux plugins peuvent vous aider à réduire l’encombrement supplémentaire dans votre base de données.

Vous pouvez également demander à WordPress de minimiser le nombre de révisions qu’il enregistre de vos publications et de vos pages.

Ressources supplémentaires

Lectures complémentaires

Présentations de performance WordCamp

WordPress » Erreur

Une erreur critique est survenue sur votre site.

En apprendre plus sur le débogage de WordPress.