Como listar todas as URLs (páginas, posts e CPT) de um site WordPress2 min leitura
Aprenda algumas soluções para obter uma lista de todo o conteúdo público de um site, utilizando o sitemap, REST API ou plugins.
Uma tarefa comum ao fazer a auditoria de um site, principalmente para otimizações de SEO, é obter uma lista de todas as URLs públicas do site. Abaixo mostro várias opções de como fazer isto para sites criados com o WordPress. Para simplificar, estou utilizando páginas neste texto para me referir à todo conteúdo público de um site, incluindo posts e Custom Post Types (CPT).
Sitemap
Um sitemap é um arquivo público, geralmente no formato XML, que lista todas as páginas de um site. Ele normalmente é criado para os mecanismos de busca para facilitar a indexação do site. Por motivos de organização e limitação de 50.000 URLs, normalmente há um arquivo índice do sitemap que aponta para vários outros arquivos de sitemap. Se você acessar cada um desses arquivos listados, obterá a lista de todas as páginas públicas do site.
Sitemap nativo
Desde o WordPress 5.5 a plataforma possui um gerador automático de sitemap. Ele está disponível através da URL wp-sitemap.xml
.
Yoast SEO
O plugin Yoast SEO é uma das soluções mais populares de SEO para o WordPress. Ele gera um sitemap na URL sitemap_index.xml
.
REST API
O WordPress possui uma REST API que é bem poderosa. É possível utilizá-la para obter a lista de todas as páginas através dos endpoints de páginas (/wp-json/wp/v2/pages
), posts (/wp-json/wp/v2/posts
) ou outro Custom Post Type listado em /wp-json/wp/v2/
.
Por questões de otimização da API, é possível exibir no máximo 100 páginas por vez (com per_page=100
) e caso você precisar de mais páginas, será necessário usar paginação (exemplo: page=2
).
Plugin para listar páginas
Pesquisando por uma solução simples para listas todas as páginas de uma só vez, encontrei o plugin List all URLs. Ele adiciona uma opção dentro do menu Configurações do Painel Administrativo, onde é possível listar todas as URLs ou escolher listar apenas um tipo específico (somente páginas, posts ou CPT). Apesar da última atualização dele ter sido faz mais de 2 anos atrás, ele ainda funciona.
Estas são as soluções que conheço para listar todas as páginas de um site. Se você souber de alguma diferente, deixe um comentário.