Skip to content

Génération de sitemap

Génération automatique de sitemaps XML pour les moteurs de recherche et d'index JSON pour la recherche sur le site.

Aperçu

Le thème génère :

  • Sitemap XML : pour les robots d'exploration des moteurs de recherche
  • Index de recherche JSON : pour la recherche côté client
  • robots.txt : instructions pour les robots d'exploration

Sitemap XML

Génération automatique

En utilisant le plugin jekyll-sitemap :

# _config.yml
plugins:
  - jekyll-sitemap

Sortie

Généré à l'emplacement /sitemap.xml :

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://yoursite.com/</loc>
    <lastmod>2025-01-25T00:00:00+00:00</lastmod>
  </url>
  <url>
    <loc>https://yoursite.com/docs/</loc>
    <lastmod>2025-01-20T00:00:00+00:00</lastmod>
  </url>
</urlset>

Sitemap personnalisé

Créez sitemap.xml manuellement :

{% raw %}---
layout: null
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  {% for page in site.pages %}
    {% unless page.sitemap == false %}
    <url>
      <loc>{{ page.url | absolute_url }}</loc>
      <lastmod>{{ page.last_modified_at | default: site.time | date_to_xmlschema }}</lastmod>
      <changefreq>{{ page.sitemap.changefreq | default: 'monthly' }}</changefreq>
      <priority>{{ page.sitemap.priority | default: '0.5' }}</priority>
    </url>
    {% endunless %}
  {% endfor %}
</urlset>{% endraw %}

Index de recherche JSON

Fichier généré

search.json pour la recherche côté client :

[
  {
    "title": "Getting Started",
    "url": "/docs/getting-started/",
    "content": "Welcome to the documentation...",
    "categories": ["docs"],
    "tags": ["setup"]
  }
]

Modèle de recherche

{% raw %}---
layout: null
---
[
  {% assign pages = site.pages | where_exp: "page", "page.title" %}
  {% for page in pages %}
  {
    "title": {{ page.title | jsonify }},
    "url": {{ page.url | jsonify }},
    "content": {{ page.content | strip_html | truncatewords: 100 | jsonify }},
    "categories": {{ page.categories | jsonify }},
    "tags": {{ page.tags | jsonify }}
  }{% unless forloop.last %},{% endunless %}
  {% endfor %}
]{% endraw %}

robots.txt

Configuration de base

# robots.txt
User-agent: *
Allow: /

Sitemap: https://yoursite.com/sitemap.xml

Modèle Jekyll

{% raw %}---
layout: null
permalink: /robots.txt
---
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /private/

Sitemap: {{ site.url }}/sitemap.xml{% endraw %}

Exclusion de pages

Du sitemap XML

---
sitemap: false
---

Ou avec la configuration du plugin :

# _config.yml
defaults:
  - scope:
      path: "admin/*"
    values:
      sitemap: false

De l'index de recherche

---
search: false
---
{% raw %}{% unless page.search == false %}
  // Include in search index
{% endunless %}{% endraw %}

Priorité et fréquence

Paramètres par page

---
sitemap:
  priority: 0.8
  changefreq: weekly
---

Paramètres par défaut

# _config.yml
defaults:
  - scope:
      path: ""
      type: "posts"
    values:
      sitemap:
        changefreq: monthly
        priority: 0.7
  - scope:
      path: ""
      type: "pages"
    values:
      sitemap:
        changefreq: weekly
        priority: 0.5

Soumission aux moteurs de recherche

Google Search Console

  1. Accédez à Search Console
  2. Ajoutez votre site
  3. Soumettez l'URL du sitemap : https://yoursite.com/sitemap.xml

Bing Webmaster Tools

  1. Accédez à Bing Webmaster Tools
  2. Ajoutez votre site
  3. Soumettez le sitemap

Validation

Validation XML

Testez avec XML Sitemap Validator

Google Search Console

Vérifiez l'état du sitemap dans Search Console → Sitemaps

Dépannage

Sitemap introuvable

  1. Vérifiez que le plugin est installé
  2. Vérifiez que _site/sitemap.xml existe
  3. Vérifiez les permissions du fichier

Pages manquantes

  1. Vérifiez que la page n'est pas exclue
  2. Vérifiez le front matter pour sitemap: false
  3. Assurez-vous que la page a un titre

JSON invalide

  1. Recherchez les caractères non échappés
  2. Validez la syntaxe JSON
  3. Vérifiez les erreurs de modèle Liquid

Bonnes pratiques

Maintenez le sitemap à jour

  • Régénérez lors du déploiement
  • Incluez les dates lastmod
  • Supprimez les pages effacées

Optimiser pour la recherche

  • Inclure toutes les pages importantes
  • Utiliser des titres descriptifs
  • Garder des URL propres

Surveiller les performances

  • Vérifier le statut d'indexation
  • Surveiller les erreurs d'exploration
  • Examiner les statistiques de recherche

Ressources associées

Voir aussi

  • [[SEO]]
  • [[Deployment]]
  • [[Analytics]]