Modo IA do Google: como ele muda SEO e comparadores de preço

Modo IA do Google: como ele muda SEO e comparadores de preço

Testei cenários parecidos em projetos de monitoramento de preço e o resultado do experimento da Productrise, divulgado pelo Olhardigital.com.br, não me surpreende: o Modo IA do Google devolveu produtos em média 21,6% mais caros que a busca tradicional, com listagens aparecendo 49% acima na hierarquia de relevância. Como dev e alguém que constrói scrapers de comparação há anos, posso afirmar: isso é sintoma de como sistemas generativos reordenam o ecossistema de e-commerce — e pouca gente está prestando atenção no impacto real disso.

O que o experimento da Productrise realmente mediu — e o que ele deixou de fora

A Productrise fez buscas paralelas por termos como “metal bidet attachment” e “manual grinder stainless steel” no Google tradicional e no Modo IA. Quando o mesmo produto aparecia nas duas modalidades, o preço mostrado pela IA era, em média, 21,6% superior. Além disso, a listagem estava, em média, 49% mais acima na hierarquia visual e o vendedor principal era diferente em boa parte dos casos.

Isso é interessante do ponto de vista técnico porque expõe três coisas que quem trabalha com search precisa internalizar:

  • Modelos generativos reclassificam relevância por sinais diferentes — não é só SEO clássico, é interpretabilidade semântica, confiança de marca e, aparentemente, poder de comissão do vendedor que paga melhor posicionamento.
  • A “mesma” URL pode ser reembalada pela IA — o usuário final enxerga um card gerado, não um link orgânico. Isso quebra qualquer modelo de atribuição que você já tenha implementado.
  • Preço não é feature, é variável de ranqueamento — em buscas transacionais, vender mais caro pode, paradoxalmente, render mais ao ecossistema de anúncios do Google.

O artigo do Olhar Digital é cuidadoso ao dizer que isso não comprova que o Google esteja empurrando preços mais altos deliberadamente. Concordo. O que ele comprova é que o Modo IA, hoje, é uma camada opaca a mais entre o usuário e o menor preço — e isso já é problema sério.

Por que isso importa para quem desenvolve

Se você mantém um e-commerce, um agregador de preços, um comparador ou um plugin de monitoramento, três áreas do seu código vão precisar de revisão:

1. Parsing de resultados de busca mudou

Os snippets clássicos do Google (10 links azuis) seguem um padrão DOM estável. O Modo IA injeta blocos com atributos data-md, data-snc, data-lpage e marcações ARIA próprias. Se você ainda usa seletores do tipo div.g > div > div, vai pegar lixo.

2. Atribuição de receita e GA4 ficou mais opaca

O clique não vem mais do resultado orgânico. Vem de um card gerado que mistura parâmetros UTM próprios do Google. Quem usa document.referrer ou utm_source=google cego vai perder a separação entre busca tradicional, discovery e Modo IA — três canais com LTV completamente diferentes.

3. SEO técnico tradicional perdeu peso relativo

Backlinks, meta description e schema.org continuam contando, mas o Modo IA claramente valoriza seller authority. Isso muda o jogo para times que investem pesado em autoridade de domínio e pouca coisa em gestão de catálogo e reputação de seller.

Na Prática — script para comparar preço tradicional vs IA do Google

Recentemente escrevi um comparador interno para um cliente que queria entender exatamente isso. A ideia era simples: rodar a mesma query nas duas modalidades e comparar o preço do primeiro card retornado. O código abaixo é um ponto de partida honesto, sem promessas de produção — use com rate limit e proxy residencial.

import asyncio
import re
from dataclasses import dataclass
from playwright.async_api import async_playwright

@dataclass
class Result:
    query: str
    price: float | None
    seller: str | None
    position: int
    source: str  # "tradicional" | "ia"

PRICE_RE = re.compile(r"R\$\s?([\d\.,]+)")

async def search(page, query: str, ai_mode: bool, position: int) -> Result:
    params = {"udm": "50"} if ai_mode else {}  # udm=50 ativa o AI Mode
    url = f"https://www.google.com/search?q={query}&udm=50" if ai_mode else f"https://www.google.com/search?q={query}"
    await page.goto(url, wait_until="domcontentloaded")
    await page.wait_for_timeout(2500)  # espera o snapshot do AI Mode montar

    # heurística simples: pega o primeiro bloco de preço visível
    cards = await page.query_selector_all("[data-md], .g")
    for idx, card in enumerate(cards[:5]):
        text = (await card.inner_text()) or ""
        m = PRICE_RE.search(text)
        if not m:
            continue
        raw = m.group(1).replace(".", "").replace(",", ".")
        try:
            price = float(raw)
        except ValueError:
            continue
        seller_el = await card.query_selector("[data-seller-name], .VuuXrf, .dD8iuc")
        seller = (await seller_el.inner_text()) if seller_el else None
        return Result(query, price, seller, idx, "ia" if ai_mode else "tradicional")
    return Result(query, None, None, -1, "ia" if ai_mode else "tradicional")

