Wie Sie der Blog-Post-Listen-Seitentitel in Hugo eine Seitenzahl hinzufügen

Einige Suchmaschinen mögen es nicht, wenn eine Website Seiten mit denselben Titeln hat...

Inhaltsverzeichnis

Um die Seitenzahl zur Blog-Post-Listen-Seitenüberschrift in Hugo hinzuzufügen, müssen Sie Ihre Listenvorlage anpassen.

(meistens layouts/blog/list.html oder layouts/_default/list.html, manchmal sogar layouts/_default/baseof.html), um zu erkennen, ob Sie sich auf einer paginierten Seite befinden. Dann passen Sie den Titel dynamisch an, indem Sie die Seitenzahl bei Bedarf anhängen.

hugo-site-generator

Allgemeine Beschreibung

Die grundlegende Idee ist, das eingebaute Paginator-Objekt von Hugo zu verwenden und die Seitenzahl bedingt darzustellen, wenn sie größer als 1 ist. Hier ist, wie Sie dies tun können:

  1. Zugreifen auf den Paginator: Verwenden Sie .Paginator auf Ihrer Listenseite, um mit der Paginierung zu arbeiten.
  2. Aktuelle Seite prüfen: Verwenden Sie .Paginator.PageNumber, um die aktuelle Seitenzahl zu erhalten.
  3. Bedingte Titel-Logik:
    • Wenn auf Seite 1, zeigen Sie den regulären Titel ({{ .Title }}) an.
    • Wenn auf Seite 2 oder höher, fügen Sie " - Seite X" zu Ihrem Titel hinzu.

Beispiel Hugo-Vorlagencode (für Ihre list.html-Teilvorlage oder im <title>-Tag Ihrer baseof.html/layouts):

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

Oder in Ihrer tatsächlichen Seitenmarkierung:

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

Hinweise:

  • Dies funktioniert auf paginierten Listenseiten (Abschnitt, Taxonomie usw.), da .Paginator verfügbar ist.
  • .Paginator.PageNumber gibt die aktuelle Seitenzahl zurück.
  • Fügen Sie “Seite X” nur für nachfolgende Seiten hinzu, nicht für die erste Seite.

Referenzen:

  • Hugo-Listen- und Paginierungsanleitungen zeigen .Paginator.Project und dynamische Überschriften als empfohlene Methode.
  • Passen Sie den Standort an, je nachdem, ob Sie dies im Browser-Tab (d. h. <title>) oder in den Seitentiteln anzeigen möchten.

Wenn Sie möchten, dass die Seitenzahl im HTML-<title>-Element für SEO angezeigt wird, platzieren Sie die Logik oben an der richtigen Stelle im HTML-Kopf (oft layouts/_default/baseof.html). Für visuelle Seitentitel platzieren Sie sie dort, wo Sie den Abschnittstitel ausgeben.

Es gibt keinen offiziellen Shortcode dafür - es ist ein Muster, das direkt unter Verwendung von Hugo-Vorlagen in Ihren Layouts gesetzt wird.

MainRoad-Modifikation

Diese Website verwendet derzeit das Mainroad-Theme. Um die On-Page-SEO für diese Site zu verbessern, habe ich die Titelgenerierung in den Blog-Post-Indexseiten wie folgt behoben:

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