Comment ajouter un numéro de page au titre de la page de liste des publications de blog dans Hugo

Certains moteurs de recherche n'apprécient pas lorsqu'un site web possède des pages ayant des titres identiques...

Sommaire

Pour ajouter le numéro de page au titre de la page de liste des articles de blog dans Hugo, vous devez modifier votre modèle de liste

(généralement layouts/blog/list.html ou layouts/_default/list.html, parfois même layouts/_default/baseof.html) pour détecter si vous êtes sur une page paginée. Ensuite, ajustez le titre dynamiquement en ajoutant le numéro de page lorsqu’il convient.

hugo-site-generator

Description commune

L’idée essentielle est d’utiliser Hugo’s objet de pagination intégré et d’afficher le numéro de page conditionnellement s’il est supérieur à 1. Voici comment vous pouvez le faire :

  1. Accéder à la pagination :
    Utilisez .Paginator sur votre page de liste pour travailler avec la pagination.
  2. Vérifier la page actuelle :
    Utilisez .Paginator.PageNumber pour obtenir le numéro de la page actuelle.
  3. Logique de titre conditionnelle :
    • Si vous êtes sur la page 1, affichez le titre normal ({{ .Title }}).
    • Si vous êtes sur la page 2 ou supérieure, ajoutez " - Page X" à votre titre.

Exemple de code de modèle Hugo (pour votre partial list.html ou dans la balise `` de votre baseof.html/layouts) :


  {{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Page {{ .Paginator.PageNumber }}{{ end }}

Ou, dans votre markup de page réel :


  {{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Page {{ .Paginator.PageNumber }}{{ end }}

Notes :

  • Cela fonctionne sur les pages de liste paginées (section, taxonomie, etc.) car .Paginator est disponible.
  • .Paginator.PageNumber retourne le numéro de la page actuelle.
  • N’ajoutez “Page X” que pour les pages suivantes, pas pour la première page.

Références :

  • Les guides de Hugo sur les listes et la pagination montrent que .Paginator.Project et les titres dynamiques sont la méthode recommandée.
  • Ajustez l’emplacement en fonction de savoir si vous souhaitez que cela soit dans l’onglet du navigateur (c’est-à-dire <title>) ou dans les titres de page.

Si vous souhaitez que le numéro de page s’affiche dans l’élément HTML <title> pour le référencement, placez la logique ci-dessus à l’endroit approprié dans votre balise <head> (souvent layouts/_default/baseof.html). Pour les titres visuels de page, placez-la là où vous affichez le titre de la section.

Il n’existe pas de court-code officiel pour cela - c’est un modèle directement défini à l’aide de Hugo dans vos modèles.

Modification MainRoad

Ce site utilise actuellement le thème Mainroad. Ainsi, pour améliorer le SEO sur cette page, j’ai corrigé la génération du titre sur les pages d’index des articles de blog comme suit :

<title>{{ block "title" . }}{{ if .IsHome }}{{ .Site.Title }}{{ if and (eq .Kind "home") .Paginator (gt .Paginator.PageNumber 1) }} - Page {{ .Paginator.PageNumber }}{{ end }}{{ else }}{{ .Title }}{{ if and (in (slice "section" "taxonomy" "term") .Kind) .Paginator (gt .Paginator.PageNumber 1) }} - Page {{ .Paginator.PageNumber }}{{ end }} - {{ .Site.Title }}{{ end }}{{ end }}</title>

Liens utiles