Como otimizar o WordPress para velocidade sem plug-ins (o guia somente de código)

Publicado em | Por
6 minutos de leitura

If you’re reading this, you’re likely tired of the standard WordPress performance advice. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: você instala plug-ins para acelerar seu site, mas os próprios plug-ins adicionam inchaço ao banco de dados, tarefas cron em segundo plano e suas próprias cargas CSS/JS.

A verdade é que o WordPress não precisa de 15 plugins de desempenho para carregar em menos de um segundo. A verdadeira otimização da velocidade acontece na camada metálica – o servidor, o banco de dados e o código principal.

Neste guia, vamos ignorar totalmente o ecossistema de plugins. Otimizaremos o WordPress usando configurações do lado do servidor, wp-config.php ajustes e cirurgia functions.php trechos.


1. A base do lado do servidor (sem necessidade de PHP)

Antes de tocar em uma única linha de código WordPress, o ambiente do seu servidor deve ser fortemente otimizado. Um servidor fraco não pode ser corrigido pelo cache front-end.

Atualize para PHP 8.1+

WordPress roda em PHP. Mudar do PHP 7.4 para o PHP 8.1 ou 8.2 pode gerar uma redução de 20 a 30% no tempo de execução e diminuir significativamente o consumo de memória. Ação: Altere isso em seu cPanel, Plesk ou via CLI se você gerencia seu próprio VPS.

Habilitar compactação em nível de servidor (Brotli sobre Gzip)

Embora o Gzip seja padrão, Brotli (desenvolvido pelo Google) fornece taxas de compactação cerca de 15-20% melhores para arquivos de texto (HTML, CSS, JS) com o mesmo custo de CPU. Ação (Nginx): Garanta o seu nginx.conf tem Brotli ativado:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

Implementar FastCGI Caching (Nginx) ou LiteSpeed ​​​​Cache

Em vez de usar um plugin de cache baseado em PHP (que ainda requer que o WordPress carregue parcialmente para servir o cache), armazene o cache no nível do servidor web. O cache Nginx FastCGI armazena o HTML gerado na RAM ou no disco e o fornece diretamente, ignorando completamente PHP e MySQL para visitantes anônimos.


2. Endurecimento e desbaste via wp-config.php

wp-config.php arquivo é sua sala de controle. Por padrão, o WordPress permite certos comportamentos que sobrecarregam seu banco de dados ao longo do tempo.

Adicione esses trechos logo antes do /* That's all, stop editing! Happy publishing. */ linha.

Limitar revisões posteriores

Por padrão, o WordPress armazena revisões infinitas de suas postagens. Uma postagem atualizada 50 vezes terá 50 cópias em seu wp_posts tabela do banco de dados, diminuindo drasticamente as consultas ao banco de dados.

// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );

Otimize o intervalo de salvamento automático

O WordPress salva automaticamente a cada 60 segundos. Se você tiver vários editores funcionando, isso prejudica o banco de dados. Diminua a velocidade.

// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );

Esvazie o lixo mais rápido

Postagens e comentários excluídos ficam no banco de dados por 30 dias. Reduza isso para manter o banco de dados enxuto.

// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

3. O “anti-inchaço” functions.php Trecho mestre

O núcleo do WordPress injeta uma enorme quantidade de scripts de suporte legados, links de descoberta e estilos embutidos em seu  e 

 por padrão.

Para obter o máximo ganho de informações sobre os concorrentes, não diremos apenas para “usar um plugin de debloat”. Aqui está o código exato para remover cirurgicamente o inchaço mais comum do WordPress.

Nota: Adicione isto ao seu tema filho functions.php ou um plugin mu drop-in.

/**
 * The Ultimate WordPress Debloat Snippet
 */
