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...
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.

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:
- Zugreifen auf den Paginator:
Verwenden Sie
.Paginatorauf Ihrer Listenseite, um mit der Paginierung zu arbeiten. - Aktuelle Seite prüfen:
Verwenden Sie
.Paginator.PageNumber, um die aktuelle Seitenzahl zu erhalten. - 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.
- Wenn auf Seite 1, zeigen Sie den regulären Titel (
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
.Paginatorverfügbar ist. .Paginator.PageNumbergibt 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.Projectund 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>