🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como otimizar o wp_options para reduzir queries lentas no WordPress

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro wp_options com queries lentas EN: wp_options slow queries
Severidade Grave
Descrição O wp_options lento no WordPress acontece quando a tabela de opções carrega dados demais em autoload a cada requisição, pesando em todas as páginas. Costuma vir de autoload inchado, transients órfãos acumulados e lixo deixado por plugins desinstalados.

O que é otimizar wp options para queries lentas no WordPress?

Otimizar wp options no WordPress significa enxugar a tabela wp_options, que guarda as configurações do site, para ela parar de gerar queries lentas. A cada requisição, o WordPress carrega de uma vez todas as linhas marcadas com autoload igual a yes, montando o cache de opções. Quando essa fatia de autoload cresce demais (por transients que não expiram, dados de plugins removidos ou opções enormes), o banco devolve megabytes em toda página, o TTFB sobe e o site inteiro fica lento, mesmo com cache de página. A correção é reduzir o que é carregado em autoload e limpar o lixo acumulado.

Como identificar

  • O Query Monitor aponta a query de autoload do wp_options entre as mais lentas e pesadas de cada página.
  • O total de dados em autoload passa de 1 MB ao consultar a soma da coluna no banco.
  • O TTFB fica alto em todas as páginas mesmo com cache de objetos e de página ativos.
  • A tabela wp_options tem milhares de linhas, muitas com nomes de plugins que você já desinstalou.
Antes de começar: Sempre faça um backup completo do banco de dados antes de apagar linhas ou alterar o autoload no wp_options. Remover uma opção essencial pode quebrar o site, e o backup permite reverter.

Como prevenir

  • Monitore o tamanho do autoload com regularidade e aja quando passar de 1 MB
  • Prefira plugins que removem suas próprias opções ao serem desinstalados e limpe o resto manualmente
  • Mantenha um cache de objetos persistente (Redis ou Memcached) para servir o autoload da memória

Causa

  • Transients órfãos acumulados que não expiram e permanecem marcados como autoload na tabela.
  • Opções com autoload igual a yes guardando dados enormes (logs, caches serializados) carregados em toda página.
  • Lixo deixado por plugins e temas desinstalados que nunca removeram suas próprias opções.
  • Plugins que gravam dados de sessão ou de fila no wp_options em vez de uma tabela própria.
  • Ausência de cache de objetos persistente (Redis ou Memcached), forçando o banco a montar o autoload a cada requisição.

Como resolver

  1. Meça o tamanho do autoload: antes de mexer, faça backup do banco e meça quanto a tabela carrega em autoload. Um valor acima de 1 MB já justifica a limpeza e indica o quanto pesa em cada requisição.
  2. Identifique as maiores opções em autoload: liste as opções com autoload yes ordenadas por tamanho. As poucas linhas gigantes no topo costumam ser a causa real, não as milhares de linhas pequenas.
  3. Limpe os transients órfãos: remova os transients expirados e órfãos da tabela. Eles inflam o autoload sem necessidade e voltam a ser gerados pelo WordPress quando realmente forem precisos.
  4. Desligue o autoload das opções pesadas: para opções grandes que não são usadas em toda página, mude o autoload de yes para no. Assim elas só são lidas quando o código pede, e não a cada requisição.
  5. Ative um cache de objetos persistente: configure Redis ou Memcached como cache de objetos. Com ele, o autoload é montado uma vez e servido da memória, em vez de bater no banco a cada visita.
  6. Remova o lixo de plugins antigos: apague as opções deixadas por plugins e temas que você não usa mais, identificando-as pelo prefixo do nome, sempre com backup feito antes.
SQL
-- 1) Quanto a tabela carrega em autoload a cada requisicao (em bytes):
SELECT SUM(LENGTH(option_value)) AS autoload_bytes
FROM wp_options
WHERE autoload = 'yes';

-- 2) As 20 maiores opcoes carregadas em autoload (o verdadeiro peso):
SELECT option_name, LENGTH(option_value) AS bytes
FROM wp_options
WHERE autoload = 'yes'
ORDER BY bytes DESC
LIMIT 20;

-- 3) Desligar o autoload de UMA opcao pesada e pouco usada
--    (troque pelo option_name real visto no passo 2):
UPDATE wp_options
SET autoload = 'no'
WHERE option_name = 'nome_da_opcao_pesada';

-- 4) Remover transients expirados que incham o autoload:
DELETE FROM wp_options
WHERE option_name LIKE '_transient_%'
   OR option_name LIKE '_site_transient_%';

Perguntas frequentes

O que é o autoload no wp_options?
É a marca que diz ao WordPress quais opções carregar de uma vez em toda requisição, montando o cache de opções. Linhas com autoload igual a yes são lidas em cada página; quando essa fatia cresce demais, o wp_options vira gargalo de performance.
Qual tamanho de autoload já é problema?
Acima de 1 MB de dados em autoload já justifica a limpeza, porque esse volume é carregado em toda página. Meça com a soma do tamanho das opções com autoload yes e foque nas poucas linhas gigantes, que costumam ser a causa real.
Posso simplesmente apagar linhas do wp_options?
Só com backup e critério. Transients expirados e opções de plugins removidos podem ser apagados com segurança. Mas remover uma opção em uso quebra o site, então identifique cada linha pelo nome antes de excluir e mantenha o backup à mão.
Transients deixam o wp_options lento?
Podem deixar. Transients que não expiram ou ficam órfãos se acumulam e, quando marcados como autoload, são carregados em toda página sem necessidade. Limpá-los reduz o peso do autoload, e o WordPress recria os que realmente forem precisos.
Cache de objetos resolve o wp_options lento?
Ajuda bastante. Com Redis ou Memcached, o autoload é montado uma vez e servido da memória em vez de bater no banco a cada requisição. Mas convém também enxugar o autoload, porque o cache guarda tudo o que estiver marcado, inclusive o lixo.
Desligar o autoload de uma opção pode quebrar o site?
Não, desde que a opção não seja necessária em toda página. Ao mudar o autoload para no, a opção continua existindo e é lida quando o código a solicita. O risco é só de uma leve lentidão pontual se algo usado com frequência for desativado por engano.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes