Artigo Grow·SEO·13 min de leitura

URL Amigável para SEO: Como Criar Slugs que Ranqueiam

A URL é sinal de ranqueamento menor — mas pesa em CTR, compartilhamento e arquitetura de informação. Veja a estrutura ideal, regras de slug, hierarquia flat vs nested, padrões multi-idioma, geração programática e os 10 erros que matam SEO.

Vitor Morais

Por Vitor Morais

Fundador do MochaLabz ·

🔗

Gere slugs SEO-friendly em segundos

Remove acentos, espaços e caracteres especiais automaticamente — pronto para copiar.

Usar gerador de slug →

A URL é um dos elementos mais visíveis do seu conteúdo: aparece na SERP, no compartilhamento, no autocomplete do navegador e na memória do usuário. Tecnicamente é sinal menor de ranqueamento, mas o impacto indireto em CTR, compartilhamento e arquitetura de informação é grande. Este guia cobre a estrutura ideal, as regras de slug em 2026, hierarquia flat vs nested, padrões multi-idioma e os erros mais comuns.

Anatomia de uma URL ideal

https://meusite.com/artigos/url-amigavel-seo/ │ │ │ │ │ │ │ │ │ └── trailing slash (opcional, mas padronize) │ │ │ └────────────────── slug (descritivo, com keyword) │ │ └──────────────────────────── seção / categoria │ └──────────────────────────────────────── domínio └──────────────────────────────────────────────── protocolo (https sempre) ❌ URL ruim: https://meusite.com/?p=42&category_id=15 ✅ URL boa: https://meusite.com/artigos/url-amigavel-seo

As 8 regras de ouro para slugs em 2026

  1. Sempre minúsculas: /Sobre-Nós e /sobre-nos são URLs diferentes para bots.
  2. Hífen como separador: nunca underscore (_) ou espaço.
  3. Sem acentos: café → cafe, português → portugues.
  4. Sem stopwords desnecessárias: “como-criar-um-blog-de-seo” → “criar-blog-seo”.
  5. 3 a 5 palavras: idealmente 15–60 caracteres.
  6. Keyword principal próxima ao domínio: peso maior.
  7. Sem caracteres especiais: apenas a–z, 0–9 e hífen.
  8. Estável: escolha bem na primeira vez — mudar custa caro.

Hífen vs. underscore: o detalhe que importa

A diferença é técnica e definida pelo Google:

Como o Google interpreta hífen e underscore em URLs
CritérioComo o Google lêQuando usar
Hífen ( - )Separador de palavras: "url-amigavel" = "url amigavel"URLs (sempre)
Underscore ( _ )Conector: "url_amigavel" = "url_amigavel" (palavra única)Variáveis de código (snake_case), não URLs
Espaço ( %20 )Tecnicamente válido, péssima UXNunca em URLs
Camel ou Pascal CaseQuebra padrão de minúsculas, vira URL diferente em alguns serversNunca em URLs

Tamanho ideal: 60 caracteres no slug, ~75 totais

O Google trunca URLs com mais de ~60 caracteres no snippet da SERP. Para a URL completa (com domínio), o limite prático é entre 75 e 100 caracteres antes de virar visualmente poluída:

Tamanhos típicos de URL e impacto SEO
CritérioCaracteresImpacto
Slug 1 palavra (5–10 chars)Muito curto, perde oportunidade de keyword
Slug 3–5 palavras (20–50 chars)✅ Sweet spot ideal
Slug 6–8 palavras (50–75 chars)Aceitável; revise se há stopwords removíveis
Slug 9+ palavras (75+ chars)Poluído; truncado na SERP, baixo CTR
URL com query string (?id=, ?p=)Geralmente ruim — prefira slug semântico

Geração programática de slugs

JavaScript / TypeScript

