Filtros criando milhares de URLs duplicadas
Cada combinação de cor, tamanho e preço vira uma página. O Google gasta o rastreio nelas e deixa de lado as categorias que vendem. Eu defino o que indexar, o que canonizar e o que bloquear.
Por segmento
SEO para ecommerce é o trabalho de fazer categorias e produtos de uma loja aparecerem no Google sem criar milhares de páginas duplicadas. Envolve filtros, paginação, velocidade, dados de produto e medição de venda. Fui SEO Lead na VTEX, onde os clientes enterprise ganharam 25% de sessões orgânicas, e hoje atendo a Insider Store, que roda em Shopify.
Loja virtual tem problemas que site de conteúdo não tem. Filtros de cor e tamanho geram milhares de URLs quase iguais. Produto sai de estoque e a página some. Pixel de mídia mexe na URL e quebra a atribuição.
Fui SEO Lead de 2 squads na VTEX, a plataforma de e-commerce, com +25% de sessões orgânicas nos clientes enterprise. Pela Greenpark, em Londres, atendi a Unilever, com +32% de sessões e melhora de Core Web Vitals.
Hoje atendo a Insider Store. Em loja Shopify, eu mexo no tema, nos dados de produto e na medição, e corrijo o código quando o problema está nele.
Problemas que resolvo
Cada combinação de cor, tamanho e preço vira uma página. O Google gasta o rastreio nelas e deixa de lado as categorias que vendem. Eu defino o que indexar, o que canonizar e o que bloquear.
A categoria costuma ser a página que mais traz visita orgânica, mas muitas vezes tem só a grade de produtos. Eu ajusto título, texto de apoio, links internos e breadcrumb.
Quando o produto sai do catálogo, a página e os links somem juntos. Eu defino uma regra para esgotado temporário e outra para produto descontinuado, com redirecionamento quando faz sentido.
Imagens pesadas, apps de terceiros e scripts de mídia derrubam o Core Web Vitals. Eu meço, corto o que não precisa e ajusto o tema.
Sem schema Product com preço e disponibilidade, o resultado da busca fica sem destaque. Eu implemento e valido os dados estruturados.
Numa loja Shopify de vestuário, o pixel do X reescrevia a URL e apagava o gclid. Eu escrevi um script de proteção e a atribuição do Google Ads voltou a 100%.
Trocar de plataforma muda as URLs. Eu monto o mapa de redirecionamentos e acompanho o tráfego antes e depois.
Eu implemento
O pixel do X mudava a URL com history.replaceState e levava junto o UTM e o gclid. Eu escrevi um script carregado antes de qualquer pixel, que guarda esses parâmetros e devolve à URL quando alguém apaga. A atribuição do Google Ads voltou a 100%.
Ver o trabalho de desenvolvimento(function attributionGuard() {
const CRITICAL = ['utm_source', 'utm_medium', 'utm_campaign',
'utm_content', 'utm_term', 'gclid', 'fbclid'];
const params = new URLSearchParams(window.location.search);
const saved = {};
CRITICAL.forEach((k) => {
if (params.has(k)) saved[k] = params.get(k);
});
if (Object.keys(saved).length) {
sessionStorage.setItem('sp_attribution', JSON.stringify(saved));
}
const restore = () => {
const current = new URLSearchParams(window.location.search);
let dirty = false;
Object.entries(saved).forEach(([k, v]) => {
if (!current.has(k)) {
current.set(k, v);
dirty = true;
}
});
if (dirty) {
const clean = `${window.location.pathname}?${current}`;
window.history.replaceState({}, '', clean);
}
};
// Intercepta mudanças de URL feitas por outros scripts
const originalReplace = history.replaceState;
history.replaceState = function (...args) {
originalReplace.apply(this, args);
restore();
};
window.addEventListener('DOMContentLoaded', restore);
})();Como funciona
Rastreio categorias, produtos e filtros e cruzo com o Search Console. Mostro o que está indexado e o que deveria estar.
Defino o que indexar em filtros, paginação, busca interna e produto esgotado. As regras viram configuração na plataforma ou código no tema.
Priorizo as categorias com mais demanda e ajusto título, texto, links e schema. Depois sigo para os produtos de maior volume.
Corrijo o Core Web Vitals no tema e reviso a atribuição no GA4 e no Google Ads. Sem medição certa, ninguém sabe quanto o orgânico vende.
Entregáveis
Combina com
Em loja grande, a auditoria técnica é o primeiro passo. Ela mostra quantas URLs de filtro estão no índice, quais categorias ficaram de fora e onde o rastreio se perde.
Atribuição confiável depende de UTM, dataLayer e GTM bem montados. Eu cuido dessa camada para o resultado do orgânico e da mídia aparecer certo no GA4.
Cases
Pixel do X sobrescrevia UTMs e gclid via history.replaceState(), quebrando atribuição do Google Ads. Guard script recuperou 100% da atribuição.
Arquitetura que conecta CID-10, Exames, Ferramentas médicas, Blog e SanarPós via embeddings vetoriais. Cada página descobre suas vizinhas semânticas automaticamente, o usuário fica no ecossistema e o funil converge pros cursos pagos.
Para ler antes
O pixel do X reescreve a URL via history.replaceState, engole UTM e gclid, e o Google Ads perde o rastro no checkout. Três passos pra detectar isso sem abrir DevTools.
Core Web Vitals são as métricas LCP, INP e CLS do Google. Plugin de cache é analgésico, corta a dor por um tempo e deixa o problema estrutural lá. O que de fato move as três métricas em WordPress.
Duas ou três URLs do seu site competindo pela mesma query e nenhuma rankeando direito. Como detectar com GSC + crawl + Semrush, a árvore de decisão pra consolidar, fundir, reescrever ou usar canonical, e o que NÃO é canibalização.
Cinco fases com gate entre cada uma, do inventário à estabilização pós-cutover. O que fazer T-30, T-14, T-7, T-0 e T+30, os sete erros que derrubam tráfego e as ferramentas que de fato ajudam.
Data layer é o objeto dataLayer que liga o site ao Google Tag Manager. Sem schema versionado, nomes estáveis e evento separado de variável, o relatório nunca fecha. Princípios, estrutura de referência e os anti-padrões que mais derrubam projeto.
FAQ
Sim. Fui SEO Lead na VTEX, cuidando de 2 squads, e os clientes enterprise cresceram 25% em sessões orgânicas no período. Conheço as limitações de URL, de template e de catálogo da plataforma.
Também. Atendo a Insider Store, que roda em Shopify, e já corrigi conflito de pixels em outra loja da plataforma. Em Shopify, boa parte do trabalho está no tema, nos apps e nas regras de URL de coleção e produto.
Na minha experiência, filtros indexados sem regra, categorias sem conteúdo e loja lenta no celular. Os três têm correção técnica e costumam dar retorno antes de qualquer conteúdo novo.
Correções de indexação e de velocidade aparecem em 2 a 6 semanas. Ajustes de arquitetura de categorias levam de 2 a 4 meses para amadurecer. Eu meço por sessões orgânicas e por receita atribuída no GA4.
Cuido do lado de SEO da migração. Mapa de redirecionamento um para um, teste antes de publicar e acompanhamento depois. Já fiz migração em VTEX, WordPress, Shopify e plataformas próprias.
Próximo passo
Respondo em até 48 horas úteis com um caminho claro, ou digo com franqueza que não sou a pessoa certa para o seu caso.