Por que o Search Console limita a 1.000 linhas?
Porque a interface foi feita para leitura rápida, não para análise completa: cada relatório de desempenho mostra e exporta no máximo 1.000 linhas. Para um site pequeno, isso basta. Para um site com milhares de páginas ou de consultas, 1.000 linhas são uma amostra do topo.
O problema aparece em tarefas comuns de SEO:
- Encontrar a cauda longa: as consultas com poucas impressões, que somadas costumam ser a maior parte do tráfego, ficam de fora.
- Cruzar consulta e página: a combinação das duas dimensões explode o número de linhas.
- Analisar seções do site: blog, categorias e produtos, cada um com centenas de URLs.
- Guardar histórico: o Search Console guarda 16 meses. O que passa disso some.
Há dois caminhos oficiais para ir além, e eles se complementam.
| Search Console API | Exportação em massa para o BigQuery | |
|---|---|---|
| Volume | Até 25 mil linhas por chamada e 50 mil por dia, por tipo de busca | Todos os dados de desempenho, exceto as consultas anônimas |
| Histórico | Os últimos 16 meses | Só a partir da configuração, sem dados anteriores |
| Frequência | Quando você chamar | Automática, todo dia |
| Precisa programar? | Sim (ou uma ferramenta que use a API) | Não para exportar; SQL para analisar |
| Custo | Grátis, dentro das cotas | Armazenamento e consultas do BigQuery |
| Melhor para | Histórico, relatórios pontuais, integrações | Sites grandes e análise contínua |
Como usar a Search Console API?
Crie uma conta de serviço no Google Cloud, adicione o e-mail dela como usuário da propriedade no Search Console e chame o método searchanalytics.query, paginando de 25 mil em 25 mil linhas. O mesmo método alimenta o relatório de desempenho da interface.
Os limites que importam
- Até 25 mil linhas por chamada, controladas pelo parâmetro
rowLimit. - Paginação pelo
startRow: repita a mesma consulta somando 25 mil aostartRow, até a resposta vir sem linhas. - Até 50 mil linhas por dia, por tipo de busca, ordenadas por cliques. Para ir além, consulte dia a dia e tipo a tipo (
web,image,video,news,discover). - Parte dos dados pode ser descartada quando você agrupa por página e consulta ao mesmo tempo, segundo a documentação, para o cálculo terminar em tempo razoável.
O passo a passo
- Crie um projeto no Google Cloud e ative a Google Search Console API.
- Crie uma conta de serviço e baixe a chave em JSON.
- Adicione o e-mail da conta de serviço como usuário da propriedade, no Search Console, em Configurações > Usuários e permissões.
- Faça a consulta, dia a dia, paginando.
Um exemplo em Python, que puxa consultas e páginas de um dia inteiro:
from google.oauth2 import service_account
from googleapiclient.discovery import build
creds = service_account.Credentials.from_service_account_file(
"chave.json", scopes=["https://www.googleapis.com/auth/webmasters.readonly"]
)
gsc = build("searchconsole", "v1", credentials=creds)
def puxar_dia(site, dia, tipo="web"):
linhas, inicio = [], 0
while True:
resp = gsc.searchanalytics().query(siteUrl=site, body={
"startDate": dia, "endDate": dia,
"dimensions": ["query", "page"],
"type": tipo,
"rowLimit": 25000,
"startRow": inicio,
}).execute()
lote = resp.get("rows", [])
if not lote:
return linhas
linhas += lote
inicio += 25000
dados = puxar_dia("sc-domain:seusite.com.br", "2026-10-01")
print(len(dados), "linhas")Para uma propriedade de domínio, o siteUrl é sc-domain:seusite.com.br; para uma propriedade de prefixo de URL, é o endereço completo, com a barra no final.
Como configurar a exportação em massa para o BigQuery?
Prepare um projeto do Google Cloud com faturamento, dê permissão à conta de serviço do Search Console e ative a exportação em Configurações > Exportação de dados em massa. A partir daí, o Google manda os dados de desempenho para o BigQuery todo dia, sem código.
- Projeto com faturamento: o BigQuery precisa de uma conta de faturamento, mesmo que o uso fique dentro da faixa gratuita.
- Ative as APIs BigQuery e BigQuery Storage, em APIs e serviços.
- Dê permissão à conta do Search Console: em IAM e administrador, adicione
[email protected]com as funções Usuário de jobs do BigQuery e Editor de dados do BigQuery. - No Search Console, abra Configurações > Exportação de dados em massa e informe o ID do projeto (não o número).
- Escolha o nome do conjunto de dados, que sempre começa com
searchconsole, e a região. A região não muda com facilidade depois. - Confirme. A primeira exportação chega em até 48 horas.
O que chega no BigQuery
| Tabela | O que tem |
|---|---|
searchdata_site_impression | Desempenho agregado por propriedade, com consulta, país, dispositivo e tipo de busca |
searchdata_url_impression | Desempenho por URL, com as mesmas dimensões e a página |
ExportLog | Registro das exportações que deram certo |
As colunas mais usadas: data_date (a data, no horário do Pacífico), query, is_anonymized_query, url, country (código do país com três letras, no padrão ISO 3166-1), device, search_type, impressions, clicks e sum_top_position ou sum_position (soma das posições, começando em zero).
Que consultas SQL fazer primeiro?
Comece pelas que a interface não responde: cauda longa completa, consultas por página e evolução por seção do site. Troque seu_projeto.searchconsole pelo seu projeto e conjunto de dados.
Posição média do jeito certo
A posição na exportação começa em zero, então a conta é a soma das posições dividida pelas impressões, mais um:
SELECT
query,
SUM(clicks) AS cliques,
SUM(impressions) AS impressoes,
SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr,
SAFE_DIVIDE(SUM(sum_top_position), SUM(impressions)) + 1 AS posicao_media
FROM `seu_projeto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-09-01' AND '2026-09-30'
AND LOWER(search_type) = 'web'
AND NOT is_anonymized_query
GROUP BY query
ORDER BY impressoes DESCConsultas quase na primeira página
Consultas entre as posições 8 e 20, com muitas impressões, são as mais fáceis de subir:
SELECT
url,
query,
SUM(impressions) AS impressoes,
SUM(clicks) AS cliques,
SAFE_DIVIDE(SUM(sum_position), SUM(impressions)) + 1 AS posicao_media
FROM `seu_projeto.searchconsole.searchdata_url_impression`
WHERE data_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY)
AND LOWER(search_type) = 'web'
AND NOT is_anonymized_query
GROUP BY url, query
HAVING posicao_media BETWEEN 8 AND 20 AND impressoes > 100
ORDER BY impressoes DESCDesempenho por seção do site
Agrupe as URLs pelo primeiro diretório para comparar blog, produtos e categorias:
SELECT
REGEXP_EXTRACT(url, r'^https?://[^/]+(/[^/]*)') AS secao,
SUM(clicks) AS cliques,
SUM(impressions) AS impressoes
FROM `seu_projeto.searchconsole.searchdata_url_impression`
WHERE data_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY secao
ORDER BY cliques DESCO mesmo filtro por LOWER(search_type) = 'discover' mostra o desempenho no feed, que tem lógica própria, explicada no post sobre o Google Discover.
Quanto custa?
A exportação não é cobrada pelo Search Console; o BigQuery cobra armazenamento e consultas, e tem uma faixa gratuita mensal. Para sites pequenos e médios, o uso costuma ficar dentro dela.
O que mantém a conta baixa:
- Validade nas partições, para não acumular anos de dados que ninguém consulta.
- Filtro de data em toda consulta, para ler só as partições necessárias.
- Tabelas resumidas para os painéis: em vez de o Looker Studio consultar a tabela bruta a cada abertura, agende uma consulta que gera uma tabela agregada por dia e conecte o painel nela.
- Alerta de orçamento no faturamento do Google Cloud, para saber se algo saiu do esperado.
API, BigQuery ou os dois?
Os dois, para quem leva dados a sério: a API para o histórico e integrações, o BigQuery para o dia a dia. A escolha depende do tamanho do site e de quem vai usar os dados.
| Situação | Caminho |
|---|---|
| Site pequeno, relatório mensal | Interface do Search Console, com filtros |
| Precisa de mais de 1.000 linhas de vez em quando | Search Console API ou uma ferramenta que use a API |
| Site grande, muitas páginas e consultas | Exportação em massa para o BigQuery |
| Painel no Looker Studio com dados completos | BigQuery com tabelas resumidas |
| Quer os 16 meses anteriores à exportação | API, uma vez, salvando no BigQuery |
O relatório de IA do Search Console, que mostra as impressões nos AI Overviews e no Modo IA, tem regras próprias de leitura, explicadas no guia do relatório de IA.
Quais erros evitar?
| Erro | O que fazer no lugar |
|---|---|
| Tirar a média da coluna de posição | SUM(sum_top_position) / SUM(impressions) + 1 |
| Esperar histórico na exportação | Puxar os 16 meses anteriores pela API |
| Consultar sem filtro de data | Filtrar sempre por data_date |
| Validade na tabela inteira | Validade nas partições |
| Mudar o esquema das tabelas exportadas | Criar views ou tabelas novas para os ajustes |
| Painel lendo a tabela bruta | Tabela agregada, atualizada por consulta agendada |
| Somar as linhas sem cuidado | Agregar as métricas, porque a exportação traz chaves repetidas |
