Résoudre une erreur dans le sitemap de WordPress SEO

A l’occasion d’un rapide tour de contrôle de l’indexation de mes sites web depuis l’outil Google Webmaster Tools, j’ai découvert un problème sur le sitemap d’un de mes sites sous WordPress, généré automatiquement par le plugin WordPress SEO by Yoast. L’erreur indiquait la présence de lignes vides en début de fichier ce qui n’est pas conforme.

Rappel sur le fichier sitemap.xml

Pour rappel, un fichier sitemap.xml n’est pas une page à destination des visiteurs du site, mais un fichier xml qui contient l’ensemble des pages de votre site pour indiquer aux moteurs de recherche les pages à indexer.

La présence de ce fichier est très importante pour le bon référencement de votre site. N’oubliez d’ailleurs pas d’aller le déclarer dans l’interface de Google Webmaster Tools.

Il existe donc de nombreux plugins sous WordPress pour la génération automatique de ce fichier. Personnellement nous utilisons WordPress SEO By Yoast qui propose de nombreuses fonctionnalités pour un bon référencement.

Erreur dans le sitemap.xml

Mais voilà, récemment j’ai obtenu l’erreur suivante :

Greenshot_2015-04-07_16-05-36

Première investigation du côté du plugin, puisque c’est lui qui génère le fichier. Le site du support évoque le problème, mais précise que cela ne vient pas du plugin et qu’il faut regarder du côté du template ou d’un autre plugin.

Lignes vides hors bloc PHP

En fait, le problème est dû à un des fichiers PHP du template qui contient des lignes vides en dehors d’un bloc de balise <?php ?>.

Sur l’installation, le problème venait d’une modification du fichier functions.php où un saut de ligne entre deux blocs de code PHP a été ajouté, ce qui a engendré l’erreur.

Une fois l’emplacement de l’erreur déterminé, la correction est évidente. Il faut supprimer les 2 lignes de codes suivantes qui ne servent à rien :

pour n’obtenir plus qu’un seul bloc PHP.

Recherche des dernières modifications PHP

Si vous rencontrez le même problème, la cause est surement la même. La seule difficulté est de trouver le fichier concerné. Alors commencez par reprendre les dernières modifications que vous avez apporté au site.

Petite astuce, pour trouvez les dernières modifications effectuées sur votre site. S’il est hébergé sous linux et que vous avez un accès ssh, en vous plaçant à la racine du site, la commande suivante vous donnera les fichiers qui ont changé depuis 2 jours, à l’exclusion du cache :

find . -mtime -2 | grep -v /cache/

Vous pouvez adapter le nombre de jours pour la recherche en modifiant le paramètre.