Plans de site

Créez des fichiers de plan de site générés automatiquement à référencer à partir de votre robots.txt. Cela permet l’optimisation pour les moteurs de recherche et la découverte de nouveau contenu. AEM peut générer trois types de plans de site : sans aucune configuration, basée uniquement sur un index de requête ou sur une configuration manuelle du plan de site. Un seul plan de site doit être limité à 50 000 URL et 50 Mo (sans compression) en taille - voir Limites.

Création d’un plan de site sans configuration

Si vous ne faites rien, votre plan de site s’affichera dans sitemap.xml et un index de plan de site sera présent dans sitemap.json. Il contient une liste de tous les documents que vous avez publiés.

Si vous avez démarré avec un autre type de plan de site et que vous souhaitez passer à ce type, vous devez supprimer le fichier de configuration helix-sitemap.yaml (défini manuellement dans GitHub ou généré automatiquement) et réindexer votre site.

Nom de domaine utilisé dans les URL externes

Pour personnaliser le domaine utilisé dans la création d’URL externes, ajoutez une propriété nommée host ou cdn.prod.host dans la configuration de votre projet (nommée .helix/config lors de l’utilisation de Google Drive comme serveur principal ou .helix/config.xlsx sur Sharepoint) et prévisualisez ce fichier pour l’activer.

Génération d’une configuration de plan de site en fonction d’un index

Consultez le document Indexation pour en savoir plus sur l’indexation. Pour générer une configuration de plan de site basée sur un index, vérifiez que vous avez déjà configuré un index de requête initial, comme expliqué ici. Vous générez ainsi un plan de site à l’emplacement suivant :

https://<branch>--<repo>--<owner>.hlx.page/sitemap.xml

Et une configuration de plan de site à l’emplacement suivant :

https://<branch>--<repo>--<owner>.hlx.page/helix-sitemap.yaml

Il est recommandé de créer un fichier sitemap-index.xml qui fait référence à tous vos plans de site et de conserver ce fichier dans le code de votre projet dans votre référentiel github. Il est ainsi facile d’ajouter de nouveaux plans de site à mesure que le projet se développe.

Configuration manuelle de la configuration du plan de site

Si vous avez besoin de davantage de personnalisation que celle fournie par le fichier de configuration de plan de site généré, vous pouvez copier son contenu et le coller dans un fichier nommé helix-sitemap.yaml dans le dossier racine de votre projet.

Remarque : lors de l’utilisation d’un index et d’un plan de site configurés manuellement (par exemple, votre référentiel de code comprend un fichier helix-query.yaml et helix-sitemap.yaml ), votre définition d’index doit inclure la propriété robots pour vous assurer que le plan de site exclut les pages avec des métadonnées robots: noindex. Lors de l’utilisation de définitions d’index générées automatiquement, suivez simplement les recommandations de la documentation d’indexation afin que ces pages soient exclues de l’index.

Les sections suivantes contiennent les types de plans de site pris en charge.

Plan de site simple

Voici un helix-sitemap.yaml simple. Il suppose qu’un seul index contenant toutes les pages qui doivent apparaître dans le plan du site.

 sitemaps:
   example:
     source: /query-index.json
     destination: /sitemap-en.xml

Si vous souhaitez que les dates de dernière modification soient incluses dans les URL de votre plan de site, ajoutez une propriété lastmod comprenant un format à votre configuration.

 sitemaps:
   example:
     source: /query-index.json
     destination: /sitemap-en.xml
     lastmod: YYYY-MM-DD

Plusieurs plans de site

Il est courant de disposer de plans de site par section des sites et/ou par pays ou langue. AEM prend en charge les plans de site, y compris les références de hreflang correspondantes. Dans l’exemple suivant, nous supposons qu’il existe un mappage un-à-un entre les index et les fichiers XML du plan de site.

 sitemaps:
   example:
     lastmod: YYYY-MM-DD
     languages:
       en:
         source: /en/query-index.json
         destination: /sitemap-en.xml
         hreflang: en
       fr:
         source: /fr/query-index.json
         destination: /sitemap-fr.xml
         hreflang: fr
         alternate: /fr/{path}

Si deux pages de la section française et de la section anglaise partagent un suffixe commun, elles sont liées. Par exemple, si vous avez une /welcome de page dans la section anglaise et une /fr/welcome de page dans la section française, l’entrée résultante dans la /sitemap-en.xml ressemblera à ceci :

<url>
  <loc>https://wwww.mysite.com/welcome</loc>
  <xhtml:link rel="alternate" hreflang="en" href="https://wwww.mysite.com/welcome"/>
  <xhtml:link rel="alternate" hreflang="fr" href="https://wwww.mysite.com/fr/welcome"/>
</url>

Une entrée similaire sera disponible dans /sitemap-fr.xml.

Spécification manuelle de la langue principale

Il peut y avoir des situations où vous disposez d’autres versions d’une page, mais où vous ne pouvez pas utiliser un suffixe commun pour les identifier, peut-être parce que vous portez un site web hérité qui ne doit pas voir ses chemins modifiés. Dans ce cas, vous pouvez spécifier un primary-language-url pour l’autre emplacement, dans les métadonnées du document.

Supposons que notre langue principale soit l’anglais, que nous ayons un /welcome de page dans la section anglaise et un /fr/bienvenu dans la section française, et que ce dernier soit une version alternative de la première.

Tout d’abord, nous ajoutons ces informations au document à l’/fr/bienvenu dans ses métadonnées :

Vous pouvez également l’ajouter à une feuille de metadata globale, comme indiqué dans Métadonnées en bloc.

Nous ajoutons ensuite une propriété indexée primary-language-url à l’index français :

 primary-language-url:
   select: head > meta[name="primary-language-url"]
   value: attribute(el, "content")

Enfin, nous republions la page en français et reconstruisons le plan du site.

Spécifier la langue par défaut

Une autre exigence courante consiste à spécifier la langue par défaut d’un plan de site multilingue. Pour ce faire, ajoutez une default de propriété dans le plan du site :

 sitemaps:
   example:
     default: en
     lastmod: YYYY-MM-DD
     languages:
       en:
         source: /en/query-index.json
         destination: /sitemap-en.xml
         hreflang: en
       fr:
         source: /fr/query-index.json
         destination: /sitemap-fr.xml
         hreflang: fr
         alternate: /fr/{path}

Dans le plan de site qui en résulte, toutes les entrées de la sous-arborescence anglaise auront une entrée alternative supplémentaire avec hreflang x-default.

Spécification de plusieurs marques pour une sous-arborescence

Parfois, il est nécessaire de mapper plusieurs hreflangs à une seule sous-arborescence de langue, par exemple, imaginons que nous voulons que les éléments suivants apparaissent dans le plan de site résultant :

<url>
 <loc>https://myhost/la/page</loc>
 <xhtml:link rel="alternate" hreflang="es-VE" href="https://myhost/la/page"/>
 <xhtml:link rel="alternate" hreflang="es-SV" href="https://myhost/la/page"/>
 <xhtml:link rel="alternate" hreflang="es-PA" href="https://myhost/la/page"/>
</url>

Chaque page de notre source de plan de site doit apparaître exactement une fois, mais plusieurs autres marques doivent y être associées. Pour ce faire, vous devez spécifier un tableau de langues dans la propriété hreflang :

 sitemaps:
   example:
     lastmod: YYYY-MM-DD
     languages:
       la:
         source: /la/query-index.json
         destination: /sitemap-la.xml
         hreflang:
           - es-VE
           - es-SV
           - es-PA

Plusieurs Index Agrégés En Un Plan De Site

Dans certains cas, il est plus facile d’avoir un plan de site plus grand que de petits plans de site fragmentés, en particulier car il existe une limite de plans de site pouvant être envoyés aux moteurs de recherche par site.

L’exemple suivant montre comment agréger plusieurs index distincts en un seul plan de site.

 sitemaps:
   example:
     lastmod: YYYY-MM-DD
     languages:
       dk:
         source: /dk/query-index.json
         destination: /sitemap.xml
         hreflang: dk
         alternate: /dk/{path}
       no:
         source: /no/query-index.json
         destination: /sitemap.xml
         hreflang: no
         alternate: /no/{path}

En utilisant la même destination, il est possible de combiner plusieurs petits plans de site en un plan de site plus grand.

Inclusion d’autres plans de site en entrée

Dans un scénario mixte, où toutes les langues d’un plan de site ne sont pas gérées dans AEM, vous pouvez inclure des plans de site provenant d’autres arborescences de langue en spécifiant un chemin XML comme source, comme dans :

sitemaps:
   example:
     lastmod: YYYY-MM-DD
     languages:
       en:
         source: /en/query-index.json
         destination: /sitemaps/sitemap-en.xml
         hreflang: en
       fr:
         source: https://www.mysite.com/legacy/sitemap-fr.xml
         destination: /sitemaps/sitemap-fr.xml
         hreflang: fr
         alternate: /fr/{path}

Dans cet exemple, nous utilisons un plan de site français externe pour calculer tous les emplacements du plan de site. AEM déterminera des alternatives aux URL de plan de site en anglais en déconstruisant les équivalents en français dans le plan de site externe à l’aide de la définition de alternate.

Ajout d’une extension à tous les emplacements du plan du site

Dans un scénario où vous souhaitez que tous vos emplacements aient une extension, par exemple .html, et où vous ne pouvez pas générer de feuille de helix-sitemap dans votre index de requête pour dériver une formule, vous pouvez ajouter une extension à toutes les langues ou à une langue individuelle à l’aide d’une propriété extension :

sitemaps:
   example:
     lastmod: YYYY-MM-DD
     extension: .html
     languages:
       en:
         source: /en/query-index.json
         destination: /en/sitemap.xml
         hreflang: en
       fr:
         source: /fr/query-index.json
         destination: /fr/sitemap.xml
         hreflang: fr
         alternate: /fr/{path}
recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec