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