WordPress et performance, 5 conseils d’experts que vous ignorez probablement

Web Performance WordPress

Comme vous le savez chez BSA Web on aime bien les sites WordPress bien faits et performants… on a donc décidé d’inviter Eroan Boyer, fondateur de l’Agence Web Performance pour nous parler de Web Performance et vous donner quelques conseils pour optimiser vos sites WordPress… let’s go 👇

On trouve sur la toile de multiples tutos détaillant sous forme de checklist comment améliorer la webperf d’un site WordPress. Avec cet article, l’objectif est de vous proposer autre chose, de moins conventionnel et, je l’espère, plus intéressant. Nous y abordons en tous cas des stratégies que nous déployons quotidiennement au sein de l’Agence Web Performance. Le tout est agrémenté de données chiffrées et de retours d’expérience concrets. Bonne découverte !

1. Optez pour un thème performant

C’est une notion vague, difficile à appréhender voire un peu floue. De nombreux thèmes mettent en avant l’aspect « performance » mais ne se donnent pas les moyens de leurs ambitions en matière de respect des standards et des bonnes pratiques. Ils en font souvent un argument commercial sans pour autant intégrer à leur code les mécanismes qui feraient une véritable différence.

Votre thème constituant la base technique de votre site WordPress, un choix inapproprié peut définitivement impacter sa performance, sans possibilité de l’améliorer au-delà d’un certain seuil. Nous nous trouvons régulièrement dans cette configuration avec des clients motivés pour améliorer leur performance, mais fortement limités par leurs choix antérieurs en matière de stack technique.

themes wordpress fse blocs gutenberg

Les thèmes les plus populaires disponibles au sein du répertoire WordPress officiel, avec un filtre sur les thèmes basés sur les blocs Gutenberg. Du beau choix !

Évitez donc de créer une dette technique dès la première étape de création de votre site. Tournez-vous vers un thème populaire du répertoire officiel de WordPress basé sur l’éditeur natif Gutengerg et son système de blocs (en « Full Site Editing » pourquoi pas). C’est l’approche mise en avant par les agences WordPress orientées qualité et performance, à l’image de BSA Web qui vous explique ici pourquoi.

Et c’est bien évidemment aussi la nôtre, qui nous amène régulièrement à recommander des thèmes comme Astra, GeneratePress et Blocksy. Et, à l’inverse, à fuir les thèmes « couteau-Suisse » que l’on trouve à la pelle sur les plateformes comme ThemeForest.

2. Utilisez un mécanisme de cache statique

Il est indispensable d’installer une extension de cache, quelle qu’elle soit. L’idée est de générer une version statique dans un répertoire sur l’espace disque du serveur au premier affichage, puis de la servir ensuite aux prochains visiteurs.

Le cache via des extensions

La différence entre une page générée par php avec des requêtes SQL et une page servie depuis un fichier de cache statique est majeure. Dans le second cas, le TTFB est largement amélioré car le serveur n’a plus qu’un travail minime à effectuer : il est nettement moins sollicité.

pagespeed exemple wp rocket

Une extension de mise en cache comme WP Rocket permet de répondre à de multiples problématiques, la plus impactante étant bien souvent le temps de réponse serveur (TTFB)

Il existe de nombreuses extensions de mise en cache statique, les plus connues étant WP Super Cache, W3 Total Cache ou le plus Premium (et payant) WP Rocket.

Attention cependant, de nombreux cas de figure rendent inopérables les mécanismes de cache de ces extensions :

  • Utilisateurs connectés : il convient d’activer le cache pour eux également dans l’idéal
  • Pages appelées avec des paramètres d’url spécifiques : il convient de configurer l’extension de cache pour ignorer ceux utilisés dans le cadre de tracking publicitaire, type Google Ads ou Facebook Ads.

Le cache Varnish

L’activation d’un cache de type reverse proxy comme Varnish repose sur les mêmes mécanismes, mais met à profit des infrastructures spécifiques qui assurent un niveau de performance bien supérieur. Les pages statiques sont en effet stockées dans de la RAM au sein d’un environnement dédié, pour un TTFB en très nette amélioration.

Le Edge Caching via un cdn

On pourrait aller encore plus loin en abordant les technologies de type Edge Cache, qui font le même travail mais sur des infrastructures distribuées à l’échelle mondiale : vos pages sont disponibles au plus près de chaque utilisateur où qu’il se situe.

Toutes ces options sont proposées par la plupart des hébergeurs, dont certains se reposent sur des serveurs web performants comme LiteSpeed. C’est le cas des très populaires Kinsta et Hostinger, qui ne sont toutefois pas les plus performants, mais aussi de WP Engine et Rocket.net.

3. Optimisez les traductions natives

WordPress est comme un paquebot, délicat à manoeuvrer et à maintenir. Quand un cap est donné, il peut être très consommateur de ressources chez les contributeurs. Si bien qu’au fil des années, certaines briques tendent progressivement vers l’obsolescence, faute de priorisation. C’est clairement le cas des mécanismes de traduction, qui n’ont que très peu évolué depuis 10 ans.

Ce n’est qu’en 2023 que le sujet a véritablement été posé sur la table, notamment après que des tests aient démontré une chute des performances de 20 à 45% entre une installation basique en anglais (la langue native) et une installation internationale (type Allemand ou Français).

page load time performant translations

Entre un site WordPress en anglais et un site traduit (en français par exemple), la différence de performance est majeure sans l’utilisation d’une extension comme Performant Translations

La traduction reposant sur le parsing en php de fichiers .po et .mo stockés sur le disque dur, elle est extrêmement consommatrice de ressources CPU et mémoire sur le serveur. Le résultat, ce sont des temps de réponse nettement dégradés (métrique TTFB).

En attendant que les correctifs nécessaires soient intégrés au sein du coeur de WordPress, la solution consiste à se reposer sur une extension comme Dynamo, développée par les équipes de Polylang ou mieux encore, sur Performant Translations récemment proposée par la Performance Team officielle de WordPress.

La simple activation de Performant Translations améliore considérablement les temps de réponse. Associé à une version récente de php comme la 8.2 et à un cache objet type Redis, c’est l’assurance de bénéficier d’un TTFB au top. Et donc, par effet levier, d’un FCP et d’un LCP eux aussi améliorés.

4. Nettoyez la base de données

La plupart des outils d’optimisation de la performance proposent de réaliser un nettoyage de différents éléments stockés en base de données :

  1. Révisions d’articles et pages
  2. Brouillons automatiques
  3. Commentaires en spam
  4. Transients, parfois non nettoyés

Tout cela est bien, mais c’est souvent loin d’être suffisant. Car au fil du temps, des changements de thèmes et des installations et désinstallations d’extensions, de multiples informations inutiles s’accumulent dans les tables de la base de données de votre WordPress. Un focus particulier doit notamment être fait sur les enregistrements de la table wp_options, qui est interrogée à chaque chargement de page :

  • les enregistrements « theme_mod_(…) », généralement les plus lourds car ils stockent le paramétrage intégral des thèmes. Ils ne sont jamais supprimés et sont requêtés à chaque affichage de page (option autoload= »yes »).
  • les multiples enregistrements relatifs à des extensions que vous avez désinstallées sans cocher la case « Supprimer toutes les données à la désinstallation », si elle existe dans les paramètres avancés (elle est souvent bien cachée).

Dans les deux cas, il peut exister plusieurs dizaines voire centaines d’enregistrements, parfois lourds, selon l’ancienneté et l’historique de votre site.

wp db cleaner options

Les extensions désinstallées laissent souvent des dizaine voire centaines d’enregistrements inutiles en Autoload dans la table wp_options. Les supprimer peut avoir un impact positif sur le TTFB

En complément, certaines extensions installent leurs propres tables SQL, ce qui constitue une bonne pratique en termes de performance lorsqu’elles fonctionnent, mais peut impacter négativement les temps de réponse si elles restent là une fois l’extension supprimée. Et cela arrive malheureusement aussi très souvent.

Il convient ici d’utiliser un outil tel qu’Advanced Database Cleaner, et de procéder avec précaution après avoir réalisé une sauvegarde complète de votre installation. On parle en effet ici de données brutes de la base de données, pour lesquelles une mauvaise manipulation ne pardonnera pas.

Une fois nettoyée, une base de données optimisée permettra de bénéficier de TTFB améliorés.

5. Réduisez l’impact des tâches automatisées

WordPress est un CMS qui repose sur des technologies et langages traditionnels. Pour les échanges entre le navigateur et le serveur, il met notamment à profit Ajax en appelant des scripts exécutés en php. Cette configuration est loin d’être optimale lorsqu’il s’agit d’exécuter des tâches automatisées coûteuses en arrière-plan (les fameux Crons) :

  • Nettoyage d’éléments obsolètes en base de données (transients notamment)
  • Vidange de caches statiques arrivés à expiration
  • Vérification des mises à jour disponibles
  • Génération de backups planifiés par Updraft ou Jetpack
  • Scans de sécurité pour identifier d’éventuels fichiers vérolés via WordFence ou all-in-One Security

Par défaut, ces opérations sont initialisées durant les sessions de navigation des utilisateurs. Cela peut s’avérer problématique sur les sites avec un volume de visiteurs faible ou un système de cache statique particulièrement performant, où chaque lancement de page déclenchera une tâche. Dans ce cas comme de façon générale, cela pose deux problématiques de performance :

  • Les ressources CPU et RAM consommées par ces tâches sont partagées avec l’hébergement, sans cloisonnement. Elles réduisent ainsi mécaniquement la quantité de ressources disponibles pour afficher les pages, avec un impact potentiellement perceptible sur le TTFB.
  • Les tâches sont lancées durant les sessions de navigation des visiteurs, et peuvent consommer un important volume de ressources CPU et RAM, qui n’est pas illimité. Il y a ainsi une mise en concurrence entre les tâches d’arrière-plan et le front-end.

La solution consiste à désactiver le mécanisme de crons natif de WordPress en ajoutant la directive suivante au sein du fichier wp-config.php situé à la racine de l’installation :

define ('DISABLE_WP_CRON', true);

Puis à réactiver manuellement le cron en utilisant le service proposé par votre hébergeur, qui dispose généralement de ses propres ressources CPU et RAM. Tous le proposent cette option gratuitement, l’implémentation pouvant toutefois fortement varier de l’un à l’autre.

tache cron o2switch

Chez l’hébergeur o2switch qui propose un Cpanel, l’espace permettant d’ajouter ses propres Crons ressemble à cela.

Quel que soit le mécanisme d’activation, veillez à saisir l’url du fichier /wp-cron.php à la racine de votre site, et à le lancer toutes les deux à cinq minutes selon sa taille de votre installation. Ainsi débranché du WordPress en lui-même, le mécanisme de Crons sera plus fiable et performant.

6. Bonus : déployez un cdn Cloudflare

Parce que c’est bientôt Noël, pourquoi ne pas glisser un court mais efficace Bonus à notre sélection de conseils d’experts pour améliorer la performance de votre site WordPress ? En l’occurrence, la recommandation est de vous tourner vers Cloudflare, qui offre très clairement le meilleur rapport qualité/prix du marché dans le secteur.

Cloudflare vous permettra en effet de bénéficier de plusieurs atouts clés pour améliorer les temps de réponse de votre site :

  • Serveur DNS parmi les plus rapides au monde, pour des délais de résolution DNS très bas
  • HTTP3 avec TLS 1.3, pour des délais de connexion réduits par rapport à HTTP/2
  • Compression en Brotli des ressources encodées en texte, bien plus efficace que Gzip
  • Mise en cache des ressources statiques, réduisant la charge du serveur d’origine
cloudflare dns performance

Sans même parler des optimisations de protocoles, Cloudflare est de loin le fournisseur de DNS le plus performant : il répond par exemple 3,5 fois plus vite qu’OVH (source DNSperf.com)

Que ce soit en version Free comme avec le modèle Pro à 20€ par mois (avec lequel on peut activer l’excellent APO), cela peut être la clé pour donner un second souffle à un hébergement qui peine.

J’espère que vous avez apprécié ce partage. Vos commentaires et sollicitations sont les bienvenus !

Eroan