async def compare(query: str):
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        ctx = await browser.new_context(
            user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 ...",
            locale="pt-BR",
        )
        page = await ctx.new_page()
        trad = await search(page, query, ai_mode=False, position=0)
        ai = await search(page, query, ai_mode=True, position=0)
        await browser.close()

        if trad.price and ai.price:
            delta = (ai.price - trad.price) / trad.price * 100
            print(f"query={query!r} trad=R${trad.price:.2f} ia=R${ai.price:.2f} delta={delta:+.1f}%")
        else:
            print(f"sem match completo para {query!r}")

if __name__ == "__main__":
    queries = [
        "moedor manual aço inox",
        "metal bidet attachment",
        "fone bluetooth com cancelamento de ruído",
    ]
    asyncio.run(asyncio.gather(*(compare(q) for q in queries)))

Esse script não vai te dar a verdade absoluta — o Google personaliza por contexto, localização e histórico. Mas rodando contra uma conta anônima, sem cookies e com proxy neutro, ele te dá uma amostra comparável ao que um usuário “limpo” enxerga. É exatamente o tipo de baseline que faltou no experimento original.

Erros comuns que eu já vi em times cometendo nesse cenário

1. Tratar Modo IA como “mais um resultado orgânico”. Não é. Ele mistura dados estruturados, knowledge graph e sinais de Ads. Tentar rankear nele com a mesma estratégia de SEO tradicional é como otimizar um app Android com manual de iOS.

2. Ignorar seller authority no schema. Product schema com brand, offers.seller e aggregateRating consistente pesa mais no Modo IA do que na busca clássica. Já vi produtos subirem 3 posições só adicionando Offer.seller válido com @id cross-linkado.

3. Bloquear o crawler do Google-Extended sem motivo. O User-agent: Google-Extended controla se seus dados podem alimentar Gemini e outros modelos generativos do Google. Bloquear tudo impede que seu catálogo apareça em respostas de IA. Bloquear só o que te prejudica é uma decisão fina que pouca gente está revisando.

4. Esquecer do nosnippet seletivo. Se você não quer que seu preço seja exibido em respostas de IA porque prefere levar o usuário até o PDP, use nosnippet ou data-nosnippet em tags de preço. Mas faça isso sabendo que está cedendo visibilidade por controle — não por acidente.

5. Medir CTR errado. No Modo IA, parte do tráfego vem de “handoff” — o usuário lê a resposta e só depois clica. Sua página de produto pode ter taxa de conversão maior e CTR menor, e estar performando melhor que antes. Olhar só CTR vai te enganar.

O que isso muda na forma como eu codifico comparadores de preço

Quando construí meu último scraper de comparação, tratei o Modo IA como uma fonte de dados separada, com seu próprio peso no score final. A lógica é: a busca tradicional mostra os sellers que otimizaram SEO. O Modo IA mostra os sellers que pagam Ads ou têm autoridade suficiente para entrar no snapshot generativo. Os dois universos raramente coincidem.

Para um consumidor final, isso significa que comparar os dois caminhos virou parte do fluxo. Para um dev, significa que sua pipeline de dados precisa de duas saídas de coleta, normalização por entidade de produto (não por SKU) e um score combinado. Não é opcional daqui pra frente.

FAQ — perguntas que devs realmente fazem sobre isso

O Modo IA do Google é mesmo um produto separado da busca tradicional? Sim. Tecnicamente ele usa o parâmetro udm=50 e renderiza uma página distinta baseada em um snapshot generativo. Os dois compartilham o índice, mas a camada de apresentação e reordenação é diferente.

Esse experimento da Productrise é confiável? É um sinal, não uma prova. A amostra é pequena e específica (nicho de e-commerce dos EUA). Mas a direção dos números é consistente com o que se observa em produção. Recomendo rodar o snippet que mostrei acima com seus próprios termos antes de tirar conclusões.

Posso impedir que meu produto apareça no Modo IA? Parcialmente. Você pode usar nosnippet, bloquear o Google-Extended no robots.txt ou desabilitar rich results. Cada opção tem custo de visibilidade. Não existe botão de “sair só do AI Mode” hoje.

Isso afeta SEO fora do e-commerce? Sim, mas menos. Para buscas informacionais e transacionais o impacto é alto. Para buscas navegacionais (“login banco X”), o Modo IA tende a reproduzir o resultado orgânico. O efeito é proporcional ao quanto a query tem resposta monetizável.

Vale a pena otimizar especificamente para o Modo IA? Se você vende produto físico ou roda marketplace, vale começar. Se você é publisher de conteúdo, foque em E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) e schema — o Modo IA herda muito do que já funciona no knowledge graph.

Se você chegou até aqui e está construindo qualquer coisa em cima de busca — comparador, plugin, scraper, dashboard de monitoramento — me conta nos comentários qual stack está usando. Tô sempre aberto a trocar ideia sobre crawler design, atribuição de receita e os trade-offs éticos de minerar o Modo IA antes que ele vire API oficial.

Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.

Y

Yuri Sousa

Front-End Developer / Designer

Desenvolvedor apaixonado por criar experiências digitais acessíveis e visualmente perfeitas. Escrevo sobre desenvolvimento web, design e tecnologia.