Melhore o desempenho do seu WordPress

De Wiki Hostnet
Ir para: navegação, pesquisa

Wordpress-speed.jpg


É muito importante para um blog ou site ter um carregamento rápido, tanto para o SEO (Otimização de Sites), quanto para os leitores que muitas vezes não possuem uma boa conexão de internet.

Embora o WordPress possua um dos melhores desempenhos dentre os CMS existentes, depois que você já instalou dezenas de plugins e algumas dezenas de posts, o wordpress tende a ficar um pouco mais lento.


Dicas básicas:

Home ( página inicial ) mais leve

O coração do seu site é a página inicial. Ela é a porta de entrada para todas as outras páginas.

Tente deixar sua página inicial o mais leve possível, evite fazer com que ela faça muitas consultas ao banco de dados, uma página inicial com muita informação e pesada pode prejudicar o desempenho do seu site e espantas seus visitantes.


Plugin de cache

Atualmente é quase que indispensável cache para WordPress. Os recursos que o cache possibilita são vários:

  1. velocidade e melhor navegabilidade no seu blog
  2. uma melhor experiência de agilidade pro leitor
  3. diminuição de uso do hardware do servidor e a probabilidade do blog sofrer overload (sobrecarga) diminui


Plugin recomendado:


Importante:

Uma vez que o plugin de cache é desativado, ele não funciona quando ativado novamente. É necessário apagar todos os arquivos de cache gerado e fazer uma nova instalação limpa do plugin.


Ativar o cache do plano Private

Caso sua conta esteja em um plano Private, verifique se o sistema de cache do plano está ativado.

Acesse dentro do Painel da Hostnet o menu: Site >> Configurações dos Sites >> Editar domínio >> Cache

Caso esteja INATIVO, altere para ATIVO e clique em SALVAR no final da página .


Desative plugins desnecessários

Alguns plugins podem tornar seu blog lento, prejudicando a navegação do usuário. Procure desativar os plugins sem importância ou deixe-os desativados quando não são necessários, plugins desativados não influenciam no carregamento do blog.

Se possível remova os plugins que não pretende utilizar, assim vai evitar uma consulta de atualização de plugin feita pelo WordPress.


Otimize o MySQL

Todo o conteúdo do wordpress é guardado em uma base MySQL, com o tempo esta base vai ficando mais lenta, para que isso não influencie na velocidade de carregamento de seu blog, otimize esta base, siga estes passos.

Acesse o phpMyAdmin do seu banco de dados: http://amysql1.f1.k8.com.br

Selecione as tabelas do seu WordPress e selecione a opção "Otimizar Tabelas".


Otimizar.png


Otimize as imagens

Otimizar as imagens do tema e artigos reduzirá seu tamanho e fará com que não influencie tanto no carregamento do seu blog, esta otimização você pode fazer através de serviços online, ou com um editor de imagens.

Outra coisa que você nunca deve fazer é postar uma imagem em alta resolução para depois mostrá-la em 400×300, além de deixar o carregamento da página mais lento, você ainda vai ocupar espaço na sua hospedagem que não é necessário.

O Dynamic Drive é um serviço online que permite otimizar imagens em diferentes formatos, permitindo também exibir todos os resultados da otimização, para que você escolha a imagem de menor tamanho com boa qualidade. O serviço é gratuito e pode ser acessado através do site http://tools.dynamicdrive.com/imageoptimizer/

Você também pode usar um editor de imagem em sua máquina como o Photoshop.


Ajuste o wp-ajax

A API do WordPress funciona em /wp-admin/admin-ajax.php e executa requisições em AJAX em seu navegador. Que em teoria é incrível a forma como o WordPress acompanha o que está acontecendo no painel.

No entanto, este também pode começar a enviar pedidos excessivos para o admin-ajax.php o que pode levar a alta utilização da CPU e a lentidão de seu site/servidor. Sempre que um navegador é deixado em aberto em uma página usando o API o mesmo gera muitos problemas e lentidões devido o grande número de requisições.

Utilize o plugin Heartbeat Control que está disponível no repositório do WordPress para reajustar suas configurações do ajax do php. É um plugin simples mas que fará sua administração do wordpress ficar muito mais rápido.