function toSlug(text: string): string { return text .toLowerCase() .trim() // Remove acentos via decomposição Unicode NFD .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') // Substitui caracteres especiais por hífen .replace(/[^a-z0-9]+/g, '-') // Remove hífens nas pontas .replace(/^-+|-+$/g, ''); } toSlug("Como Criar URL Amigável para SEO") // "como-criar-url-amigavel-para-seo" toSlug("Café & Restaurante São Paulo!") // "cafe-restaurante-sao-paulo" toSlug("100% gratuito 🔥") // "100-gratuito" // Versão com remoção opcional de stopwords const STOPWORDS = ['de', 'da', 'do', 'das', 'dos', 'para', 'com', 'um', 'uma', 'o', 'a', 'os', 'as', 'e', 'ou']; function toSlugSEO(text: string, removeStopwords = true): string { let slug = toSlug(text); if (removeStopwords) { slug = slug .split('-') .filter((w) => !STOPWORDS.includes(w)) .join('-'); } return slug; } toSlugSEO("Como Criar URL Amigável para SEO") // "como-criar-url-amigavel-seo" (removeu "para")

Python

import re import unicodedata def to_slug(text: str) -> str: # Normaliza Unicode (remove acentos) text = unicodedata.normalize('NFD', text) text = text.encode('ascii', 'ignore').decode('ascii') # Minúsculas e troca não-alfanuméricos por hífen text = re.sub(r'[^a-zA-Z0-9]+', '-', text.lower()) # Remove hífens nas pontas return text.strip('-') to_slug("Como Criar URL Amigável para SEO") # "como-criar-url-amigavel-para-seo" # Ou use a lib python-slugify (mais robusta): # from slugify import slugify # slugify("Café & Restaurante", lowercase=True)

Estrutura: flat vs nested vs híbrida

Como organizar a hierarquia de URLs depende do tamanho e do tipo do site:

Estruturas de URL e quando usar cada uma
CritérioExemploVantagensDesvantagens
Flat (raiz direta)/artigo-xFlexibilidade, slug curtoPerde estrutura semântica em sites grandes
Nested (hierárquica)/blog/seo/artigo-xEstrutura clara, breadcrumb natural, herda autoridadeDifícil mover conteúdo (gera 301)
Híbrida (1 nível)/artigos/slug, /produtos/slug✅ Sweet spot — estrutura sem rigidezCategoria fixa por tipo
Subdomínioblog.meusite.com/artigoSeparação total, SEO independenteTratada como propriedade separada pelo Google

Recomendação para a maioria dos sites

Estrutura híbrida com uma camada categórica: /artigos/slug, /produtos/slug, /categoria/slug. Dá estrutura suficiente para organização e flexibilidade para mover conteúdo dentro de cada categoria.

Trailing slash: padronize uma única forma

/artigo e /artigo/ são URLs diferentes para o Google. Ter as duas indexadas causa conteúdo duplicado. Escolha uma e configure 301 da outra:

// Next.js — força trailing slash em tudo // next.config.js module.exports = { trailingSlash: true, // /artigo/ vira canônico }; # Apache .htaccess — remover trailing slash RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [R=301,L] # Nginx — adicionar trailing slash location ~ ^([^.]+[^/])$ { return 301 $1/; }

URL em sites multi-idioma

Para conteúdo em múltiplos idiomas, o Google recomenda estruturas claras:

Padrões de URL para multi-idioma
CritérioExemploVantagensQuando usar
Subdiretório/pt/artigo, /en/article✅ Compartilha autoridade do domínioPadrão recomendado pela maioria
Subdomíniopt.site.com, en.site.comIndependência operacionalQuando equipes diferentes gerenciam
ccTLDsite.com.br, site.esSinal forte de geo-targetingPara mercados muito específicos
Parâmetrosite.com/artigo?lang=pt❌ EviteNão recomendado por dificultar indexação

Sempre traduza o slug também

/pt/artigo e /en/article — não mantenha /en/artigo. Slug traduzido melhora CTR no idioma local e sinaliza ao Google que o conteúdo é realmente localizado, não só uma tradução automática.

hreflang: o complemento essencial em multi-idioma

<head> <!-- Em /pt/artigo --> <link rel="alternate" hreflang="pt" href="https://site.com/pt/artigo" /> <link rel="alternate" hreflang="en" href="https://site.com/en/article" /> <link rel="alternate" hreflang="es" href="https://site.com/es/articulo" /> <link rel="alternate" hreflang="x-default" href="https://site.com/en/article" /> </head>

Os 10 erros que matam SEO via URL

Lista negra

  • IDs dinâmicos no lugar de slug: /artigo?id=42 é ruim — prefira /artigo/titulo-descritivo.
  • Parâmetros de sessão na URL: ;sid=abc123 cria infinitas URLs duplicadas.
  • Underscore em vez de hífen: Google trata como conector, não separador.
  • Letras maiúsculas misturadas: /Artigo e /artigo viram URLs diferentes.
  • Acentos e caracteres especiais: /café-é-bom aparece como %C3%A9.
  • URLs muito longas: Google trunca na SERP, CTR despenca.
  • Keyword stuffing no slug: /seo-marketing-seo-otimizacao-seo pode ser penalizado.
  • Mudar slug sem 301: backlinks externos quebram, autoridade some.
  • Trailing slash inconsistente: /x e /x/ ambos indexados causa duplicação.
  • HTTPS misturado com HTTP: dois sites na prática, divide autoridade.

Boas práticas por tipo de site

Blog

✅ /artigos/url-amigavel-para-seo ✅ /blog/url-amigavel-para-seo ❌ /2026/04/19/post-id-12345 ❌ /artigo/12345-url-amigavel-para-seo

E-commerce

✅ /produtos/tenis-corrida-nike-pegasus ✅ /eletronicos/notebooks/dell-xps-13 ❌ /products/45872 ❌ /produto.php?id=45872&category=10

SaaS / institucional

✅ /precos ✅ /recursos/automacao-vendas ✅ /clientes/case-empresa-x ❌ /page?id=12 ❌ /index.php?route=pricing

Mudou o slug? Configure o redirect

Sempre que mudar uma URL existente, configure redirect 301 PERMANENTE. Sem isso, você perde backlinks externos e a autoridade acumulada na URL antiga. Veja o guia completo de redirect 301 vs 302 vs 307 vs 308 para SEO.

Checklist da URL ideal

  • ✅ HTTPS sempre (sem HTTP misturado).
  • ✅ Tudo em minúsculas.
  • ✅ Hífen como separador (nunca underscore).
  • ✅ Sem acentos nem caracteres especiais.
  • ✅ 3–5 palavras no slug, 15–60 caracteres.
  • ✅ Keyword principal próxima ao domínio.
  • ✅ Stopwords removidas quando não prejudicam clareza.
  • ✅ Estrutura híbrida: /categoria/slug (uma camada).
  • ✅ Trailing slash padronizado (sempre com ou sempre sem).
  • ✅ Sem IDs dinâmicos visíveis (?id=, ?p=).
  • ✅ Multi-idioma com subdiretório (/pt/, /en/) + hreflang.
  • ✅ 301 configurado se mudou slug existente.
  • ✅ URL incluída no sitemap.xml.

Perguntas frequentes

URL é fator de ranqueamento no Google?+

Sim, mas é um sinal menor. O Google reconhece a presença de keywords na URL e usa para reforçar o tema da página, mas não é fator decisivo. Onde a URL realmente importa: CTR nas SERPs (URLs limpas geram mais cliques), compartilhamento (URLs feias afastam), arquitetura de informação (URLs hierárquicas ajudam o crawler) e usabilidade humana (lembrar e digitar).

Qual o tamanho ideal de uma URL para SEO?+

O Google trunca URLs com mais de ~60 caracteres na SERP. Para o slug em si, a recomendação é entre 3 e 5 palavras (15–60 caracteres). URLs até 75 caracteres totais funcionam bem; acima de 100 começam a parecer poluídas. URLs muito curtas (1 palavra) podem perder oportunidades de incluir keyword. O equilíbrio: descritivo o suficiente para indicar o conteúdo, curto o suficiente para caber na SERP.

Devo usar hífen ou underscore em URLs?+

Sempre hífen. O Google trata hífen (-) como separador de palavras ("url-amigavel" = "url amigavel"), enquanto underscore (_) é tratado como conector ("url_amigavel" vira uma palavra única para o algoritmo). Para SEO, hífen ganha. Underscore continua sendo padrão em variáveis de código, mas não em URLs.

Devo manter ou remover acentos em slugs?+

Remova. Apesar de URLs poderem tecnicamente conter caracteres Unicode (incluindo acentos via percent-encoding), na prática isso quebra em copy-paste, navegadores antigos exibem como %C3%A1, e ferramentas de analytics frequentemente decodificam errado. Padronize: café → cafe, português → portugues, são paulo → sao-paulo.

Devo incluir stopwords no slug?+

Em geral, não. Palavras como "de", "para", "com", "o", "a" agregam pouco e gastam caracteres preciosos. "como-criar-url-para-seo" → "criar-url-seo". Mas não corte stopwords se isso prejudica entendimento humano: "como-funciona-jwt" lê melhor que "funciona-jwt". Equilíbrio: brevidade sem sacrificar clareza.

URL com trailing slash (/) ou sem?+

Padronize uma das duas opções no site inteiro. /artigo e /artigo/ são URLs DIFERENTES para o Google e podem causar duplicação. Configure 301 da versão não-canônica para a canônica. Não há vantagem SEO entre as duas; o que importa é consistência. Em Next.js, controla via trailingSlash no config; em WordPress, no painel de Permalinks; em Apache/Nginx, via rewrite.

Posso mudar o slug de um artigo já publicado?+

Pode, mas com cuidado. Mudar slug quebra backlinks externos e perde a autoridade acumulada. Sempre configure redirect 301 da URL antiga para a nova (mantenha PARA SEMPRE). Re-submeta sitemap ao GSC. Em casos críticos, monitore a queda temporária de tráfego (~30 dias) até o índice se ajustar.

Estrutura flat (/artigo) ou hierárquica (/blog/seo/artigo)?+

Hierárquica é melhor para sites grandes com muito conteúdo (estrutura semântica clara, breadcrumb natural, herda autoridade da seção). Flat é melhor para sites pequenos e blogs simples (mais flexibilidade, menos quebra ao reorganizar). A híbrida é o sweet spot: /artigos/slug, /tools/slug — uma única camada categórica.

#url#slug#seo#permalink#estrutura#hreflang#trailing slash#javascript#wordpress#next.js

Continue lendo