Automatiser la mise à jour du fichier sitemap.xml via un fichier cron sur un site Prestashop

Planifier une tâche cron

Salut à tous,

Dernièrement, j’ai été confronté à une question d’un client concernant la mise à jour automatique du fichier sitemap.xml sur son site Prestashop, chose que je n’avais encore jamais faite jusque-là. Aussi, après lui avoir expliqué qu’il était préférable d’optimiser son fichier sitemap.xml manuellement, dans la mesure du possible bien entendu, j’ai malgré tout effectué des recherches sur le sujet pour en savoir plus :

Et même sur Twitter :

Bref, je n’ai pas appelé à l’aide mais presque.

Toujours est-il qu’en cherchant bien, je l’ai trouvée ma solution. J’ai d’abord eu droit au support Prestashop, qui, par l’intermédiaire de Samyha Aggoune, Community Manager au sein de la société, m’a apporté son aide. Puis, j’ai eu le soutien sur Twitter de codeurWeb. Je les remercie pour les réponses qu’ils m’ont apportées, ce qui me permet, qui plus est, d’en rédiger un article aujourd’hui.

Après cette longue introduction, passons à l’essentiel. Mais avant, si vous souhaitez découvrir comment optimiser manuellement votre fichier Sitemap, lisez mon article.

Les pré-requis

Pour que vous puissiez réitérer l’opération sur votre propre site, il est important que :

  • vous soyez hébergé chez OVH,
  • votre site soit développé via Prestashop,
  • vous disposiez du module Gsitemap installé dans votre back-office.

Cet article ne répondra qu’à ce besoin. Si votre site est hébergé chez 1&1, chez Gandi, chez one.com ou que votre site a été développé sur SPIP, Drupal ou WordPress, ce post ne répondra pas à vos attentes. Bien sûr, le principe reste la même, il vous suffit de vous adapter selon vos configurations.

Récupérer l’URL du script PHP dans le BO de Prestashop

Première chose à faire, rendez-vous dans votre panneau d’administration Prestashop dans la rubrique Modules. Cliquez sur le lien « Configurer » du module Google sitemap. Si votre version du module est à jour, vous devriez facilement repérer l’URL à copier (voir ci-dessous).

Module Google Sitemap à jour

Autrement, si votre module Google Sitemap n’est pas à jour, il se peut que vous n’ayez que ça qui s’affiche à l’écran :

Capture d'écran du module Gsitemap pas à jour

Dans ce cas-là, l’URL du script PHP n’apparaît pas. Pour mettre votre module à jour, vous pouvez vous rendre à cette adresse : https://github.com/PrestaShop/PrestaShop-1.4

Il vous suffit de télécharger les fichiers Prestashop en cliquant sur « Download/ZIP » et, dans votre logiciel FTP, de remplacer les anciens fichiers du module Gsitemap par les nouveaux.

Planifier une tâche cron sur OVH

Maintenant que vous avez récupéré votre fichier cron dans le back-office de Prestashop, il ne vous reste plus qu’à planifier une tâche dans votre espace client OVH. après avoir renseigné votre login et votre mot de passe, rendez-vous dans la section Hébergement > Planificateur de tâches. Créez une nouvelle tâche. Vous devriez alors arriver sur une page qui ressemble à ceci :

Planifier une tâche cron dans OVH

Dans le champ, « Script à exécuter », collez l’URL du script PHP à appeler en tâche cron. Ensuite, remplissez les différents champs et cliquez sur « Valider ». Ca y est, votre tâche est créée. Votre fichier sitemap.xml sera ainsi mis à jour à la date que vous aurez indiqué, sans que vous ayez à faire quoi que ce soit.

L’objectif de cet article était de vous présenter comment automatiser la mise à jour de votre fichier Sitemap. Toutefois, je rappelle encore une fois qu’il vaut mieux l’optimiser manuellement pour n’avoir que des URL que vous souhaitez réellement voir indexées. En effet, la configuration automatique du Sitemap prend généralement en compte les URL dynamiques, ainsi que les pages inutiles d’un point de vue du référencement et de l’expérience utilisateur, les pages de formulaires par exemple.

Bref, vous savez tout. Et si vous avez des choses à ajouter, je vous laisse à vos commentaires. Merci à vous !

7 commentaires

  1. Aurélien dit :

    Bien pratique, merci !

  2. Romain dit :

    Je me permets de refaire ma demande car j’ai fais une erreur dans la saisie de mon adresse mail :

    Salut, super explication que j’ai suivie à la lettre. Seul bémol, au moment de valider ma planification de tache il apparait

    « Directories should not contain ‘:’ ».

    J’ai donc supprimé « http:// » et la tache est cette fois-ci acceptée.
    Peux tu me confirmer que cela va fonctionner correctement et executer ma tache comme je l’ai prévu ?

    Merci d’avance pour ta réponse.

    Romain

    • Salut Romain,

      Merci pour ton retour 😉 Si tu as indiqué le chemin exact d’accès à ton fichier cron, c’est-à-dire le chemin absolu, je pense que ça devrait marcher normalement.

      Tiens moi au courant,

      Anthony

  3. Claude-Paul dit :

    Merci,
    Cela fonctionne bien avec les cron
    Sauf que les liens générés par le sitemap Prestahop sont en .html
    Non reconnus par google qui nous plante des erreurs 404
    peut-être y a t il un paramétrage à effectuer dans Prestahop pour régularise la situation
    Si qq à une astuce, merci d’avance
    Cordialement,
    Claude Paul

  4. Larkin dit :

    Belle poste.
    Si vous êtes à la recherche d’une solution simple de tâche cron, vous pourriez envisager des services de Webcron qui vont charger une URL spécifique à un moment donné. Essayez : https://www.easycron.com/cron-job-tutorials/how-to-set-up-cron-job-for-prestashop-google-sitemap.

  5. David dit :

    Si on clique simplement sur le lien généré par Prestashop pour la tâche Cron, est-ce que la tâche Cron devrait se lancer et met sitemap XML à jour ? De mon côté, j’ai une page blanche et le sitemap ne se met pas à jour.

  6. Spip93 dit :

    Bonjour,
    Merci pour ce tuto.
    L’interface d’OVH a entre temps changé, mais j’ai réussi à ajouter une planification. Au fait, j’ai du enlever « ?token=xxxxxxxxxx&id_shop=1 » après le PHP pour qu’OVH accepte.

    Cependant, j’aurais voulu savoir, quelle fréquence vous préconisez pour la (ré)génération du sitemap ? Tous les jours ? Toutes les semaines ?…
    J’imagine que ça dépend si, après la mise en ligne du site, on continue de rentrer des nouveaux produit, non ?

    Merci pour votre réponse.
    Bonne journée

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut