O que é e por que usar
Exportar metadados de páginas para CSV é o processo de extrair informações estruturadas de uma URL — título, meta description, canonical, Open Graph, headings, status HTTP, tempo de resposta — e consolidá-las em uma planilha legível por qualquer ferramenta. Na prática, isso substitui o trabalho manual de abrir dezenas (ou milhares) de páginas em abas do navegador e copiar campos para o Excel.
O uso mais comum está em auditorias de SEO, migrações de site e monitoramento de conteúdo. Quando você precisa responder perguntas como “quantas páginas do blog estão sem meta description?” ou “quais URLs do e-commerce perderam a tag canonical após o deploy?”, a resposta está nos metadados — mas só se eles estiverem organizados em uma tabela. Um CSV com 500 linhas e 12 colunas permite filtrar, ordenar e cruzar dados em segundos, algo inviável com inspeção visual.
Além de SEO, times de conteúdo usam metadados em CSV para planejar calendários editoriais (title + data de publicação + autor), times de produto monitoram status HTTP e redirecionamentos após releases, e times de compliance verificam se páginas institucionais têm as tags obrigatórias. O denominador comum é sempre o mesmo: transformar HTML disperso em dado tabular consultável.

Pré-requisitos
- n8n instalado (self-hosted ou cloud) em versão 1.x ou superior
- Conhecimento básico de HTTP: entender o que é status code, headers e body
- Uma lista de URLs para processar — pode ser um CSV, uma planilha Google ou uma sitemap XML
- Noções de HTML: saber o que são tags
<meta>,<title>e<link rel="canonical"> - Acesso a um editor de planilha (Excel, Google Sheets, LibreOffice) para validar a saída
Exemplo Prático: auditoria de metadados em 340 páginas de um portal jurídico
Um escritório de advocacia com portal de conteúdo mantém 340 artigos publicados entre 2019 e 2024. Após uma migração de CMS, o time de marketing suspeita que várias páginas perderam meta description e canonical. Fazer a verificação manual levaria dois dias; com n8n, o processo leva menos de 15 minutos.
O que será automatizado: o workflow lê uma lista de 340 URLs de um arquivo CSV, faz requisição HTTP em cada uma, extrai título, meta description, canonical, tag robots, status HTTP e tempo de resposta, e consolida tudo em um único CSV final com uma linha por página.
Resultado esperado: um arquivo auditoria-metadados-2024-11.csv com 340 linhas e 8 colunas. A partir dele, o time filtra as páginas com meta_description vazia (estimativa: 40 a 60 URLs) e as que retornam status 404 ou 301 inesperado (estimativa: 10 a 15 URLs), priorizando correções.
Configuração Passo a Passo
1. Preparar a lista de URLs
Crie um arquivo urls.csv com uma coluna url. Se você tem uma sitemap, pode extraí-la antes com um nó HTTP Request + XML, mas para este exemplo vamos assumir o CSV pronto:
url
https://exemplo-juridico.com.br/artigos/direito-trabalhista-home-office
https://exemplo-juridico.com.br/artigos/contratos-digitais
https://exemplo-juridico.com.br/artigos/lgpd-escritorios
...
2. Nó “Read Binary File” (ou Google Sheets)
- Tipo: Read Binary File
- File Path:
/data/urls.csv - Property Name:
data
Se preferir Google Sheets, use o nó Google Sheets → Read Rows apontando para a planilha. A lógica seguinte é idêntica.
3. Nó “Spreadsheet File” (parse do CSV)
- Tipo: Spreadsheet File
- Operation: Read From File
- File Format: CSV
- Header Row: ativado
Saída: um item JSON por linha, no formato {"url": "https://..."}.
4. Nó “Split In Batches”
- Batch Size: 10
Processar 340 URLs de uma vez sobrecarrega o servidor de destino e pode disparar rate limiting. Lotes de 10 com pausa entre eles são seguros para a maioria dos sites.
5. Nó “HTTP Request” (fetch da página)
- Method: GET
- URL:
{{ $json.url }} - Response Format: String
- Options → Redirect: desabilitado (queremos ver o status original)
- Options → Timeout: 15000 ms
- Options → Ignore SSL Issues: desabilitado
- Options → Never Error: ativado (para capturar 404 sem quebrar o workflow)
6. Nó “Code” (extração de metadados)
Aqui usamos expressões regulares simples para não depender de bibliotecas externas:
const html = $input.first().json.data || "";
const url = $input.first().json.url;
function match(re) {
const m = html.match(re);
return m ? m[1].trim() : "";
}
const title = match(/<title[^>]*>([\s\S]*?)<\/title>/i);
const description = match(/<meta[^>]+name=["']description["'][^>]+content=["']([^"']*)["']/i);
const canonical = match(/<link[^>]+rel=["']canonical["'][^>]+href=["']([^"']*)["']/i);
const robots = match(/<meta[^>]+name=["']robots["'][^>]+content=["']([^"']*)["']/i);
const ogTitle = match(/<meta[^>]+property=["']og:title["'][^>]+content=["']([^"']*)["']/i);
return [{
json: {
url,
status_http: $input.first().json.statusCode || null,
title: title.substring(0, 200),
meta_description: description,
canonical,
robots,
og_title: ogTitle,
tem_meta_description: description.length > 0
}
}];
7. Nó “Merge” (juntar lotes)
- Mode: Append
- Input 1: saída do Code node
- Input 2: saída do Split In Batches (loop de retorno)
8. Nó “Spreadsheet File” (escrita do CSV)
- Operation: Write to File
- File Format: CSV
- File Name:
auditoria-metadados-{{ $now.format('yyyy-MM-dd') }}.csv - Options → Delimiter:
, - Options → Include Header Row: ativado
9. Nó “Write Binary File”
- File Path:
/data/output/auditoria-metadados.csv
10. Teste com 3 URLs antes do lote completo
Antes de rodar as 340 URLs, edite o CSV de entrada com apenas 3 linhas. Confirme que o CSV de saída tem 3 linhas e 8 colunas, e que os valores extraídos batem com o que você vê no navegador ao inspecionar as páginas.
Dicas e Variações
- Adicione o User-Agent no HTTP Request (
Mozilla/5.0 (compatible; n8n-audit/1.0)). Muitos sites bloqueiam requisições sem User-Agent identificável ou retornam HTML diferente para bots. - Inclua
h1e contagem deh2no Code node se o objetivo for auditoria editorial. Basta um segundo regex contando ocorrências. - Salve em Google Sheets em vez de CSV quando o time for colaborar. Troque o passo 8 por Google Sheets → Append; a estrutura de dados é a mesma.
- Envie o CSV por e-mail ao final com o nó Send Email anexando o binário. Útil para relatórios semanais automatizados.
- Adicione um nó IF antes do Merge para separar páginas com erro (status ≥ 400) em um CSV próprio, facilitando a priorização.

Erros Comuns e Como Evitá-los
1. Regex quebrado por aspas simples em atributos. Muitos sites usam content='...' em vez de content="...". Sempre inclua ambas as formas no padrão: ["']([^"']*)["'].
2. HTML minificado em uma única linha. O regex de <title> funciona, mas se você tentar extrair blocos maiores (como o conteúdo do <body>), o .* pode consumir tudo. Use regex não ganancioso ([\s\S]*?) ou considere o nó HTML Extract do n8n, que é mais robusto para estruturas complexas.
3. Rate limiting silencioso. Sem pausa entre lotes, o site de destino pode retornar 429 e você captura páginas vazias. Configure Wait de 500 ms a 1 s entre batches no Split In Batches.
4. Encoding errado no CSV final. Páginas em português trazem acentos; se o Excel abrir o CSV com caracteres estranhos, salve com BOM UTF-8. No nó Spreadsheet File, ative Options → Encoding: utf8-bom.
5. Confundir status do redirect com status final. Se você deixou Follow Redirect ativado, o status capturado é o da página de destino. Para auditoria de redirecionamentos, mantenha desabilitado.
Próximos Passos
Com o workflow rodando, o próximo passo concreto é transformar o CSV em ação. Sugestão de sequência para esta semana:
- Rode o workflow com as 340 URLs do portal jurídico e abra o CSV no Google Sheets.
- Crie uma coluna calculada
prioridadecom a fórmula=SE(OU(B2="";E2="");"alta";"baixa")para destacar páginas sem description ou canonical. - Agende o workflow para rodar toda segunda-feira às 7h com o nó Schedule Trigger, comparando com a semana anterior para detectar regressões.
- Estenda o Code node para capturar também
og:imageetwitter:card, úteis para auditoria de compartilhamento social.
Se você quiser ir além, o mesmo padrão serve para monitorar concorrentes (troque a lista de URLs pelas páginas do concorrente) ou auditar um sitemap inteiro (adicione um nó XML antes do Split In Batches). A estrutura — ler lista, iterar, extrair, consolidar em CSV — é reutilizável em qualquer cenário que envolva metadados de páginas.
Gostou do conteúdo? Inscreva-se para receber as novidades:


Comments are closed