Sitemap
Génération automatique de sitemap.xml et robots.txt. Script Node.js natif, zéro dépendance.
Utilisation
Lancez le script avec votre URL de production :
node generate-sitemap.js https://monsite.fr
Le script génère deux fichiers à la racine du projet :
sitemap.xml— plan du site pour les moteurs de rechercherobots.txt— autorise l'indexation et référence le sitemap
Node.js requis. Vérifier avec
node --version. Si non installé : Mac →brew install node, Windows → nodejs.org/downloads. Le sitemap est aussi généré automatiquement pardeploy.shavant chaque déploiement.
Fonctionnement
- Parcourt récursivement le projet à la recherche de fichiers
.html - Détecte la date de dernière modification de chaque fichier
- Calcule la priorité selon la profondeur (racine = 1.0, sous-dossier = 0.6...)
index.htmlreçoit toujours la priorité maximale (1.0)
Dossiers ignorés
Par défaut, les dossiers suivants sont exclus du sitemap :
node_modules,.git,.claudedocs,core,components,snippets,assets,api,configurateur,forms,data,wireframes- Dossiers commençant par un point
Modifiez la variable IGNORE_DIRS dans generate-sitemap.js pour ajuster.
Sortie
sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://monsite.fr/</loc>
<lastmod>2026-02-26</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://monsite.fr/blog</loc>
<lastmod>2026-02-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
robots.txt
User-agent: *
Allow: /
Disallow: /components/
Disallow: /core/
Disallow: /api/
Disallow: /assets/
Disallow: /snippets/
Sitemap: https://monsite.fr/sitemap.xml
Intégration CI/CD
Ajoutez la commande au pipeline de déploiement pour garder le sitemap à jour :
# Exemple GitHub Actions
- name: Generate sitemap
run: node generate-sitemap.js ${{ vars.SITE_URL }}
# Exemple script de déploiement
deploy:
node generate-sitemap.js https://monsite.fr
rsync -avz . user@server:/var/www/
Problèmes courants
| Problème | Cause probable | Solution |
|---|---|---|
command not found: node |
Node.js non installé | Installer Node.js (voir ci‑dessus) |
| URLs incorrectes dans le sitemap | Mauvais domaine passé en argument | Vérifier l'URL : node generate-sitemap.js https://monsite.fr (avec https://) |
| Le sitemap n'est pas pris en compte par Google | Non soumis dans Search Console | Aller sur search.google.com/search-console → Sitemaps → entrer sitemap.xml → Envoyer |