3 façons d'optimiser WordPress avec PHP

3 façons d'optimiser WordPress avec PHP Nettoyage du header, débogage, fusion des feuilles de style… A l'heure de la mise en avant de l'expérience utilisateur par Google, quelques lignes de PHP dans le CMS peuvent être intéressantes.

La vitesse de chargement d'une page est importante pour l'expérience utilisateur. Elle constituerait aussi un facteur de classement des résultats de recherche de Google. Elle agit comme un signal qui entre dans l'évaluation de l'expérience de la page. Sur le CMS WordPress, il existe différentes façons d'améliorer celle-ci. Notamment, le fait de s'aider de plugins SEO ou de choisir un hébergeur compétitif et réactif. Ce dernier proposera notamment des versions récentes de différents éléments techniques comme Apache, SQL et PHP.

Outre le choix de ceux-ci, une façon d'améliorer le temps de chargement du site est d'optimiser manuellement le code PHP, le code HTML ou le CSS grâce à PHP. Rappelons que le PHP, pour Hypertext Preprocessor, est un langage de script généraliste et open source. Il est utilisé pour la conception de sites web dynamiques, comme ceux délivrés par WordPress. Son code est exécuté sur le serveur, générant ainsi le HMTL, qui sera envoyé au client. Pour ceux qui utilisent un thème gratuit ou payant, notons qu'il est conseillé de mettre en place un thème enfant avant de faire ces modifications.

Daniel Roch, expert SEO WordPress et CEO de SEOKEY, met en garde contre l'utilisation de l'IA pour générer du code PHP afin d'optimiser WordPress. "Cette technologie se base sur ce qu'elle a trouvé sur Internet. L'IA peut tout à fait générer du code à utiliser dans le thème ou les extensions mais attention, cela présente plusieurs défauts majeurs. Le code peut ne pas fonctionner, ou ne pas être performant. Il peut contenir des failles, puisque de nombreux tutoriels sur Internet en contiennent. Si la demande est complexe, il est possible que l'IA ne parvienne pas du tout à obtenir le résultat demandé." 

1. Alléger le header grâce à PHP

Le header d'un site WordPress peut contenir différents problèmes. "Le CMS peut ajouter de nombreux éléments inutiles", explique Daniel Roch. "Dans le meilleur des cas, cela alourdit juste le poids du code HTML. Dans le pire, cela peut forcer Google à suivre inutilement ces liens, et donc à perdre du temps de crawl et d'indexation." En effet, certains éléments ne présentent pas d'intérêt, comme les scripts liés aux emojis, le lien raccourci, appelé "shortlink", ou encore la version de WordPress, avec la balise meta name="generator".

Afin de nettoyer cela, des codes PHP peuvent être utiles. Ils s'ajoutent dans une extension ou dans le fichier functions.php du thème WordPress. Plusieurs lignes de codes peuvent être mises en place. Notons qu'il est important de regarder au cas par cas ce qui est généré dans le header de la page pour supprimer différents éléments.

"Par exemple, la ligne remove_action('wp_head','wp_generator'); située dans une extension, indique qu'il faut retirer la ligne de version de WordPress lorsque la fonction wp_head sera exécutée", indique Daniel Roch.

Autre exemple : remove_action('wp_head', 'rsd_link'); supprime le lien RSD de l'entête. Cette ligne est à utiliser si vous n'avez pas besoin de clients distants ou de pingback, qui rappelons-le, permet d'informer les autres blogueurs que vous avez créé un lien vers leur article sur votre site Web.

La ligne remove_action('wp_head', 'wlwmanifest_link'); permet de retirer le lien wlwmanifest_link. Celui-ci sert à la prise en charge de Windows Live Writer, un assistant de rédaction et de publication de blog de Microsoft, une application abandonnée et sans version récente.

Les lignes remove_action('wp_head', 'index_rel_link'); remove_action('wp_head', 'start_post_rel_link'); et remove_action('wp_head', 'parent-post_rel_link'); permettent respectivement de supprimer les fonctions obsolètes index_rel_link(), start_post_rel_link() et parent-post_rel_link().

Comment fonctionne la suppression par ces lignes de code ? "Les développeurs de ce CMS ont créé des centaines de fonctions", exprime Daniel Roch. "Pour chacune d'elles, ils ont fait des choix sur le comportement par défaut de leurs codes : pour afficher un menu, pour publier un article, ou encore pour ajouter un utilisateur. Dans ces fonctions, ils ont ajouté des Hooks. Cela permet à un autre développeur de pouvoir intercepter, modifier ou stopper le comportement natif de WordPress. Prenons l'exemple du <head>. Dans les thèmes WordPress, on utilise une fonction appelée wp_head(). De base, c'est une coquille vide. Lors de son chargement, WordPress va lister des instructions qu'il faudra exécuter quand la fonction sera activée, notamment l'ajout des flux RSS ou de la balise Title." La fonction remove_action() permet de supprimer une action, à condition de mentionner tous les arguments qui lui sont associés. Cela peut permettre d'annuler une action indésirable de WordPress ou de la réécrire entièrement.

2. Deboguer le site WordPress

Le PHP peut aussi permettre de déboguer les thèmes et les extensions du CMS. Ce dernier comporte en effet de temps en temps des fonctions obsolètes ou des variables gardées en mémoire de façon inutile. S'il est possible d'utiliser par exemple le plugin Query Monitor pour déboguer le site, deux petites fonctions peuvent se placer dans le footer des pages ou juste avant une fonction afin d'en mesurer l'impact. La première, qui montre le nombre de requêtes totales réalisées dans la page, est : <?php echo get_num_queries(); ?>

La deuxième est : <?php echo ('Seconds : ' ?timer_stop(0). '<br />') ; ?> et fait apparaitre le temps total nécessaire au calcul de l'ensemble du contenu, c'est-à-dire avant l'envoi de données à l'ordinateur. L'exécution de la fonction affichera le nombre de requêtes exécutées. Notons que ces codes s'effectuent sur un serveur de développement uniquement.

3. Fusionner les feuilles de style CSS

Le PHP peut aussi aider à fusionner les feuilles de style CSS. Vous pouvez les regrouper en une seule. Le contenu de toutes les autres sera présent dans celle-ci. Une façon de baisser le nombre de fichiers à télécharger pour WordPress. Afin d'empêcher le CMS de poursuivre le téléchargement des feuilles de style des différentes extensions, il est possible de noter ce code dans le fichier functions.php :

add-action( 'wp_print_styles', 'seomix_deregister_mystyles', 100 );
function seomix_deregister_mystyles() {
wp_dequeue_style('nom-du-style-a-desactiver');
}

Soulignons que la fonction add_action () permet de se greffer sur un hook de WordPress. Ce dernier permet, comme mentionné, de déclencher des actions WordPress ou des comportements à des moments précis de l'exécution du CMS.