Destaque

Pare de Gastar Tokens em LLM com HTML do WordPress: ParseLess para CLI

Enviar uma página WordPress para Claude Code, Codex ou Gemini CLI queima 95%+ dos tokens em markup de tema. ParseLess remove isso e retorna Markdown limpo.

4 de junho de 2026
7 min de leitura
Tags
Claude CodeOpen Source

No mês passado, eu precisava que o Claude Code automatizasse a refatoração de posts de umas 3.000 palavras pra um cliente. Tarefa simples: ler um post, analisar os concorrentes, fazer pequenas reescritas, talvez sugerir dois H2 novos.

O cliente rodou a automação. O Claude Code voltou com a reescrita e um aviso: 19.800 tokens de entrada usados.

O detalhe: em conteúdo, o post dava uns 975 tokens.

Eu sabia que a conta era ruim. Não sabia que era tão ruim.

Pra onde iam os tokens do Claude Code

Se você já abriu uma página WordPress no DevTools, já sabe. O HTML de um único post, num tema comum, é um bolo de várias camadas: wrappers <div>, menus, widgets na barra lateral, a estrutura do Elementor, o markup dos blocos do Gutenberg, JSON-LD do schema.org e scripts de banner de cookies. Se você usa page builder de terceiros e deu azar com os devs, provavelmente sofre de um caso grave do que eu chamo de "div matrioska": div dentro de div dentro de div dentro de... div.

O texto que você escreveu de verdade, a parte de que o LLM precisa, está em algum lugar no meio, cercado por uma muralha de ruído estrutural.

Quando você manda isso pro Claude Code, pro Cursor, pro Antigravity, pro n8n ou pra qualquer CLI que passa o seu conteúdo a um LLM, o modelo processa tudo, obediente. Cada <div class="elementor-row">. Cada link do menu. Cada coluna do rodapé com o inevitável título "Links rápidos".

Depois ele joga fora 95% disso e lê o seu texto.

A CLI recebe o código inteiro pra usar só alguns parágrafos.

25 vezes menos tokens com um parâmetro na URL

O ParseLess é um plugin de WordPress que acabei de lançar e que resolve isso do jeito menos esperto possível: quando um bot de IA ou uma ferramenta de CLI pede uma página, o plugin entrega Markdown em vez de HTML.

Acrescente ?format=md na URL de qualquer post num site com o plugin:

curl https://yoursite.com/my-post/?format=md | claude "summarize this"

Você recebe o post em Markdown limpo. Títulos, parágrafos, listas, tabelas, blocos de código com a linguagem preservada, imagens e links. Nada de HTML de widget. Nada de estrutura de page builder. Nada de tema. Nada de plugin extra.

Rodei as mesmas três páginas no Claude Code, no OpenAI Codex e no Gemini CLI pra ter certeza de que a economia era real, e não uma esquisitice de um tokenizador específico:

PáginaTamanho HTMLTamanho MarkdownRedução
Guia SEO Elementor~102 KB / ~25.500 tokens5.4 KB / ~1.350 tokens94.7% (19x)
Guia PageSpeed WP-AutoInsight~101 KB / ~25.300 tokens4.0 KB / ~1.000 tokens96.0% (25x)
Post padrão "hello world"~108 KB / ~27.000 tokens3.6 KB / ~900 tokens96.7% (30x)

Três CLIs diferentes, o mesmo resultado. Pelo menos 95% dos tokens vão embora só pra ler o seu site. É uma economia enorme pra agência de SEO e pra quem escreve conteúdo.

Page builder piora tudo: as páginas de Elementor acima mandam uns 100 KB de HTML pra cerca de 1.000 tokens de conteúdo real. Tema leve se sai um pouco melhor, mas a proporção continua péssima.

O que o plugin muda no fluxo de trabalho

Revisão de conteúdo em massa. Antes, o cliente conseguia enfiar uns quatro ou cinco posts numa janela de contexto do Claude Code antes de bater no limite. Com o ParseLess, ele manda dezenas de uma vez e pede coisas como conferir a consistência do acervo inteiro: ele usa "freelancer" e "consultor" como se fossem a mesma coisa? Os CTAs estão alinhados? Quais posts se contradizem num assunto?

Escrita com referência cruzada. Está rascunhando um post novo e quer linkar trabalhos antigos que tenham a ver? Mande uma lista escolhida de URLs antigas pro Claude Code pelo ParseLess e peça pra ele achar os três posts mais relevantes e onde linkar cada um no rascunho. O acervo inteiro cabe.

Trabalho com cliente. Quando um cliente me pede pra auditar a estratégia de conteúdo dele, consigo carregar o site inteiro num Claude Project sem ver o contador de tokens disparar. A auditoria passa a ser sobre o conteúdo, e não sobre quanto do blog eu consegui ler.

Como funciona

O plugin se pendura no template_redirect. Quando chega uma requisição, ele confere duas coisas: é o User-Agent de um bot de IA (GPTBot, ClaudeBot, PerplexityBot e mais uma dúzia) ou a URL tem ?format=md? Se qualquer uma for verdade, o ParseLess passa o conteúdo do post pelo filtro the_content (o mesmo que o WordPress usa na renderização normal, então shortcodes de page builder e blocos são processados direitinho) e converte o HTML resultante em Markdown.

O resultado fica em cache como transient. Na próxima vez que um bot ou uma CLI pede o mesmo post, é uma única leitura de transient. A conversão roda uma vez só por post, até ele ser editado.

Visitante humano e crawler de busca comum, como o Googlebot, nunca são afetados. Eles recebem o site em HTML completo, igualzinho a antes. Nada muda no site visível. Então você gasta menos tokens e mantém todo o valor de SEO e AEO.

A ergonomia na CLI

O ?format=md funciona com qualquer coisa que consiga buscar uma URL. Alguns padrões que eu uso:

# Enviar um único post para Claude
curl -s https://yoursite.com/post-slug/?format=md | claude "rewrite the intro to be punchier"

# Enviar através de jq se você habilitou frontmatter YAML
curl -s https://yoursite.com/post-slug/?format=md

# Múltiplos posts ao mesmo tempo para referência cruzada
for slug in post-a post-b post-c; do
  curl -s "https://yoursite.com/$slug/?format=md"
  echo "---"
done | claude "find contradictions between these posts"

Se você quer metadados junto com o conteúdo, tem uma configuração opcional de frontmatter YAML que coloca título, URL, autor, data, categorias, tags e resumo no começo de cada resposta em Markdown. Útil se o seu prompt depende de saber quando o post foi escrito ou em que categoria ele está.

Achando o seu próprio conteúdo por script

Se você escreve scripts pro seu próprio acervo, o ParseLess 0.5.0 trouxe um sitemap em /botfood-sitemap.xml que lista todo post público com a URL em Markdown. Ele é anunciado no robots.txt, pra que crawlers de IA encontrem, mas também serve se você quer que uma ferramenta de CLI carregue o site inteiro sem manter uma lista de URLs na mão.

# Puxar cada URL do sitemap de IA e enviar cada post para Claude
curl -s https://yoursite.com/botfood-sitemap.xml \
  | grep -oE 'https?://[^<]+' \
  | xargs -I {} curl -s "{}?format=md"

Útil quando você publicou posts novos desde a última operação em massa e não quer ter que lembrar quais.

O que eu ainda quero consertar

O plugin está na versão 0.5.0. Funciona, mas tem algumas coisas na minha lista.

Os blocos de código preservam a linguagem nos blocos de código padrão do Gutenberg e na maioria dos syntax highlighters populares, mas alguns plugins de nicho usam markup próprio e não saem limpos. Se você esbarrar num desses, o filtro é o lugar certo pra corrigir.

Não tem limite de taxa no endpoint ?format=md. O cache em transient deixa isso tranquilo na maior parte do tempo, mas se você está numa VPS pequena e preocupado com alguém raspando o seu acervo inteiro por script, é uma preocupação razoável. Provavelmente vou colocar um limitador opcional numa versão futura.

Teste nos seus próprios posts

O ParseLess é GPL, gratuito e está no diretório oficial do WordPress. Instale, ative e pronto. Não precisa configurar nada pro uso na CLI, mas o plugin tem uma página de Configurações pra você ajustar tudo como quiser.

Se você construir algo útil em cima dele, ou achar um caso extremo em que o Markdown não sai muito certo, me avisa. Estou mexendo nele ativamente, e caso extremo é bem mais fácil de consertar quando alguém me conta.

Se o seu time está levando os fluxos de conteúdo pra LLMs e você cansou de pagar por HTML de que não precisa, esse também é um problema que eu ajudo empresas a resolver.

Agora vá conferir quantos tokens o seu próprio site está te custando.

Leia Mais Artigos

Mais artigos pra ler

Voltar para o Blog