SEO para WordPress: guia técnico
O SEO no WordPress raramente falha por falta de recurso — falha por sobreposição. O tema traz sua própria marcação schema, o plugin de SEO reescreve títulos e meta descriptions, um segundo plugin gera outro sitemap, e a estrutura de permalinks continua no padrão ?p=123 que veio da instalação. O resultado é um site com dois <title> competindo no <head>, sitemaps redundantes indexados pelo Google e uma URL que não comunica nada.
Este guia trata o SEO no WordPress como um sistema coordenado: cada componente (tema, stack de plugins, permalinks, sitemap, robots.txt, schema) tem um dono claro, e o trabalho é garantir que eles se articulem sem duplicação nem lacuna.
Escolha e configuração do tema
O tema define a base HTML sobre a qual todo o resto opera. Um tema pesado, com marcação semântica frágil ou incompatível com Core Web Vitals, cria um teto de otimização que nenhum plugin resolve depois.
Critérios de seleção:
- Performance de renderização. Prefira temas leves, com CSS enxuto, sem dependências de builders visuais pesados quando o objetivo é conteúdo editorial. Cada script bloqueante no
<head>custa em LCP. - Marcação semântica. O tema deve usar
<article>,<header>,<main>,<nav>e hierarquia de headings (<h1>único por página,<h2>para seções, e por diante) de forma consistente. Isso reduz o trabalho de schema e melhora a compreensão da página. - Compatibilidade com Core Web Vitals. Verifique se o tema entrega LCP estável, evita layout shift (imagens com dimensões declaradas, fontes com
font-display) e não bloqueia o thread principal com scripts síncronos. - Convivência com plugins de SEO. Temas que já injetam meta tags, Open Graph e schema JSON-LD por conta própria são candidatos a conflito. Prefira temas que deleguem essas responsabilidades ao plugin, ou que ofereçam interruptores para desligar cada função.
Ajustes iniciais após ativar o tema:
- Em Aparência > Personalizar (ou no painel do tema), desative módulos redundantes: Open Graph próprio, meta description automática, schema embutido — tudo isso será assumido pelo plugin de SEO.
- Confira o HTML da home e de uma página interna com Exibir código-fonte. Procure por
<title>,<meta name="description">e blocos<script type="application/ld+json">. Se aparecerem duplicados, o tema ainda está inserindo o que deveria vir só do plugin. - Configure a imagem destacada padrão e defina tamanhos de imagem em Ajustes > Mídia para evitar que o WordPress sirva versões desproporcionais.
Stack de plugins de SEO
A regra estruturante: um plugin de SEO principal por vez. Rodar Yoast e Rank Math simultaneamente, por exemplo, produz duplicação de meta tags, sitemaps concorrentes e schema contraditório. Escolha um, configure a fundo, e só troque com plano de migração.
Comparativo funcional dos principais candidatos:
- Yoast SEO. O mais antigo e conservador. Interface guiada, foco em análise de conteúdo e legibilidade. Boa opção para equipes editoriais que querem indicadores por artigo. Versão gratuita cobre o básico; recursos como redirecionamento automático e keywords adicionais ficam na premium.
- Rank Math. Versão gratuita generosa: schema granular por tipo de post, redirecionamentos, integração com Search Console, monitoramento de 404. Interface mais densa que a do Yoast. Boa escolha quando você quer mais controle sem pagar plano premium.
- SEOPress. Alternativa enxuta, sem "upsell" agressivo no admin. Cobre bem o essencial (títulos, meta, sitemap, schema, Open Graph) e tem versão paga acessível. Boa opção quando o objetivo é uma configuração limpa e previsível.
- All in One SEO (AIOSEO). Histórico longo, retomada de desenvolvimento nos últimos anos. Interface moderna, integração com WooCommerce e recursos de schema. Concorre diretamente com Yoast e Rank Math em cobertura.
Critérios para escolher:
- Perfil da equipe. Redatores sem repertório técnico rendem mais com Yoast ou AIOSEO, que apresentam feedback direto por post. Times técnicos costumam preferir Rank Math ou SEOPress pelo controle.
- Escopo do site. Site editorial simples: qualquer um resolve. E-commerce, multisite, muitos custom post types: Rank Math e AIOSEO tendem a oferecer mais granularidade nativa.
- Custo total. Compare o que vem no gratuito de cada um contra o que você realmente precisa. Redirecionamentos e schema por tipo, por exemplo, são pagos em alguns e gratuitos em outros.
Configuração base (independente da escolha):
- Rodar o assistente de configuração inicial do plugin, definindo tipo de site, organização, nome/logo e perfis sociais.
- Definir título e meta descrição padrão para posts, páginas e taxonomias, usando as variáveis do próprio plugin (
%%title%%,%%sitename%%,%%excerpt%%) — evita meta hardcoded que envelhece. - Configurar canonical automático por padrão. Só sobrescrever manualmente em casos específicos (paginação, versões alternativas).
- Ativar Open Graph e Twitter Cards no plugin — e desligar no tema, se existirem lá.
- Decidir quais tipos de conteúdo aparecem no sitemap e no índice. Tags e categorias sem conteúdo próprio costumam ser ruído; anexos (attachment pages) quase sempre devem ser redirecionados para o post pai.
Estrutura de permalinks
A configuração de permalinks fica em Ajustes > Links Permanentes. A instalação padrão do WordPress costuma vir em "Simples" (?p=123), o que produz URLs opacas, sem palavra-chave e sem hierarquia legível.
Estrutura recomendada:
/%postname%/é o padrão mais adotado para sites editoriais e institucionais. Gera URLs curtas, focadas na palavra-chave do slug, sem prefixo de data (que envelhece o conteúdo visualmente) nem de categoria (que engessa a navegação se o post mudar de seção)./%category%/%postname%/faz sentido quando a categoria é uma faceta estável do conteúdo e você quer reforçar a hierarquia na URL. Cuidado: se um post mudar de categoria, a URL muda junto e você precisa de redirecionamento./%year%/%monthnum%/%postname%/é aceitável para veículos de notícia onde a data é parte da identidade da matéria, mas tende a datar conteúdos evergreen.
Como configurar:
- Ir em Ajustes > Links Permanentes.
- Selecionar Nome do post (ou a opção "Personalizada" com a estrutura desejada).
- Salvar. O WordPress regrava as regras de reescrita no
.htaccess(Apache) ou espera que o Nginx tenha o bloco de reescrita apropriado.
Implicações em site existente:
Mudar permalinks em um site que já está indexado quebra todas as URLs antigas. Antes de alterar:
- Exportar a lista de URLs atuais (via sitemap ou crawl com Screaming Frog / equivalente).
- Planejar redirecionamentos 301 de cada URL antiga para a nova equivalente. Não confie no "WordPress cria redirect sozinho" — ele faz isso apenas em alguns casos de mudança de slug de post individual, não em mudança de estrutura global.
- Implementar os redirects via plugin (Redirection, ou o módulo do próprio SEO plugin) ou diretamente no
.htaccess. - Após publicar, resubmeter o sitemap no Google Search Console e monitorar erros de rastreamento por várias semanas.
Se o site é novo, a decisão é livre. Se tem tráfego consolidado, a mudança precisa ser tratada como projeto de migração.
Sitemap.xml e robots.txt
Sitemap e robots.txt são os dois pontos onde a duplicação entre tema e plugins costuma acontecer sem que ninguém perceba.
Sitemap:
- Ativar a geração de sitemap no plugin de SEO escolhido.
- Verificar em
https://seudominio.com/sitemap.xml(ou/sitemap_index.xml, dependendo do plugin) se o arquivo aparece e lista os sitemaps por tipo de conteúdo. - Conferir que o sitemap nativo do WordPress (introduzido a partir de versões recentes do core, em
/wp-sitemap.xml) não está competindo com o do plugin. A maioria dos plugins de SEO desliga o nativo automaticamente ao ativar o próprio — confirme. - Excluir do sitemap tipos que não devem ser indexados: attachments, tags vazias, custom post types internos.
- Enviar o sitemap no Google Search Console.
Robots.txt:
O WordPress serve um robots.txt virtual por padrão. A maioria dos plugins de SEO permite editá-lo pelo painel, sem criar arquivo físico. Se você criar um robots.txt físico na raiz, ele sobrescreve o virtual — decida por um dos dois caminhos e mantenha só um.
Diretrizes típicas para um WordPress:
``` User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php
Sitemap: https://seudominio.com/sitemap.xml ```
Evite bloquear /wp-content/ inteiro — isso impede o Google de acessar CSS, JS e imagens necessários para renderizar a página corretamente. Bloqueios amplos ou mal escritos aqui costumam ser causa de "página indexada, mas com problemas" no Search Console.
Schema (dados estruturados)
Marcação schema em WordPress vem de três lugares possíveis: o tema, o plugin de SEO e plugins específicos de schema. Se dois deles estiverem ativos, o Google recebe blocos JSON-LD contraditórios para a mesma página.
Método:
- Decidir quem é o dono do schema. Na maioria dos casos, é o plugin de SEO — ele já cobre Organization, WebSite, Article, BreadcrumbList e outros tipos comuns.
- Desativar o schema do tema (se houver interruptor) ou verificar no código-fonte se ele continua injetando.
- Se precisar de tipos específicos que o plugin de SEO não cobre bem (Recipe, Event, Product avançado, FAQ com controle fino), avaliar um plugin dedicado — mas desativar as áreas correspondentes no plugin de SEO para não duplicar.
- Validar as páginas principais (home, categoria, post, página institucional) no Rich Results Test do Google e no Schema Markup Validator.
Integração e verificação
Com tema, plugins, permalinks, sitemap, robots.txt e schema definidos, a integração final é uma checagem de sobreposição.
Checklist de coordenação:
- No
<head>de qualquer página, deve existir um único<title>, uma única<meta name="description">, um único<link rel="canonical">, um único bloco Open Graph por propriedade. - O sitemap listado no robots.txt bate com o sitemap real gerado pelo plugin.
- A estrutura de permalinks aplicada é a mesma refletida nas URLs do sitemap.
- O schema JSON-LD da página vem de um único emissor e valida sem erros.
Ferramentas de verificação:
- Google Search Console: enviar o sitemap, monitorar cobertura, verificar relatório de aprimoramentos (Core Web Vitals, breadcrumbs, dados estruturados).
- Rich Results Test: validar schema em URLs específicas.
- Exibir código-fonte / DevTools: conferir manualmente o
<head>das páginas críticas. - Crawl com ferramenta externa (Screaming Frog, Sitebulb ou equivalente): identifica duplicações de título, canonicals conflitantes e páginas fora do sitemap em um passo.
Diagnóstico de conflitos comuns
Quando o site "está com SEO configurado" mas o Search Console mostra problemas, o padrão quase sempre é sobreposição entre componentes.
Sintomas típicos e o que investigar:
- Dois
<title>no<head>. Tema e plugin de SEO emitindo título ao mesmo tempo. Solução: desligar a emissão de título no tema (geralmente em uma opção do painel do tema, ou removendowp_title()doheader.phpquando o tema não delega ao core). - Duas meta descriptions. Mesma causa. Desligar no tema.
- Sitemaps múltiplos. Dois plugins de SEO ativos, ou plugin de SEO + sitemap nativo do WordPress + plugin de cache/CDN gerando outro. Desativar tudo exceto um.
- Schema JSON-LD contraditório. Tema emite
Articlecom umauthor, plugin emite outroArticlecomauthordiferente. Isolar desligando o schema do tema. - Canonicals conflitantes. Plugin de cache/CDN reescrevendo canonical, ou tag hardcoded no tema. Verificar no HTML final servido, não só no código do WordPress.
- Meta robots noindex inesperado. Muitas vezes vem de "Ajustes > Leitura > Pedir aos motores de busca que não indexem este site" acidentalmente marcado, ou de um plugin de staging que aplicou noindex e não foi revertido no deploy.
Método de isolamento:
- Reproduzir o problema em uma URL específica e capturar o HTML servido (
curlou "Exibir código-fonte"). - Identificar qual componente injeta a tag problemática — buscar strings características (nomes de classe, comentários HTML deixados pelo plugin, ordem no
<head>). - Desativar temporariamente o suspeito e reservir a URL. Repetir até isolar.
- Uma vez identificado, corrigir na fonte (interruptor no plugin, opção no tema, código customizado) — não sobrescrever com outro plugin.
Aprofundamento por subtema
Este guia coordena a arquitetura de SEO no WordPress. Cada componente tem profundidade própria que merece tratamento dedicado:
- Dados estruturados (schema): tipos além do Article/Organization padrão, integração com produtos, receitas, FAQs, eventos.
- Core Web Vitals no WordPress: caching, otimização de imagens (WebP, lazy loading nativo), redução de CSS/JS, escolha de hospedagem.
- Sitemap avançado: sitemaps segmentados por tipo, sitemaps de imagem e vídeo, controle de prioridade e frequência.
- Migração de site WordPress: mudança de domínio, mudança de estrutura de permalinks, redirecionamentos em escala.
- Multisite: SEO em rede WordPress multisite, canonicals cruzados, sitemaps por site.
- Conteúdo duplicado: paginação, arquivos de autor, taxonomias sobrepostas, versões
?replytocom=.
Cada um desses temas parte da base coordenada descrita aqui: a stack está definida, um dono claro para cada função, e o trabalho de aprofundamento não precisa desmontar a fundação para avançar.