Neste momento, você provavelmente se deparou com inúmeros artigos sobre otimizações de desempenho do WordPress, muitos dos quais com as mesmas dicas antigas. Pode ser frustrante se deparar continuamente com as mesmas recomendações ineficazes sem fazer nenhum progresso.
Se você estiver se sentindo sobrecarregado e sem opções, as etapas a seguir podem oferecer uma saída. Essas são as mesmas estratégias que implementamos por padrão em todos os sites que hospedamos, englobando nossa abordagem abrangente de otimização de desempenho. Embora nos aprofundemos nas especificidades de nossa infraestrutura, esses princípios podem ser adaptados para atender a praticamente qualquer ambiente de hospedagem.
Uma regra que tendemos a seguir é que as coisas não precisam começar otimizadas. Por exemplo, com o Google Fonts, se você precisa trabalhar tanto para torná-lo eficiente, talvez deva considerar se realmente precisa dele.
Com esse espírito, começaremos desativando vários recursos do WordPress que mantêm seu verdadeiro potencial.
0. Reinicialização do WordPress:
1. Desativar o WP Cron.
O WordPress não possui um cron adequado - como o que você tem em seu servidor Linux - em vez disso, ele usa uma função que é acionada toda vez que há um acesso ao servidor da Web.
Uma solução muito melhor é usar um serviço externo para acionar o cron para sua instalação do WordPress. Aqui na Raybeam, usamos o incrível cron-job.org serviço, disparando trabalhos a cada 5 minutos. O processo acionado pelo cron pode precisar de algum tempo para ser concluído, portanto, deve haver um intervalo razoável entre eles.
A desativação do WP Cron é feita inserindo a seguinte constante em wp-config.php file:
define( 'DISABLE_WP_CRON', true );
É importante verificar se o cron externo está realmente em execução e um bom plug-in para fazer isso é o Registrador Cron.
2. Desativar ou limitar as revisões posteriores
O Post Revisions salva todas as alterações que você faz em cada publicação no WordPress, e isso pode claramente se acumular no banco de dados. Defina-o para um valor que você possa trabalhar confortavelmente ou desative-o com a seguinte constante em wp-config.php file:
define( 'WP_POST_REVISIONS', '0' );
Você também pode definir revisões ilimitadas com “-1” e configurá-los, com a ajuda de um plug-in, para que sejam removidos automaticamente após um determinado período de tempo, assunto que abordaremos mais adiante.
3. Desativar Trackbacks e Pingbacks
Os pingbacks são um incômodo e criam uma bagunça desnecessária em sua instalação. Você pode desativá-los nas configurações de Discussão do Dashboard e também adicionar o seguinte código a uma tag functions.php em seu tema ou um mu-plugin personalizado para desativar os pingbacks automáticos:
função wpsites_disable_self_pingbacks( &$links ) {
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, get_option( 'home' ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'wpsites_disable_self_pingbacks' );
4. Desativar o Capital P
Há um filtro curioso - para dizer o mínimo - no WordPress que impede que você escreva a palavra WordPress without a capital P, like so: WordPress
Você pode removê-lo com a seguinte função:
remove_filter( 'the_content', 'capital_P_dangit', 11 );
remove_filter( 'the_title', 'capital_P_dangit', 11 );;
remove_filter( 'wp_title', 'capital_P_dangit', 11 ); remove_filter( 'comment_title', 'capital_P_dangit', 11 );
remove_filter( 'comment_text', 'capital_P_dangit', 31 );
remove_filter( 'widget_text_content', 'capital_P_dangit', 11 );
Trecho de código fornecido pelo ClassicPress.
E você pode substituir a função simplesmente escrevendo WordPress corretamente.
5. Desativar XML-RPC
O XML-RPC é um recurso quase obsoleto no WordPress e geralmente é recomendado que seja desativado, pois pode melhorar o desempenho do seu site e, mais importante, a segurança, já que pode ser um possível vetor de ataque para tentativas de força bruta. A menos que precise especificamente da funcionalidade fornecida, como para aplicativos móveis ou publicação remota, você pode desativá-la com segurança.
Há várias maneiras de desativá-lo, via Apache, Nginx ou PHP, e a maioria dos plug-ins relacionados a segurança e login lida com isso. O método mais simples é com este one-liner fornecido por Jeff Star, da Perishable Press:
add_filter('xmlrpc_enabled', '__return_false');
O artigo também detalha como o XML-RPC é realmente carregado e mais maneiras de desativá-lo, portanto, recomendo que você leia. Também é recomendável desativar o X-Pingbacks:
// Desativar o cabeçalho X-Pingback
função shapeSpace_disable_x_pingback($headers) {
unset ($headers['X-Pingback']);
return $headers;
}
add_filter('wp_headers', 'shapeSpace_disable_x_pingback');
6. Desativar Dashicons
Os Dashicons são as fontes de ícones usadas pelo Painel do WordPress e são carregados no frontend mesmo quando não são usados. Desative-os com o seguinte:
// remover dashicons
função wpdocs_dequeue_dashicon() {
if (current_user_can( 'update_core' )) {
return;
}
wp_deregister_style('dashicons');
}
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );
7. Desativar Emojis
Embora os emojis adicionem apenas uma carga insignificante ao tamanho das páginas, optamos por removê-los por uma questão de princípio.
/**
* Disable the emoji's
*/
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
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' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );
/**
* Filter function used to remove the tinymce emoji plugin.
*
* @param array $plugins
* @return array Difference betwen the two arrays
*/
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
/**
* Remove emoji CDN hostname from DNS prefetching hints.
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference betwen the two arrays.
*/
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' == $relation_type ) {
/** This filter is documented in wp-includes/formatting.php */
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );
$urls = array_diff( $urls, array( $emoji_svg_url ) );
}
return $urls;
}
8. Desativar incorporações
As incorporações automáticas podem ser úteis, mas há várias alternativas de melhor desempenho disponíveis. Remova-as usando o seguinte:
function disable_embeds_code_init() {
// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Turn off oEmbed auto discovery.
add_filter( 'embed_oembed_discover', '__return_false' );
// Don't filter oEmbed results.
remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
// Remove oEmbed discovery links.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
// Remove all embeds rewrite rules.
add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
// Remove filter of the oEmbed result before any HTTP requests are made.
remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}
add_action( 'init', 'disable_embeds_code_init', 9999 );
function disable_embeds_tiny_mce_plugin($plugins) {
return array_diff($plugins, array('wpembed'));
}
function disable_embeds_rewrites($rules) {
foreach($rules as $rule => $rewrite) {
if(false !== strpos($rewrite, 'embed=true')) {
unset($rules[$rule]);
}
}
return $rules;
}
9. Controle de batimentos cardíacos
O Heartbeat fornece funcionalidades importantes ao WordPress, como salvamento automático de publicações e bloqueio de edição. Limitá-lo a 5 minutos - ou 300 segundos - pode ter um impacto semelhante ao da desativação da funcionalidade:
function wb_set_heartbeat_time_interval($settings) {
$settings['interval']=300;
return $settings;
}
add_filter('heartbeat_settings', 'wb_set_heartbeat_time_interval');
Aplique o mesmo intervalo aos salvamentos automáticos com essa constante:
define( 'AUTOSAVE_INTERVAL', 300 );
10. Reinicie com um cabeçalho mais limpo
O WordPress acumulou muitas coisas ao longo dos anos, tentando adotar todas as novas tecnologias, e algumas delas se tornaram obsoletas ou raramente usadas. Mas elas ainda são carregadas em todas as páginas, no ponto mais importante.
Esta é uma lista completa e segura.
// Remover o link rsd.
remove_action( 'wp_head', 'rsd_link' );
// Remover a tag do gerador do WordPress.
remove_action( 'wp_head', 'wp_generator' );
// Remover links de feed RSS.
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
// Remover o link para o arquivo de manifesto do Windows Live Writer.
remove_action( 'wp_head', 'wlwmanifest_link' );
// Remove os links de posts adjacentes.
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
// Remove o link curto do WordPress para sua postagem.
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
0.5: Aprimorando o WordPress
1. Não tenha medo de plug-ins
Na Raybeam, não temos medo de plug-ins. Eles são a maneira mais fácil de adicionar recursos avançados ao WordPress em comparação com outras plataformas CMS. O número de plug-ins que você usa não é necessariamente o problema, mas a qualidade deles sim.
Os plug-ins devem ser focados, idealmente fazendo apenas uma coisa e fazendo-a excepcionalmente bem. Evite plug-ins "tudo em um" que prometem fazer tudo, pois eles geralmente não funcionam e podem bagunçar sua instalação.
Com relação ao desempenho, não existe um plug-in mágico que possa corrigir instantaneamente todos os problemas de velocidade do WordPress. Em vez disso, você precisa entender as causas comuns de lentidão, tanto no front-end quanto no painel de administração, e resolvê-las individualmente. Felizmente, identificamos alguns culpados comuns.
2. Ensine seus plug-ins de alguma forma, impedindo-os de preencher as opções do Autoload
Esse é provavelmente o motivo número um para um desempenho ruim do painel. Os plug-ins têm configurações e gostam que elas sejam carregadas rapidamente, por isso preenchem a tabela "wp_options" com dados e a configuram para ser carregada em cada página. Isso pode piorar quando o plug-in em questão é desativado/excluído e ainda deixa dados para trás.
O plug-in Limpador de banco de dados avançado nos dá uma boa visão geral do que está acontecendo em nosso banco de dados e das ferramentas para corrigi-lo. Opções contém informações sobre os dados de todos os plug-ins e se eles são carregados automaticamente por padrão ou não. Limpeza geral fornece controles mais refinados sobre Revisões e Rascunho automáticoA abordagem do usuário é melhor do que a definição de limites codificados.
3. A concatenação de CSS/JS é obsoleta
No passado, a minificação e a combinação de arquivos eram essenciais para acelerar os sites, especialmente antes de termos métodos de compactação eficazes, como Brotli e Gzip. Embora a minificação ainda ajude a reduzir o tamanho dos arquivos, sua importância diminuiu com o surgimento dessas técnicas avançadas de compactação que fazem um trabalho melhor de redução de arquivos no nível do servidor da Web.
O que realmente importa agora é como carregamos os recursos em uma página e se eles bloqueiam a exibição do conteúdo. Se os scripts ou as folhas de estilo atrasarem o carregamento do conteúdo da página, isso poderá afetar negativamente a percepção do usuário e as classificações dos mecanismos de pesquisa. Plug-ins como Debloat ou Autoptimize pode ajudar otimizando os ativos, garantindo que os elementos importantes sejam carregados primeiro e adiando os menos críticos.
4. O manuseio de imagens é um assunto muito complicado
As imagens precisam ser de alta qualidade e preparadas para o futuro. Isso significa que elas devem ser capturadas e armazenadas em alta resolução, para que possam ser exibidas com clareza em uma ampla variedade de dispositivos, desde smartphones antigos até telas 4K. No entanto, as imagens de alta resolução também podem resultar em arquivos grandes, o que pode reduzir o tempo de carregamento do site. O WordPress gera automaticamente várias cópias das imagens carregadas em diferentes tamanhos de arquivo, o que significa armazenar várias versões da mesma imagem.
As compactações com e sem perdas podem obter reduções significativas no tamanho do arquivo, mas os arquivos originais de alta qualidade ainda precisam ser mantidos, pois as versões compactadas podem não ser adequadas para todos os casos de uso, e métodos de compactação melhores podem surgir no futuro.
WebP e AVIF são formatos de compactação de última geração, mas sua adoção tem sido mista e seus benefícios em comparação com os formatos tradicionais não são imediatamente claros. Além disso, os mecanismos de pesquisa indicaram que podem penalizar os sites que não usam esses formatos modernos.
Você não conseguirá lidar com tudo isso sozinho sem um plug-in ou um serviço externo. Depois de testar todas as opções disponíveis para o WordPress, chegamos à conclusão de que, embora não exista uma opção perfeita, não é possível fazer isso sozinho, EWWW Image Optimizer ainda é o melhor.
O EWWW IO compacta suas imagens usando um serviço de API externo, descarregando a carga de processamento do seu servidor. Ele fornece o tamanho exato da imagem para cada dispositivo, aproveitando sua própria CDN. E, para aumentar ainda mais o desempenho, ele fornece automaticamente versões WebP/AVIF de suas imagens, quando suportadas. A versão premium desse plug-in está incluída em nosso humilde, mas generoso Goodies pacote.
5. Todos os construtores de páginas são um fardo para o desempenho
Não me entenda mal, os criadores de páginas, incluindo Gutenberg, Elementor, Bricks e Breakdance, estão revolucionando o WordPress para melhor. Gutenberg, temas de blocos e temas FSE tiveram um início difícil, mas são definitivamente o futuro do WordPress.
O Elementor é frequentemente criticado na comunidade do WordPress, mas sua popularidade e seus recursos avançados estão rivalizando com plataformas como Wix, Squarespace e Webflow, além de ser gratuito, de código aberto, estar dentro do seu servidor e funcionar de forma tão simples quanto qualquer outro plug-in.
No entanto, se um tema clássico (os que normalmente têm um Personalizar entrada de menu) for suficiente para seu projeto, prefira usá-lo em vez de um tema de bloco ou um construtor de páginas. E se você não precisar usar nenhuma funcionalidade de bloco, considere a possibilidade de desativar o Gutenberg.
Há várias maneiras de fazer isso e restaurar o Editor clássico, globalmente ou para usuários específicos, mas a melhor maneira é o plug-in Desativar o Gutenberg.
6. O WooCommerce e seus plug-ins reduzirão seu desempenho
A instalação de qualquer solução de comércio eletrônico no WordPress inevitavelmente adiciona complexidade e afeta seu desempenho geral. O WooCommerce, o plug-in mais popular para a criação de lojas on-line, exige uma configuração adicional além da ativação inicial para atender às necessidades reais dos negócios. Para preencher essa lacuna de funcionalidade, os proprietários de lojas precisam contar com plugins e códigos personalizados, o que pode tornar o site ainda mais lento.
Esse impacto no desempenho torna-se particularmente perceptível à medida que sua loja cresce e recebe mais tráfego e pedidos. Embora as técnicas de otimização que abordamos neste artigo possam ajudar, chega um ponto em que o dimensionamento dos recursos do servidor se torna necessário para manter um desempenho aceitável. É fundamental ter esse cenário em mente ao planejar alimentar sua loja on-line com o WooCommerce.
7. Estar sempre em guarda
Os sites WordPress podem se tornar complexos com o passar do tempo, o que faz com que verificações regulares de desempenho sejam cruciais. Para manter seu site funcionando sem problemas, use plug-ins como Monitor de consulta para verificar regularmente as métricas de desempenho do seu site, como o tempo de carregamento da página e o uso da memória. Além disso, use Depuração do WP para investigar e resolver quaisquer erros ou conflitos do PHP.
Enquanto o Query Monitor se concentra no monitoramento do desempenho, o WP Debugging serve principalmente para registro de erros e solução de problemas. O uso de ambas as ferramentas oferece uma abordagem abrangente para manter a integridade do seu site.
1. DNS: Cloudflare
Tudo começa com o gerenciamento de DNS e o provedor mais rápido e confiável é, sem dúvida, a Cloudflare. Posicionado na frente de cada acesso, ele é a primeira coisa que seus usuários irão interagir quando acessarem seu site e precisa ser extremamente rápido.
Aplicamos as seguintes configurações não padrão:
Velocidade (otimização)
- Speed Brain: Sobre
- Rocket Loader™: Ligado
- Otimização automática da plataforma para WordPress (APO): Em
- 0-RTT Retomada da conexão: Ligado
Armazenamento em cache
- TTL do cache do navegador: respeitar os cabeçalhos existentes
- Dicas do Crawler: Em
- Cache em camadas: Topologia de cache em camadas
2. Hardware
Você precisará de boas especificações para executar o WordPress, de preferência em uma única máquina - ou VPS - para cada instalação, como fazemos aqui na Raybeam. Empresas de hospedagem genéricas ou até mesmo "Managed WordPress Hosting" agruparão seu site com centenas de outros no mesmo servidor ou em um ambiente em contêiner. Isso geralmente é feito para cortar custos e oferecer escalabilidade fácil, mas deixa seu site exposto a problemas de desempenho e segurança.
Todos os nossos servidores são executados no Contabo e apresentam um hardware impressionante que garante um ótimo desempenho:
- Todas as CPUs AMD EPYC;
- Somente o armazenamento SSD do NMVe;
- 12 centros de dados em 9 regiões, com latência mínima;
- 32 TB de tráfego (10 TB para Austrália e Japão).
3. Servidor: Ubuntu + WordOps
O Ubuntu 22.04 é a nossa distribuição Linux preferida para instalações padrão. Ele é amplamente usado em servidores, provou ser muito confiável ao longo dos anos e conta com uma comunidade forte.
Além disso, usamos o WordOps para gerenciar nossos servidores e sites do WordPress. Essa ferramenta vem repleta de padrões de desempenho, incluindo versões ajustadas do MariaDB, PHP e Nginx.
Uma salvaguarda troca de pelo menos 2 GB e proporcional à RAM disponível é adicionado para evitar que trabalhos caros, especialmente do MySQL, derrubem o servidor em raras ocasiões.
4. Caches:
Nosso sistema de cache usa uma arquitetura em camadas, em que cada camada de cache aplica suas próprias otimizações especializadas. Essa abordagem em camadas permite que o sistema de cache melhore progressivamente o desempenho, com caches de nível mais alto aproveitando os recursos dos de nível mais baixo:
- OPcache: O Zend OPcache está habilitado por padrão desde o PHP 5.5. Saiba mais sobre o que ele é em este artigo foi fornecido pela WP Rocket;
- Cache de objetos: Habilitamos o Redis por padrão em todas as instalações, usando a versão gratuita do Plug-in do Redis Object Cache. O Wetopi fornece um artigo sobre expectativas realistas que você deve ter ao usar o Redis no WordPress;
- Cache de página: O WordOps fornece um cache de página Redis criado com o Nginx sempre que o Redis estiver ativado;
- Cache do navegador: Os excelentes padrões de cache do navegador para o Nginx são fornecidos por padrão pelo WordOps, que também inclui a compactação Brotli;
- Cache de borda: O serviço pago Cloudflare APO está incluído em todos os planos como parte de nosso pacote Goodies e atua como um híbrido entre cache de página e de borda para o WordPress, fazendo cópias estáticas de suas páginas e enviando-as para todas as zonas. Observe que ele não substitui completamente o cache do navegador do Nginx, mas pode modificar os cabeçalhos. O melhor artigo sobre ele é este fornecido por Brian Li.

Deixe um comentário