Heartbeat.png


Bloqueie o arquivo xmlrpc.php

Ultimamente têm aumentado o número de ataques ao arquivo xmlrpc.php, que é instalado por padrão por Sistemas de Gerenciamento de Conteúdo (CMS) como WordPress. O xmlrpc.php é uma API que permite que conteúdos sejam postados por meio de aplicativos remotos, incluindo o próprio app oficial do WordPress, por exemplo.

Caso o seu WordPress não necessite desta integração, recomendamos desativar o acesso externo à este arquivo.

Para efetuar esta configuração, edite o arquivo .htaccess e inclua a configuração abaixo:

<Files xmlrpc.php>
    order allow,deny
    deny from all
</Files>


Dicas avançadas:

Descubra o que consome mais memória em seu WordPress

Se o seu site está lento, talvez seja boa ideia usar o P3 (Plugin Performance Profiler), um plugin que faz uma análise da performance de todos os plugins permitindo que você veja se o problema está em algum plugin.

Este plugin, criado pela GoDaddy, faz uma análise do carregamento de várias páginas do seu blog, vê quais são os tempos de carregamento de cada plugin, o tempo de carregamento do site sem plugins, mostra o numero de queries feitas a base de dados, entre outros.

Todos os relatórios são guardados para que depois você possa comparar com relatórios mais recentes e pode também enviar os resultados por email (útil se pedir ajuda a alguém para resolver a lentidão).

Link do plugin: https://wordpress.org/plugins/p3-profiler/

Mais detalhes: https://www.wptotal.com/p3-encontre-os-plugins-que-deixam-o-seu-site-lento/


Outro ótimo plugin é o Query Monitor, ele informa qual o plugin que mais consome memória dentro do seu WordPress, além de passar as queries mais lentas do banco.

Link do plugin: https://wordpress.org/plugins/query-monitor/screenshots/

Veja na imagem abaixo o exemplo de como o plugin trabalha dentro do WordPress.


Querymonitor.png


Crie ÍNDICES para otimização de consultas no banco

Criar índices no banco de dados MySql ajudará a otimizar as consultas, deixando assim o site mais rápido.

Acesse o site abaixo para maiores informações:

http://www.linhadecodigo.com.br/artigo/3620/indices-mysql-otimizacao-de-consultas.aspx


Evite consultas desnecessárias no banco

Consultas desnecessárias ao banco de dados influenciam no carregamento do blog, procure modificar seu tema evitando estas consultas. Não há necessidade de realizar uma consulta ao banco de dados para especificar a url presente na logo do blog, procure especificar o endereço completo diretamente no HTML, veja o exemplo:

<a href="<?php bloginfo('url');?>" title="<?php bloginfo('name');?>"><img src="logo.png" alt="Logo"/></a>

No código acima foram feitas duas consultas ao banco de dados, que neste caso são desnecessárias e poderiam ser substituídas apenas pela URL do blog e o nome do blog. Procure revisar o código fonte do seu tema procurando estas consultas desnecessárias e quando possível substitua-as.

Abaixo algumas tags que você poderá substituí-las:

bloginfo('atom_url') // http://seudominio.com/feed
bloginfo('charset') // Charset utilizado(UTF-8, ISO-8859-1 ...)
bloginfo('html_type') // text/html
bloginfo('name') // Nome do Blog
bloginfo('pingback_url') // http://seudominio.com/xmlrpc.php
bloginfo('rss2_url') // http://seudominio.com/feed
bloginfo('stylesheet_url') // http://seudominio.com/wp-content/themes/tema/style.css
bloginfo('template_url') // http://seudominio.com/wp-content/themes/tema
bloginfo('url') // http://seudominio.com
wp_title() // Título do blog


Otimizando wp-config.php

Desabilite a revisão de artigos:

define('WP_POST_REVISIONS', false);

Configurar tempo dos salvamentos automáticos:

define('AUTOSAVE_INTERVAL', 600); // Valor em segundos

Desabilite o WP_DEBUG:

define('WP_DEBUG', false);


