Governança & SEO9 min de leitura·Jul 2026

Slugs, canonicals e controle de indexação no Next.js

Sem uma estratégia explícita de canonicals, sua aplicação Next.js pode estar indexando URLs duplicadas e fragmentando o authority das páginas.

Next.jsSEOCanonicalSlugIndexação

Como duplicação de URLs acontece silenciosamente

Uma mesma página pode ser acessível por múltiplas URLs: com e sem trailing slash, com parâmetros de query, via redirecionamentos antigos, com capitalização diferente. Para o usuário, são a mesma página. Para o Googlebot, são URLs distintas competindo entre si.

Em Next.js, o problema é amplificado pelas rotas dinâmicas: `/produto/[slug]` pode ser acessado com slugs em diferentes formatos dependendo da origem do link. Sem normalização, você fragmenta o PageRank.

Estratégia de slugs defensiva

Defina uma política de slug única e aplique-a no momento de criação: apenas lowercase, hífens como separadores, sem acentos, sem caracteres especiais, comprimento máximo de 60 caracteres. Valide no CMS ou banco de dados, não apenas no front.

Para slugs existentes que não seguem a política, configure redirecionamentos 301 permanentes no `next.config.js`. O redirect passa o authority acumulado para a URL canônica e remove a duplicata do índice gradualmente.

// código
// app/produto/[slug]/page.tsx
import { headers } from 'next/headers'

export async function generateMetadata({ params }) {
  const canonical = `https://seusite.com.br/produto/${params.slug}`

  return {
    alternates: {
      canonical,
    },
    // Previne indexação de variações
    robots: {
      index: true,
      follow: true,
    },
  }
}

noindex estratégico vs sitemap explícito

Nem toda URL deve ser indexada. Páginas de resultados de busca interna, páginas de filtros parametrizados, confirmações de formulário e conteúdo privado devem receber `noindex`. A regra: se você não quer que usuários cheguem a essa URL via Google, use noindex.

O sitemap.xml deve conter apenas as URLs que você quer indexadas — não um dump automático de todas as rotas. Em Next.js 13+, use `app/sitemap.ts` para gerar programaticamente apenas as URLs relevantes, excluindo explicitamente as que têm noindex.

Dica

Google Search Console > Indexação > Páginas mostra exatamente quais URLs foram indexadas, quais foram excluídas e por quê. Audite essa tela mensalmente para detectar regressões de indexação.

P

Portodev Studio

Consultoria e engenharia digital · Jul 2026

← Ver todos os conteúdos
[ Aplicar na prática ]

Esses padrões no seu produto.

Em 30 minutos mapeamos como esses conceitos se aplicam ao contexto do seu projeto real.