Logo de Cecil Cecil
Sur cette page

Personnaliser le sitemap et le robots.txt

Cecil génère automatiquement /sitemap.xml et /robots.txt : ce sont des pages par défaut générées avec les templates intégrés _default/sitemap.xml.twig et _default/robots.txt.twig.

Fonctionnement

Les deux pages sont déclarées dans la configuration par défaut :

pages:
  default:
    robots:
      path: robots
      layout: robots
      output: txt
    sitemap:
      path: sitemap
      layout: sitemap
      output: xml
      changefreq: monthly
      priority: 0.5
  • le sitemap liste toutes les pages affichables (publiées, ni virtuelles, ni redirigées, ni exclues), avec leurs traductions ;
  • le robots.txt autorise tout, interdit les redirections et la page 404, et indique l’emplacement du sitemap.

Exclure une page du sitemap

Ajoutez excluded dans le front matter de la page :

---
title: Merci
excluded: true
---

La page est toujours publiée, mais masquée du sitemap et des pages de liste (page d’accueil, sections, etc.). Utilisez published: false pour ne pas la publier du tout.

Modifier la fréquence et la priorité par défaut

pages:
  default:
    sitemap:
      changefreq: weekly
      priority: 0.8

Ajouter des règles au robots.txt

Créez une page pages/robots.md : son contenu est ajouté aux règles générées.

---
layout: robots
output: txt
---
User-agent: GPTBot
Disallow: /

Surcharger les templates

Extrayez les templates intégrés pour partir des originaux :

php cecil.phar util:templates:extract

Ou créez layouts/sitemap.xml.twig (ou layouts/robots.txt.twig) de zéro. Par exemple, un sitemap qui ignore aussi les pages ayant une variable de front matter personnalisée sitemap_exclude :

<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  {%- for p in site.pages.showable|filter(p => not p.sitemap_exclude|default(false))|sort_by_date ~%}
  <url>
    <loc>{{ url(p, {canonical: true}) }}</loc>
    <lastmod>{{ p.date|date('Y-m-d') }}</lastmod>
  </url>
  {%- endfor ~%}
</urlset>