Adicionar regras de Otimização com htaccess

O arquivo .htaccess lida com a forma como o seu servidor web processa o seu site. Existem algumas regras que você pode adicionar no final do .htaccess .

Veja o arquivo que irá melhorar o desempenho do seu Wordpress:

  • ETag – diz navegadores quando uma imagem já foi baixado e pode ser obtido a partir do cache do navegador local em vez do servidor
  • Expires headers – semelhante ao ETag mas permite que você defina diferentes tempos de expiração para diferentes tipos de arquivos
  • AddOutputFilterByType DEFLATE – minifies o código-fonte de seus arquivos HTML compilados pela remoção de linhas vazias, pausas e espaços.


########## Begin - ETag Optimization
## This rule will create an ETag for files based only on the modification
## timestamp and their size. 
## Note: It may cause problems on your server and you may need to remove it
FileETag MTime Size
# AddOutputFilterByType is now deprecated by Apache. Use mod_filter in the future.
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
# Enable expiration control
ExpiresActive On
# Default expiration: 1 hour after request
ExpiresDefault "now plus 1 hour"
# CSS and JS expiration: 1 week after request
ExpiresByType text/css "now plus 1 week"
ExpiresByType application/javascript "now plus 1 week"
ExpiresByType application/x-javascript "now plus 1 week"
 
# Image files expiration: 1 month after request
ExpiresByType image/bmp "now plus 1 month"
ExpiresByType image/gif "now plus 1 month"
ExpiresByType image/jpeg "now plus 1 month"
ExpiresByType image/jp2 "now plus 1 month"
ExpiresByType image/pipeg "now plus 1 month"
ExpiresByType image/png "now plus 1 month"
ExpiresByType image/svg+xml "now plus 1 month"
ExpiresByType image/tiff "now plus 1 month"
ExpiresByType image/vnd.microsoft.icon "now plus 1 month"
ExpiresByType image/x-icon "now plus 1 month"
ExpiresByType image/ico "now plus 1 month"
ExpiresByType image/icon "now plus 1 month"
ExpiresByType text/ico "now plus 1 month"
ExpiresByType application/ico "now plus 1 month"
ExpiresByType image/vnd.wap.wbmp "now plus 1 month"
ExpiresByType application/vnd.wap.wbxml "now plus 1 month"
 
ExpiresByType application/smil "now plus 1 month"
# Audio files expiration: 1 month after request
ExpiresByType audio/basic "now plus 1 month"
ExpiresByType audio/mid "now plus 1 month"
ExpiresByType audio/midi "now plus 1 month"
ExpiresByType audio/mpeg "now plus 1 month"
ExpiresByType audio/x-aiff "now plus 1 month"
ExpiresByType audio/x-mpegurl "now plus 1 month"
ExpiresByType audio/x-pn-realaudio "now plus 1 month"
ExpiresByType audio/x-wav "now plus 1 month"
 
# Movie files expiration: 1 month after request
ExpiresByType application/x-shockwave-flash "now plus 1 month"
ExpiresByType x-world/x-vrml "now plus 1 month"
ExpiresByType video/x-msvideo "now plus 1 month"
ExpiresByType video/mpeg "now plus 1 month"
ExpiresByType video/mp4 "now plus 1 month"
ExpiresByType video/quicktime "now plus 1 month"
ExpiresByType video/x-la-asf "now plus 1 month"
ExpiresByType video/x-ms-asf "now plus 1 month"


Outras dicas:

  1. Usar javascripts que puxa URL de outro local pode deixar o carregamento do seu site mais demorado.
    Se for realmente necessário, coloque o código no rodapé da página, ou seja, depois do wp_footer() do Wordpress pois é quando o WP fecha a conexão com o banco de dados.
  2. Evite converter banner em flash em HTML5, mantenha-o em Flash.
  3. Escreva sua publicação em um bloco de notas simples em seu computador, para depois passar este texto para o WordPress.
    Não use o Word e não cole direto o texto em seu WordPress, isso levará códigos desnecessários para sua publicação que pode acerretar em erros na postagem e até deixar seu site mais lento com o tempo.


Conteúdo importante para WordPress: