Como adicionar um número de página ao título da página da lista de posts do blog no Hugo
Alguns motores de busca não gostam quando um site possui páginas com títulos idênticos...
Para adicionar o Número da página ao título da página de lista de posts no Hugo, você precisa modificar seu modelo de lista
(geralmente layouts/blog/list.html ou layouts/_default/list.html, às vezes até layouts/_default/baseof.html) para detectar se você está em uma página paginada. Em seguida, ajuste o título dinamicamente adicionando o número da página quando apropriado.
Descrição comum
A ideia essencial é usar Hugo’s objeto de paginador embutido e renderizar o número da página condicionalmente se for maior que 1. Aqui está como você pode fazê-lo:
- Acesse o paginador:
Use.Paginator
em sua página de lista para trabalhar com a paginação. - Verifique a página atual:
Use.Paginator.PageNumber
para obter o número da página atual. - Lógica de título condicional:
- Se estiver na página 1, mostre o título normal (
{{ .Title }}
). - Se estiver na página 2 ou superior, adicione
" - Página X"
ao seu título.
- Se estiver na página 1, mostre o título normal (
Exemplo de código de template do Hugo (para seu partial list.html ou na tag `` de seu baseof.html/layouts):
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Página {{ .Paginator.PageNumber }}{{ end }}
Ou, em seu markup real:
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Página {{ .Paginator.PageNumber }}{{ end }}
Notas:
- Isso funciona em páginas de lista paginadas (seção, taxonomia, etc.) pois
.Paginator
está disponível. .Paginator.PageNumber
retorna o número da página atual.- Adicione “Página X” apenas para páginas subsequentes, não para a primeira página.
Referências:
- Os guias do Hugo sobre listas e paginação mostram
.Paginator.Project
e títulos dinâmicos são a maneira recomendada. - Ajuste a localização com base em se deseja que isso esteja no título da aba do navegador (ou seja,
<title>
) ou em títulos de página.
Se quiser que o número da página apareça no elemento HTML <title>
para SEO, coloque a lógica acima na localização apropriada no cabeçalho do seu HTML (geralmente layouts/_default/baseof.html). Para títulos visuais de página, coloque-o onde você exibe o título da seção.
Não há um shortcode oficial para isso - é um padrão definido diretamente usando Hugo de template em seus layouts.
Modificação do tema MainRoad
Este site está atualmente usando o tema Mainroad. Então, para melhorar o SEO na página de índice de posts do blog deste site, corrigi a geração do título assim:
<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>