modern seo

Escreve slugs de URL limpos e legíveis

O MetricSpot verifica o slug do URL quanto a comprimento, separadores e se se lê como palavras reais. Slugs limpos (/guia-seo) superam IDs (/page?id=123) em cliques e indexação.

O que esta verificação faz

Analisa o URL da página auditada e inspeciona o último segmento do caminho (o “slug”). A verificação falha quando o slug é:

  • Um ID numérico ou em hash/posts/47391, /p?id=a8f3e2b0.
  • Demasiado longo — mais de 60 caracteres.
  • Recheado de underscores em vez de hífens — /guia_seo_para_2026_completo.
  • Maioritariamente stop words/qual-e-a-melhor-forma-de-fazer-x.
  • Tudo em maiúsculas ou mixed case/Guia-SEO, /guiaSeo.
  • Contém espaços ou caracteres especiais/Guia SEO.html, /Guia%20SEO.

Porque é importante

Slugs limpos não são apenas estéticos — afetam click-through, ranking e shareability de formas mensuráveis.

  • Click-through. Estudos encontram consistentemente que URLs descritivos em resultados de pesquisa recebem 10–30% mais cliques do que IDs. O slug aparece ao lado do título em cada SERP — é parte do teu cabeçalho.
  • Sinal de ranking. O Google confirmou que o slug do URL é um fator (menor) de ranking. Palavras no slug que correspondem à pesquisa do utilizador ficam a negrito, tal como título e descrição.
  • Shareability. Um URL que alguém consegue ler é um URL que alguém consegue memorizar e dizer a um colega. metricspot.com/docs/ativar-hsts/ é partilhável; metricspot.com/docs/?id=42891 não é.
  • Extração por IA. ChatGPT, Perplexity e Google AI Overviews citam slugs nas citações. Um slug limpo lê-se como uma fonte real; um ID lê-se como gerado por máquina.

Como corrigir

Usa slugs em minúsculas, separados por hífen, ricos em palavras-chave e com menos de ~60 caracteres.

Bons:

/docs/ativar-hsts/
/blog/como-funciona-https/
/precos/
/produtos/auriculares-wireless-pro/

Maus:

/docs/47391/                          (ID, sem significado)
/Docs/Ativar_HSTS/                    (maiúsculas, underscores)
/o-guia-completo-de-2026-para-ativar-hsts-no-teu-site-passo-a-passo/   (demasiado longo)
/docs/?id=hsts&v=2&from=blog          (query params em URLs de conteúdo)

Regras.

  • Hífens, não underscores. O Google trata hífens como fronteiras de palavras; underscores não. ativar-hsts corresponde a “ativar HSTS”; ativar_hsts lê-se como uma palavra única amassada.
  • Minúsculas. Alguns servidores tratam /Docs/Ativar-HSTS/ como um URL diferente de /docs/ativar-hsts/ — conteúdo duplicado, sinais divididos. Força tudo a minúsculas na camada de redirecionamento.
  • Larga stop words seletivamente. /como-funciona-https/ está bem. /a-melhor-forma-de-ativar-rapidamente-https-em-nginx/ lê-se como SEO de 2012.
  • Sem extensões de ficheiro. /about.html, /post.php. Tira-as; redireciona URLs antigos com extensões para a versão limpa.
  • URLs estáveis. Uma vez que um slug é publicado e indexado, mudá-lo custa-te backlinks. Escolhe um bom slug à primeira. Se tiveres mesmo de mudar, cria um redirecionamento 301 do antigo.

WordPress — Definições → Permalinks → “Nome do post” dá-te slugs limpos por defeito. Para cada post, edita o campo do slug na meta-box do URL antes de publicar. Se mudares um slug publicado, instala o Redirection para que o URL antigo faça 301 automaticamente.

Astro — o routing baseado em ficheiros torna os slugs explícitos. Dá o nome src/pages/docs/ativar-hsts.astro e obténs /docs/ativar-hsts/. Pronto.

Next.js — o App Router usa nomes de pastas como segmentos. app/docs/ativar-hsts/page.tsx/docs/ativar-hsts/. Para rotas dinâmicas, gera os slugs em tempo de build a partir de uma fonte de conteúdo:

// app/blog/[slug]/page.tsx
export async function generateStaticParams() {
  const posts = await getPosts();
  return posts.map(post => ({ slug: post.slug }));
}

Gera slugs programaticamente:

function slugify(title: string): string {
  return title
    .toLowerCase()
    .normalize("NFD").replace(/[̀-ͯ]/g, "") // remove acentos
    .replace(/[^a-z0-9\s-]/g, "")                     // descarta pontuação
    .trim()
    .replace(/\s+/g, "-")                              // espaços → hífens
    .replace(/-+/g, "-")                               // colapsa hífens repetidos
    .slice(0, 60);                                     // limita comprimento
}

slugify("Ativar HSTS em nginx & Apache");
// → "ativar-hsts-em-nginx-apache"

Não mudes slugs publicados. Se precisares mesmo — migração de domínio, rebrand — configura um redirecionamento 301 do antigo para o novo e adiciona-o ao teu sitemap. Vê Mantém as cadeias de redirecionamento curtas para que os 301s colapsem para um único salto.

Perguntas frequentes

Devo incluir a data nos slugs de posts de blog?

Opcional. /blog/2026/05/ativar-hsts/ faz o conteúdo evergreen parecer datado quando um utilizador o clica três anos depois. /blog/ativar-hsts/ não. Se escreves muito conteúdo de notícias com prazo, as datas podem ajudar; em guias evergreen, deixa-as cair.

E slugs noutros idiomas que não inglês?

Para páginas que apontam a um idioma específico, usa as palavras desse idioma. /pt/docs/ativar-hsts/ rankeia melhor em pesquisas em português do que /pt/docs/enable-hsts/. Tira acentos (ativar, não ativação) — o Google continua a fazer match, e caracteres acentuados partem em alguns clientes.

O slug deve corresponder exatamente ao título?

Não — próximo, não idêntico. O título é uma frase completa com stop words e pontuação; o slug é o núcleo denso de palavras-chave. Título: “Como ativar HSTS em nginx e Apache (com exemplos de código)”. Slug: /ativar-hsts/ ou /ativar-hsts-em-nginx-apache/.

Fontes

Última atualização 2026-05-11