Maintenir à jour un site WordPress consiste en une série d'opérations techniques allant de la simple mise à jour d'extension ou de thème à un nettoyage en profondeur de votre base de données. En tant que spécialiste de la maintenance de site sous WordPress, je me suis donné pour challenge d'optimiser au mieux WP Channel fort d'un historique de bientôt 10 ans d'existence.

Peur de vous faire pirater ou de perdre tous vos contenus ? N'attendez plus : confiez-moi vos opérations de maintenance pour un site WordPress sécurisé et performant.

Mener à bien une cure de jouvence est une tâche longue et ardue. Prévoyez de sauvegarder autant de fois que nécessaire votre site avant d’opérer des nettoyages irréversibles. Notez que cet article ne passe pas en revue toutes les actions propre à une maintenance régulière d’un site WordPress mais s’attarde sur le nettoyage de sites avec un passif de plusieurs années. Les recettes ont directement été appliquées sur ce blog.

La base de données

Une base de données stocke l’ensemble des contenus et réglages de votre site. Elle peut rapidement s’engorger de données obsolètes qui parasitent l’ensemble. Un exemple concret concerne l’installation d’extensions qui peuvent créer des tables supplémentaires. Le problème est qu’une fois désinstallé depuis votre back-office, les tables sont rarement supprimées et restent présentes.

Avant d’aller plus loin, vous devez impérativement sauvegarder votre base de données et vous assurer que celle-ci est parfaitement fonctionnelle. Vous devez également maitriser un outil comme phpMyAdmin ou Adminer.

Supprimer les tables inutiles de votre base de données

Cette opération est loin d’être simple car elle nécessite tout d’abord d’identifier les tables à supprimer. Il faut donc avoir une certaine expérience pour savoir à quelles extensions correspondent les noms des tables. Certaines sont plus faciles que d’autres à identifier.

À partir de là, vous pouvez sélectionnez puis supprimer les tables n’ayant pas fait l’objet d’une suppression suite à la désinstallation d’une extension.

Pour ma part, j’ai réussi à économiser 70 Mo de données. Pas mal non ?

Modifier l’encodage de caractères en utf8mb4

Depuis WordPress 4.2, il vous faut basculer de utf8 à utf8mb4 pour l’encodage de caractères de votre base de données. Cette information est définie dans votre fichier wp-config.php lequel, rappelons-le, lie votre installation à votre base.

Certains hébergeurs ne supportent pas bien ce changement malheureusement. Pour les autres, vous devez ensuite vérifier l’interclassement de votre base de données qui est généralement défini sur latin1 dans les configurations serveurs par défaut.

À l’aide de phpMyAdmin, rendez-vous dans l’onglet Opérations puis Interclassement. Là, changez pour utf8mb4_unicode_ci. Vous pouvez faire de même pour l’ensemble des tables qui ne disposeraient pas du bon interclassement.

Effacer les trackbacks / pingbacks

Les rétroliens ou trackbacks sont des liens retours générés automatiquement dans les commentaires d’un article lorsqu’un site tiers émet un lien vers votre billet. Cette technique de maillage externe très ancienne n’est guère plus utilisée depuis de nombreuses années.

Fort de plus de 10 000 commentaires sur ce blog, j’ai donc lancé une commande SQL afin de les supprimer en totalité. Ils n’apportent rien d’intéressant pour le visiteur.

Pour comprendre la nuance entre les trackbacks et les pingbacks, rendez-vous sur le Codex.

Pour prévenir la création de tels liens, n’oubliez pas de désactiver l’option Autoriser les liens de notification d’autres blogs (pings et rétroliens) sur les nouveaux articles dans Réglages puis Discussion.

DELETE FROM `wp_comments` WHERE `comment_type`="pingback"

DELETE FROM `wp_comments` WHERE `comment_type`="trackback"

Supprimer les liens externes de vos commentaires

Le champ Site Web présent dans le formulaire de dépôt de commentaire permet de déposer un lien externe. Bien souvent, l’auteur du commentaire indique l’URL de son site Web. Cette fonctionnalité est largement utilisée pour générer du lien retour à moindre coût et sujet au spam. Elle n’apporte là encore pas grand chose pour le visiteur et nuit à votre référencement malgré l’ajout d’une balise nofollow.

J’ai donc pris la décision de les supprimer en totalité via cette commande SQL.

UPDATE `wp_comments` SET `comment_author_url`=NULL

Il vous faudra également modifier le formulaire de commentaire présent dans votre thème pour retirer le champ Site Web afin de prévenir tout nouvel ajout de lien externe.

Supprimer les champs personnalisés inutiles

Les champs personnalisés ou custom fields sont largement utilisés par WordPress afin de stocker des informations complémentaires au sein d’un contenu notamment. Les développeurs ont recours à l’extension Advanced Custom Fields pour générer facilement des champs personnalisés dotés d’une interface graphique. Comme toujours, un changement de thème ou la suppression d’une extension n’inclut pas le retrait des données obsolètes en base. À moins que vous ne souhaitiez les conserver pour plus tard, il vaut mieux les retirer.

Pour ce faire, je vous recommande l’utilisation de l’extension Delete Custom Fields qui vous fera gagner un temps précieux. Sinon, vous pouvez toujours utiliser des requêtes SQL.

Delete Custom Fields

Une extension d'aide à la suppression de champs personnalisés.

Taille : 19,0 Ko  • Hits : 49

Nettoyer les données orphelines, dupliquées et inutiles

Pour cette dernière opération, nous allons pouvoir automatiser le processus à l’aide de l’extension WP Sweep. Facile d’utilisation et particulièrement efficace, cette extension vous mâche le travail en exécutant de nombreuses requêtes SQL pour nettoyer votre base de données.

WP-Sweep

Une extension couteau-suisse pour nettoyer votre base de données WordPress.

Taille : 15,0 Ko  • Hits : 79

À utiliser sans modération avec une sauvegarde bien entendu !

Terminons en ajoutant qu’il vous faut surveiller les tables suspectes : j’entends par là celles qui sont anormalement lourdes en poids ou qui contiennent des centaines de milliers de lignes. Il est toujours bon d’identifier les causes à l’origine de ce phénomène afin de mener là encore de nouvelles optimisations.

Vérifier la présence des index et des clés primaires

Si vous rencontrez des soucis de performances sur MySQL, il peut être bénéfique de vérifier si les clés primaires ainsi que les index sont bien présents pour les tables concernées. Pour ce faire, il vous faudra passer par phpMyAdmin et comparer votre installation à une installation neuve de WordPress. Pensez également à installer de zéro les extensions que vous utilisez car certaines créent des tables additionnelles.

C’est une opération longue et fastidieuse mais utile si vous cherchez en vain la cause d’une saturation du serveur de base de données… pour en avoir vécu l’expérience récemment c’est quelque chose à laquelle on ne pense guère.

Les fichiers

Le fichier .htaccess

Un fichier .htaccess est un fichier masqué de configuration propre à Apache pour un répertoire donné. Généralement, il est situé à la racine Web de votre espace et vous permet, entre autres, de gérer :

  • Vos règles de réécritures pour disposer d’URLS seo-friendly ;
  • Vos redirections 301 ;
  • Vos optimisations de cache ;
  • Votre politique de sécurité (Content Security Policy) ;

Au fil du temps, il n’est pas rare de voir s’accumuler des lignes de code obsolètes qu’il conviendra de retirer avec précaution.

Le fichier wp-config.php

Le fameux fichier wp-config.php que nous créons tous lors de l’installation de WordPress ne fait pas que relier votre installation à votre base de données MySQL ou MariaDB.

Vous pouvez y injecter des paramètres avancés comme :

Là encore, il est possible de supprimer certaines lignes obsolètes mais surtout d’améliorer la fiabilité de votre site en y ajoutant celles mentionnées plus haut dans la liste. Pensez également à consolider la force du mot de passe de la base de données.

Les fichiers inutiles ou obsolètes

Au fil des années, certains fichiers de WordPress sont tout simplement supprimés de l’archive officielle. Toutefois, il est de votre ressort de supprimer les fichiers obsolètes car une mise à jour du coeur ne le fera pas. En apparence compliquée, cette opération est pourtant simple. Il suffit de télécharger la dernière version de WordPress et d’écraser les dossiers /wp-admin et /wp-includes et vérifier les fichiers présents à la racine. Pour ma part, une demi-douzaine de fichiers à la racine étaient devenus inutiles… c’est là le problème après une décennie d’écriture sur ce blog.

Au delà des fichiers propres à WordPress, vous devriez en profiter pour faire le ménage au niveau de la racine Web et surtout du dossier /wp-content car il n’est pas rare de rencontrer des dossiers qui n’ont rien à faire là. Il peut s’agir de thèmes ou d’extensions inactives, de dossiers de sauvegardes qui sont stockées au format ZIP et qui occupent une grande partie de votre espace de stockage – on ne laisse jamais les sauvegardes sur le serveur de production, d’anciens dossiers de cache, etc.

 

2 commentaires
Laisser un commentaire