Cómo agregar un número de página al título de la página de lista de publicaciones del blog en Hugo
Algunos motores de búsqueda no les gustan cuando un sitio web tiene páginas con títulos iguales...
Para agregar el número de página al título de la página de lista de publicaciones en Hugo, debes modificar tu plantilla de lista
(suelen ser layouts/blog/list.html o layouts/_default/list.html, a veces incluso layouts/_default/baseof.html) para detectar si estás en una página paginada. Luego, ajusta el título dinámicamente agregando el número de página cuando sea necesario.
Descripción común
La idea esencial es utilizar Hugo’s objeto de paginador integrado y mostrar el número de página condicionalmente si es mayor que 1. Aquí te explico cómo puedes hacerlo:
- Acceder al paginador:
Usa.Paginator
en tu página de lista para trabajar con la paginación. - Verificar la página actual:
Usa.Paginator.PageNumber
para obtener el número de la página actual. - Lógica del título condicional:
- Si estás en la página 1, muestra el título normal (
{{ .Title }}
). - Si estás en la página 2 o superior, agrega
" - Página X"
al título.
- Si estás en la página 1, muestra el título normal (
Ejemplo de código de plantilla de Hugo (para tu partial list.html o en la etiqueta `` de tu baseof.html/layouts):
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Página {{ .Paginator.PageNumber }}{{ end }}
O, en tu marcado real de la página:
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Página {{ .Paginator.PageNumber }}{{ end }}
Notas:
- Esto funciona en páginas de lista paginadas (sección, taxonomía, etc.) ya que
.Paginator
está disponible. .Paginator.PageNumber
devuelve el número de la página actual.- Solo agrega “Página X” para páginas posteriores, no para la primera página.
Referencias:
- Las guías de Hugo sobre listas y paginación muestran
.Paginator.Project
y los encabezados dinámicos son la forma recomendada. - Ajusta la ubicación según si deseas que esto aparezca en la pestaña del navegador (es decir,
<title>
) o en encabezados en la página.
Si deseas que el número de página aparezca en el elemento HTML <title>
para SEO, coloca la lógica anterior en la ubicación adecuada en tu encabezado HTML (a menudo en layouts/_default/baseof.html). Para encabezados visuales, colócala donde imprimes el título de la sección.
No existe un shortcode oficial para esto - es un patrón establecido directamente usando Hugo en tus plantillas.
Modificación de MainRoad
Este sitio web actualmente está utilizando el tema Mainroad. Por lo tanto, para mejorar el SEO en esta página, he corregido la generación del título en las páginas de índice de publicaciones de este modo:
<title>{{ block "title" . }}{{ if .IsHome }}{{ .Site.Title }}{{ if and (eq .Kind "home") .Paginator (gt .Paginator.PageNumber 1) }} - Página {{ .Paginator.PageNumber }}{{ end }}{{ else }}{{ .Title }}{{ if and (in (slice "section" "taxonomy" "term") .Kind) .Paginator (gt .Paginator.PageNumber 1) }} - Página {{ .Paginator.PageNumber }}{{ end }} - {{ .Site.Title }}{{ end }}{{ end }}</title>
Enlaces útiles
- Hoja de trucos de Hugo
- Añadir metadatos de datos estructurados a Hugo
- Metadatos de imagen Opengraph en el generador de sitio estático Hugo
- Cómo almacenar imágenes de miniatura en la carpeta del paquete de página para sitios de Hugo con el tema Mainroad
- Comparación de la calidad de la traducción de páginas de Hugo - LLMs en Ollama