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>