Como corrigir Maximum Execution Time Exceeded no WordPress
O que é o erro Maximum Execution Time Exceeded?
O erro Maximum Execution Time Exceeded acontece porque o PHP tem a diretiva max_execution_time, que define quantos segundos um único script pode rodar antes de ser interrompido. O padrão da maioria das hospedagens é 30 segundos. Quando uma importação, atualização ou backup demora mais que isso, o PHP mata o processo e o WordPress mostra “Fatal error: Maximum execution time of 30 seconds exceeded”. É um limite de segurança contra scripts que travam o servidor, não um defeito do seu site.
Como identificar
- A mensagem “Fatal error: Maximum execution time of 30 seconds exceeded” aparece em uma página em branco ou no log.
- Importações de conteúdo (XML, demo de tema) ou backups param sempre por volta do mesmo tempo.
- A atualização de um plugin ou tema grande falha no meio e deixa o site em modo de manutenção.
- O erro cita um arquivo dentro de wp-content (ex.: wp-content/plugins/…/arquivo.php on line X) onde o script estourou o tempo.
Antes de começar: Faça backup do php.ini, do .htaccess e do wp-config.php antes de editar. Um erro de sintaxe nesses arquivos derruba o site, então altere uma diretiva por vez e teste. Não suba o tempo muito além do necessário: limites altos demais deixam scripts travados consumindo recursos.
Como prevenir
- Mantenha o max_execution_time em pelo menos 120s em sites que fazem importações ou backups regulares
- Use plugins de backup e migração que processam em lotes, em vez de uma única requisição longa
- Otimize o banco de dados periodicamente para que consultas lentas não prendam scripts até o limite de tempo
Causa
- max_execution_time do PHP baixo (30s) para tarefas longas como importação ou geração de miniaturas em lote.
- Importação de demo de tema ou arquivo XML grande que leva mais de 30 segundos para concluir.
- Plugin de backup ou migração processando muitos arquivos em uma única requisição.
- Consulta lenta ao banco de dados (tabela inchada, sem índice) que prende o script além do limite.
- Servidor compartilhado sobrecarregado, deixando cada requisição PHP mais lenta e estourando o teto de tempo.
Como resolver
- Confirme o limite atual: no wp-admin, vá em Ferramentas > Saúde do site > Informações > Servidor e veja "Tempo máximo de execução do PHP". Isso mostra de quantos segundos você está partindo.
- Aumente o limite no php.ini: via FTP, edite (ou crie) o php.ini na raiz do site e suba o valor para 300 segundos (5 minutos):
max_execution_time = 300 - Se não tiver acesso ao php.ini, use o .htaccess: no servidor Apache, adicione a diretiva ao .htaccess da raiz para forçar o novo limite:
php_value max_execution_time 300 - Como último recurso, ajuste pelo wp-config.php: alguns hosts respeitam o set_time_limit do PHP. Adicione a linha ao wp-config.php antes de /* That's all, stop editing! */:
@set_time_limit( 300 ); - Quebre a tarefa se nada subir o limite: se a hospedagem trava o teto, divida o trabalho: importe o conteúdo em partes menores ou use um plugin de migração que processa em lotes em vez de uma requisição única.
INI
; php.ini — eleva o tempo maximo de execucao de um script PHP
; Padrao tipico de hospedagem = 30; 300 (5 min) cobre importacoes e backups longos
max_execution_time = 300
; Sobe junto o tempo de leitura do corpo da requisicao (uploads grandes)
max_input_time = 300
Perguntas frequentes
Qual valor de max_execution_time é seguro no WordPress?
300 segundos (5 minutos) atende a importações, backups e atualizações pesadas sem deixar scripts presos por tempo demais. Para tarefas comuns, 120s já basta. Evite valores muito altos, pois mantêm processos travados consumindo memória e CPU do servidor.
Aumentei o max_execution_time mas o erro continua. Por quê?
Muitos hosts impõem um teto no php.ini do servidor que ignora suas alterações. Tente o .htaccess; se ainda travar no mesmo tempo, o limite está bloqueado pela hospedagem e só o suporte pode liberar. Em PHP-FPM, o request_terminate_timeout também pode estar abaixo.
Qual a diferença entre max_execution_time e max_input_time?
O max_execution_time conta o tempo que o script roda processando dados; o max_input_time conta o tempo para o PHP receber e ler os dados enviados (como o upload de um arquivo). Importações grandes podem esbarrar nos dois, por isso convém subir ambos juntos.
O erro só aparece em importações. É problema do meu site?
Não necessariamente. Importar demos de tema ou arquivos XML grandes leva tempo, e 30 segundos costuma ser pouco. Não é um defeito: é o limite padrão sendo atingido. Subir o max_execution_time ou importar em partes menores resolve.
Posso usar set_time_limit(0) para remover o limite?
Tecnicamente sim, mas é arriscado: um script com bug pode rodar para sempre e travar o servidor. Prefira um valor finito alto, como 300. Muitos hosts em PHP-FPM também ignoram o set_time_limit por segurança.
Esse erro pode travar meu site inteiro?
Em geral ele só interrompe a tarefa que estourou o tempo (uma importação ou atualização). Mas se a atualização falhar no meio, o site pode ficar preso no modo de manutenção. Nesse caso, apague o arquivo .maintenance da raiz via FTP para voltar ao ar.