add_action('init', function() {
    // 1. Remove RSD, XMLRPC, and WLW links
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    add_filter('xmlrpc_enabled', '__return_false');

    // 2. Remove WordPress version footprint (Security & Speed)
    remove_action('wp_head', 'wp_generator');

    // 3. Remove Shortlinks and REST API links from header
    remove_action('wp_head', 'wp_shortlink_wp_head');
    remove_action('wp_head', 'rest_output_link_wp_head');

    // 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    remove_action('admin_print_styles', 'print_emoji_styles');
    remove_filter('the_content_feed', 'wp_staticize_emoji');
    remove_filter('comment_text_rss', 'wp_staticize_emoji');
    remove_filter('wp_mail', 'wp_staticize_emoji_for_email');

    // 5. Disable oEmbeds (If you don't embed external URLs automatically)
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});

/**
 * 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
 */
add_action('wp_enqueue_scripts', function() {
    wp_dequeue_style('global-styles');
    wp_dequeue_style('classic-theme-styles');
}, 100);

/**
 * 7. Remove jQuery Migrate (If using modern themes/plugins)
 */
add_action('wp_default_scripts', function($scripts) {
    if (!is_admin() && isset($scripts->registered['jquery'])) {
        $script = $scripts->registered['jquery'];
        if ($script->deps) {
            $script->deps = array_diff($script->deps, ['jquery-migrate']);
        }
    }
});

/**
 * 8. Throttle the Heartbeat API
 * Prevents high CPU usage when leaving the WP Admin open
 */
add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 60; // Throttle to 60 seconds
    return $settings;
});

O que acabamos de alcançar?

Ao adicionar o código acima, você eliminou instantaneamente até 5 a 8 solicitações HTTP desnecessárias e removeu dezenas de linhas de CSS/JS in-line de cada carregamento de página – tudo sem instalar um único plugin.


4. Otimização de mídia (da maneira mais difícil)

Plugins como Smush ou Imagify são convenientes, mas executam processamento de imagens em seu servidor PHP, consumindo recursos da CPU.

Conversão manual de WebP/AVIF

Antes de enviar qualquer imagem para o WordPress, execute-a por meio de um compressor externo sem perdas como Squoosh.app (pelo Google) ou Minúsculo PNG. Melhor ainda, converta-os em .webp ou .avif formata localmente antes de fazer o upload.

Aproveite o carregamento lento nativo

Desde o WordPress 5.5, o carregamento lento nativo está integrado. WordPress adiciona automaticamente loading="lazy" às suas imagens. Você não precisa de um plugin de carregamento lento baseado em JavaScript. No entanto, certifique-se de que suas imagens “acima da dobra” (como seu logotipo ou imagem principal) NÃO tenham esse atributo, pois isso atrasará o Largest Contentful Paint (LCP).

Você pode remover o carregamento lento da primeira imagem em uma página via functions.php:

add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    static $is_first_image = true;
    if ( $is_first_image ) {
        $attr['loading'] = 'eager'; // Force immediate load for LCP
        $is_first_image = false;
    }
    return $attr;
}, 10, 3 );

5. Desfragmentação de banco de dados via phpMyAdmin

Os plug-ins de otimização geralmente apresentam um botão “Limpar banco de dados”. Você pode fazer isso nativamente no nível do banco de dados.

  1. Faça login no seu painel de hospedagem e abra phpMyAdmin.
  2. Selecione seu banco de dados WordPress.
  3. Role até o final, verifique Verifique tudo.
  4. No menu suspenso “Com selecionado:”, escolha Otimizar tabela.

O MySQL reconstruirá os índices da tabela e recuperará o espaço não utilizado. Faça isso manualmente uma vez por mês.


O veredicto

Otimizar o WordPress sem plug-ins não envolve apenas economizar dinheiro em assinaturas premium. É uma filosofia de reduzindo a dívida técnica. Cada plugin que você não instala é uma vulnerabilidade de segurança que você não precisa corrigir, uma tabela de banco de dados que você não precisa limpar e um script PHP que seu servidor não precisa executar.

Mude a carga de trabalho para o servidor (PHP 8.1+, Nginx FastCGI), imponha disciplina em seu wp-config.phpe corte o inchaço central usando seu functions.php. Seu tempo até o primeiro byte (TTFB) e Core Web Vitals refletirão a diferença.

Compartilhe esta postagem

Ajay Malik

Ajay Malik é desenvolvedor WordPress e Elite Freelancer com mais de 8 anos de experiência.