Stack técnico completo para sites WordPress de alto desempenho.
Documentação integral de uma arquitetura WordPress com captura de leads anti-bot, SEO técnico avançado, cache em várias camadas, identidade visual coesa e operação observável. Implementação inline, sem assinatura comercial, pronta para ser replicada em qualquer projeto.
Do navegador do visitante até o disco: cada camada tem um papel e um ponto de falha próprio.
Infra observável
nginx, PHP-FPM, MySQL e Redis, com systemd timers, backup antes de cada mudança e idempotência em todo script.
Performance real
Cache Redis em três níveis, gzip, preload de fontes e defer de JS. TTFB 85% menor em cache quente.
Captura segura
REST API própria, dez camadas anti-bot, honeypots, armadilha de tempo, limite de taxa e registro de bloqueios.
[Cliente]
HTTPS, compressão negociada
[nginx]
HTTP/2, TLS, cabeçalhos de cache
gzip on
rewrite para index.php quando não é asset
proxy para php-fpm por socket unix
[PHP-FPM]
WordPress core
Elementor
W3 Total Cache, page cache no Redis db2
MU-plugins: SEO meta, SEO schema, performance, formulários
wp_mail por SMTP autenticado
wp-cron e systemd timers
[Redis] [MySQL] [Filesystem]
db0 objetos tabelas wp_ leads em JSONL
db1 consultas dados dos leads builders em /usr/local/share
db2 páginas backups e watchdogs
01
Infraestrutura
Camada base: servidor, cache e mailer.
nginx com gzip, Brotli em standby
Servidor web com gzip ativo. O Brotli está compilado como módulo dinâmico, mas desabilitado por padrão por causa do conflito de dupla compressão com o W3TC, documentado no capítulo 11.
HTTP/2 com TLS 1.3
gzip on, gzip_vary on
Cache de navegador de um ano para CSS, JS, imagens e fontes
Módulos Brotli compilados e prontos para ativar
Backup da configuração antes de cada mudança
Validação com nginx -t antes de todo reload
PHP-FPM com extensão Redis
Pool PHP com a extensão redis para o WordPress falar direto com o cache em memória.
pm.max_children dimensionado pela memória disponível
opcache habilitado, com revalidação periódica em produção
Envio de e-mail por SMTP, não por sendmail local
Extensões críticas: redis, mysqli, curl, intl, mbstring e opcache
Reload gracioso em vez de restart, para preservar as sessões
Redis com três bancos lógicos
Cache em memória separado por escopo, para que o flush de um não derrube os outros.
db0, cache de objetos: consultas e transients do WordPress
db1, cache de banco: consultas SQL repetidas
db2, cache de página: HTML completo em memória
Conexões persistentes, sem abrir socket por requisição
Escuta apenas em 127.0.0.1
MySQL e SMTP autenticado
Persistência relacional mais relay de e-mail autenticado para entrega comercial.
wp_options e wp_postmeta indexados
Backup de wp_options antes de cada mudança crítica
Provedor de SMTP confirmado pelos registros MX, nunca presumido
Cabeçalhos transacionais para não cair na aba de promoções
Log de envio consultável no banco
02
WordPress e Elementor
CMS e page builder ajustados para performance.
Core enxuto
O que não é usado sai do HTML, em vez de ser escondido por CSS.
Heartbeat desligado no site público
Emojis do core removidos
wp-block-library e global-styles fora da fila quando o site é todo Elementor
wp_generator, RSD, wlwmanifest e shortlink removidos
Links de feed removidos quando não há feed em uso
Elementor com CSS interno
A configuração de cache do builder é o que garante que a página não perca o estilo em um flush.
CSS impresso no HTML, imune a flush de cache de plugin
_inline_size sempre numérico, nunca nulo, senão a coluna colapsa no celular
Páginas construídas por scripts PHP idempotentes
Marcador na seção do formulário para a injeção não duplicar
CSS do Elementor regenerado limpando o postmeta correspondente
Quatro plugins isolados, uma responsabilidade cada.
SEO Engine, meta e schema base
Injeta meta description, canonical, Open Graph, Twitter Cards e o JSON-LD do grafo base.
Roda no início do wp_head, antes de qualquer outra coisa
Remove o canonical do core em páginas singulares, para não duplicar
Descrição derivada do conteúdo quando não há uma escrita à mão
Remove a assinatura duplicada do título quando ele já traz a marca
Primeira imagem com prioridade alta de carregamento, para o LCP
SEO Schema, Service, Product e FAQ
Estende o motor de SEO com o schema específico de cada página.
Mapa de página para tipo Service ou Product
Service com público, área atendida e prestador
FAQPage extraída automaticamente do acordeão da página
Cada pergunta e resposta vira um nó do grafo
Resultado rico no buscador e ingestão correta por buscadores de IA
Performance Engine
Reduz o bloqueio de renderização sem depender de plugin comercial.
preconnect e preload das fontes usadas
defer automático em scripts não críticos
Remoção de emojis, RSD, wlwmanifest e gerador
wp-block-library e global-styles fora da fila no site público
Heartbeat desregistrado fora do painel
LP Forms, captura com anti-bot
Sistema de formulários próprio, no lugar de plugin externo abandonado.
Endpoint REST próprio, porque POST anônimo em admin-ajax é bloqueado pelo plugin de segurança
Resposta em menos de um segundo, com o envio de e-mail depois de fechar a conexão
Arquivo JSONL local como fonte da verdade: o lead não se perde nem com o SMTP fora
Dois e-mails simultâneos, notificação comercial e confirmação ao cliente
Cabeçalhos transacionais para não cair na aba de promoções
Remetente dinâmico identificando o canal de origem
05
Anti-bot estratificado
Dez camadas independentes. O bot precisa passar por todas.
Camada
O que detecta
Reação
Honeypots múltiplos
Três campos invisíveis preenchidos
Descarte silencioso ou bloqueio
Armadilha de tempo
Envio em menos de três segundos ou formulário velho
Bloqueio e strike
Token que exige JS
Ausência do token gerado no navegador
Bloqueio
Filtro de user-agent
Lista de 19 padrões de cliente automatizado
Bloqueio silencioso
Referer e origem
Envio vindo de fora do próprio domínio
Bloqueio
Tamanho do payload
Mais de 5 KB de parâmetros
Bloqueio
Limite de taxa, nível 1
Dois ou mais envios por minuto do mesmo IP
Resposta 429
Limite de taxa, 2 e 3
Mais de cinco por hora ou vinte por dia
Strike e lista de bloqueio
Sistema de strikes
Três violações em 24 horas
IP bloqueado por 24 horas
Checagem semântica
URL no nome, e-mail descartável, telefone curto
Recusa com mensagem amigável
As tentativas bloqueadas são registradas em arquivo próprio, com IP, user-agent, referer e motivo, o que permite analisar padrões de ataque sem poluir a base de leads válidos.
06
SEO técnico
Cobertura para buscador tradicional e para buscador de IA.
Meta tags e Open Graph
Cobertura de todas as páginas publicadas.
Meta description própria, com geração automática quando falta
Canonical em todas as páginas singulares
Open Graph completo, com imagem de tamanho adequado
Twitter card grande com título, descrição e imagem
Diretivas de robôs permitindo pré-visualização grande de imagem
JSON-LD em grafo
Resultado rico no buscador e leitura correta por IA.
WebSite com identificador canônico do domínio
Organização com endereço, telefone e área atendida
WebPage por URL
Trilha de navegação automática
Service ou Product específico nas páginas de produto
FAQPage extraída do acordeão da página
Buscadores de IA
Arquivo de orientação na raiz mais permissão explícita no robots.
llms.txt na raiz, em markdown, listando os produtos com URL e descrição curta
robots.txt liberando explicitamente os rastreadores de IA conhecidos
Sitemap referenciado no robots.txt
JSON-LD rico, para ingestão sem ambiguidade
Sitemap e rastreio
Indexação acelerada.
Sitemap dinâmico nativo do WordPress
sitemap.xml redirecionando para o sitemap real
Bloqueio de área administrativa, cache e pasta de leads
Bloqueio de URLs de busca e de parâmetros que geram conteúdo duplicado
Monitoramento pelo Search Console
07
Identidade visual coesa
Sistema de tokens em vez de valor solto no widget.
Paleta em tokens
Definida uma vez e herdada por todos os componentes.
Navy como cor de marca, em título, navegação e botão principal
Navy profundo nos fundos de hero
Azul nos destaques secundários e no hover
Ciano nas pílulas, ênfases e detalhes
Verde, âmbar e vermelho apenas como status
Escala de texto com contraste validado em WCAG AA
Tipografia responsiva
A escala desce sozinha do desktop para o celular.
Uma família só, com preconnect e preload
Pesos 400, 500, 600 e 700
Título principal de 56px no desktop a 28px no celular
Corpo de 16px com entrelinha 1,75
Ênfase em itálico com peso 700, porque peso menor some
Espaçamento responsivo
O respiro do desktop sufoca o celular se não descer junto.
Padding vertical reduzido automaticamente no tablet e no celular
Padding horizontal limitado no celular
Grade de duas colunas virando uma só nas telas estreitas
Componentes reutilizáveis
Funções que devolvem blocos consistentes.
Título com tipografia responsiva automática
Texto com fonte e cor padronizadas
Pílula, botão e divisor
Lista com ícone
Bloco HTML com CSS escopado, para o estilo não vazar
08
Operação observável
Watchdog, backup e idempotência.
Persistência consciente
Nada importante mora em /tmp, que é limpo no boot.
Scripts em /usr/local/bin
Builders e dados em /usr/local/share
Logs em /var/log
Serviços habilitados para subir sozinhos
Timers do systemd para watchdog, arquivamento e verificações
Watchdog e recuperação
Detecta a perda do CSS interno e regenera.
Verificação periódica por cron, com timer redundante
Critério objetivo de bloco de CSS presente e com tamanho mínimo
Recuperação limpando o postmeta e refazendo o cache
Log próprio com rotação simples
Backup antes de mudar
Rollback rápido quando algo quebra.
Scripts idempotentes, com marcador e verificação de existência
Snapshot da configuração do servidor antes de editar
Backup do conteúdo da página antes de reescrever
Dump da tabela de opções antes de atualização em massa
Validação em cada passo
Falha cedo, não chega quebrado em produção.
php -l antes de salvar qualquer plugin
nginx -t antes de qualquer reload
Verificação do código HTTP depois da mudança
Teste de fumaça em uma amostra de páginas
09
Documentação contínua
O contexto sobrevive ao fim da sessão.
Base de conhecimento local
Estrutura de projetos, áreas, recursos e arquivo.
Registro por sessão de trabalho
Notas de projeto ligadas por referências cruzadas
Memória entre sessões, com regras e referências
Modelos para projeto, sessão, conceito e fonte
Grafo de conhecimento
Busca por significado em vez de busca por palavra.
Reindexação do acervo por comando
Consulta devolvendo os nós e as ligações relevantes
Reindexação automática ao final de cada turno
Arquivamento de transcrições
Conversa bruta virando texto legível.
Execução horária, idempotente, sem duplicar arquivo
Contexto disponível mesmo para sessões já encerradas
10
Filosofias aplicadas
Os princípios que decidem quando há dúvida.
Não quebrar nadaBackup antes de cada mudança, validação antes de cada reload, rollback pronto e mudança incremental.
Fonte da verdade localO lead é gravado em disco antes de tentar o e-mail. E-mail é notificação, não armazenamento.
Idempotência totalO script pode rodar uma vez ou cem, o efeito é o mesmo.
Separação de responsabilidadesCada plugin cuida de uma coisa. Dá para desligar um sem derrubar o resto.
Persistência conscienteNada importante em /tmp. Cada coisa no diretório que sobrevive ao boot.
Validação contínuaLint, teste de configuração, código HTTP e comparação antes e depois.
Documentação obrigatóriaRegistro de sessão, memória e reindexação a cada interação relevante.
Design não é negociávelTipografia, paleta e contraste valem também para formulário e pop-up.
AntifragilidadeO watchdog regenera o que se perde, o cron tem timer redundante, o cache tem camadas independentes.
11
Gotchas críticos
Erros que custam horas se você não souber antes.
Dupla compressão: se o cache de página pré-gera HTML comprimido e o servidor comprime de novo, a resposta sai com dois cabeçalhos de codificação e o navegador mostra lixo binário. Escolha uma camada só de compressão.
/tmp é limpo no boot. Nunca guarde script ou dado importante lá.
_inline_size nulo no Elementor colapsa a coluna para 100% no celular. Sempre valor numérico.
A minificação de HTML tira as aspas dos atributos. Qualquer validação por expressão regular precisa aceitar as duas formas.
O css_id da seção do Elementor não vira id no HTML. Só funciona no widget.
O diretório de cache de página precisa existir. Apagar a pasta inteira faz todas as páginas responderem vazias com código 200.
POST anônimo em admin-ajax é bloqueado pelo plugin de segurança. Use endpoint REST próprio.
Plugin de formulário sem SMTP próprio depende inteiramente do envio do WordPress: o formulário parece funcionar e o e-mail nunca sai.
Serviço de e-mail com cota zerada intercepta o envio silenciosamente e marca como não enviado. Desative se o plano não inclui o recurso.
Confirme o provedor de SMTP pelos registros MX antes de configurar. Presumir é a causa número um de falha de autenticação.
Cabeçalho de descadastro marca o e-mail como newsletter e manda para a aba de promoções. Não usar em e-mail transacional.
Existe mídia falsa de um pixel disfarçada de foto em alguns pacotes. Verifique o arquivo antes de publicar.
A extensão de Redis precisa de reload do PHP-FPM depois da instalação, senão não é detectada.
A saída de configuração do nginx traz caminhos do empacotador original. Remova antes de recompilar módulos.
A configuração do W3TC não é JSON puro, tem um prefixo PHP antes do JSON. Remova antes de decodificar.
Defer no script do Elementor quebra o builder. Existe uma lista de scripts que não podem ser adiados.
Nova integração adicionada durante a sessão só fica disponível na sessão seguinte.
Habilidades carregadas na inicialização não entram no meio da sessão.
A combinação de cabeçalhos de mensagem automática e precedência transacional é a mais forte para o provedor entender que não é marketing.
Auditoria simulada de performance mascara o ganho real de tempo de resposta, porque simula rede lenta e processador limitado.
FAQ extraída do acordeão vira resultado rico automaticamente: qualquer FAQ nova entra sem trabalho manual.
12
Métricas alcançadas
O ganho medido, não o ganho estimado.
Métrica
Antes
Depois
Tempo até o primeiro byte, cache quente
8,7s
1,3s
HTML transferido
330 KB
32 KB
Nota de SEO na auditoria
85
92
Plugins ativos, superfície de ataque
20
15
Bots barrados na bateria de teste
0 de 8
8 de 8
Cobertura de meta description
53%
100%
Cobertura de WebP nas imagens publicadas
parcial
94%
Tempo de carregamento percebido em rede normal: de 8 a 12 segundos para 3 a 4 segundos. A arquitetura é replicável: nenhuma peça depende de plugin comercial, CDN externa ou captcha visual.
Cookies, Termos e Privacidade
Este site usa cookies para navegação, medição de audiência e marketing. Ao clicar em "Ciente" ou continuar navegando, você declara estar ciente e de acordo com os
Termos de Uso, a
Política de Privacidade
e o uso de cookies, conforme a LGPD (Lei 13.709/2018).