SlideShare uma empresa Scribd logo
Melhorando o desempenho
do seu WordPress
WordCamp São Paulo 2015
Tiago Hillebrandt
● Lead Developer na Copyblogger Media LLC
● Trabalha diariamente em uma estrutura com mais de 12.000 instalações
WordPress
● Colaborador de diversas comunidades de Software Livre, como Ubuntu,
WP-CLI, Bash, dentre outras
Servidor
● Softwares atualizados
● NGINX
● SSL: HTTP/2, cache de sessão e OCSP Stapling
● Compressão gzip
● Redirecionamento www/non-www
● W3 Total Cache
● CDN
● WordPress Cron
Servidor: Softwares atualizados
● Mantenha seus softwares atualizados!
● NGINX:
○ Versão nos repositórios do Ubuntu 12.04 LTS: 1.1.19
○ Versão nos repositórios do Ubuntu 14.04 LTS: 1.4.6
○ Mainline version: 1.9.7
● PHP:
○ Versão nos repositórios do Ubuntu 12.04 LTS: 5.3.10
○ Mainline version: 5.6.15
● MySQL, OpenSSL, etc
Servidor: NGINX
● Servidor web de alta performance (algoritmo de manipulação de conexões
diferenciado)
● Em conjunto com o FastCGI, é uma excelente opção (senão a melhor) para
execução do WordPress
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
NGINX SSL: Módulo SPDY HTTP/2
● Suporte adicionado ao NGINX 1.9.5
● Aplicável somente em sites com certificado SSL
server {
listen 443 ssl http2;
NGINX SSL: Vantagens do HTTP/2
● Protocolo binário (mais compacto e eficiente)
● Conexão multiplexada por domínio
● Cabeçalhos compactados com o formato HPACK (mais efetivo que o gzip)
● Esquema que ajuda os navegadores a priorizarem os "arquivos mais
necessários" (mais efetivo do que o esquema usado no SPDY)
Fonte: NGINX Inc
NGINX SSL: HTTP/2 Inside
Fonte: NGINX Inc
HTTP 1.x vs HTTP/2
Fonte: NGINX Inc
NGINX SSL: Cache de Sessão
● Faz o cache dos parâmetros da sessão SSL para reusá-los, evitando assim
o handshake a cada requisição
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
● Cada megabyte pode armazenar até 4.000 sessões, portanto sites com
muito tráfego devem utilizar um valor maior
NGINX SSL: OCSP Stapling
● Melhora a performance em conexões SSL (reduz aproximadamente 500ms)
● Consiste em evitar a verificação do status do certificado (OCSP) junto ao
servidor da Autoridade Certificadora (CA)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/ca-certs.pem;
● Adicionar somente se os intermediários não estiverem combinados dentro do
certificado carregado na diretiva ssl_certificate
NGINX SSL: OCSP Stapling
● Após implementar, não esqueça de testar:
$ echo | openssl s_client -connect wordpress.org:443 -status 2>
/dev/null | grep -A17 'OCSP response'
OCSP response:
======================================
OCSP Response Data:
OCSP Response Status: successful (0x0)
...
NGINX: Compressão gzip
● Módulo gzip do NGINX
● Compacta as respostas do servidor, resultando na redução de 50% ou
mais no tamanho da resposta
● Após habilitar, você pode utilizar o GTmetrix para confirmar se a
compressão gzip está funcionando adequadamente: https://gtmetrix.
com/
● Se seu site já está rodando via HTTP/2, não utilize o gzip, uma vez que o
HPACK é mais efetivo
NGINX: Compressão gzip
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_comp_level 3;
gzip_min_length 1000;
gzip_buffers 32 4k; # ( $ getconf PAGESIZE )
gzip_types text/plain text/css text/javascript;
NGINX: Redirecionamento www/non-www
● Ao criar qualquer site, é importante definir se ele utilizará ou não o www
como prefixo
● Após essa definição, devemos implementar algumas regras no servidor
web para aprimorar a performance do site
● Muito importante para SEO, uma vez que evita que URLs diferentes sejam
indexadas para o mesmo conteúdo
NGINX: Redirecionamento www/non-www
● Exemplo de redirecionamento que poderia ser otimizado:
NGINX: Redirecionamento www/non-www
# força todos as requisições non-www para www
if ($host !~ "^www.") { return 301 $scheme://www.$host$request_uri; }
# força todas as requisições www para non-www
if ($host ~ "^www.") { return 301 $scheme://dominio.com$request_uri; }
● Você pode substituir a variável $scheme por um esquema fixo (http ou https) se
desejar
NGINX: Redirecionamento www/non-www
● Para evitar redirect loops, não esqueça de também atualizar as opções siteurl
e a home do seu WordPress
● Via WP-CLI:
$ wp option update siteurl "https://www.dominio.com"
$ wp option update home "https://www.dominio.com"
NGINX: Redirecionamentos
E lembre-se:
● Evite plugins de redirecionamento
● Adicione seus redirects diretamente no servidor web
Servidor: W3 Total Cache
● Excelente plugin de cache, disponível no repositório do WordPress
gratuitamente
● Hoje o W3TC é usado em mais de um milhão de instalações WordPress
● Métodos de caching recomendados:
○ Page caching (disk, opcode ou memcached)
○ Browser caching
○ Object caching
Servidor: W3TC Page Cache
● Cache baseado em URLs
● No primeiro acesso a determinada URL, um arquivo estático com o
conteúdo é criado dentro do cache
● Os próximos acessos para mesma URL são carregados do cache,
reduzindo o uso de recursos do PHP e MySQL
● Cache pode ser armazenado em disco ou na memória
Servidor: W3TC Page Cache
● Os métodos OpCode e Memcached tendem a ser mais rápidos, pois o
cache carregará diretamente da memória. Portanto, são uma boa opção
se você dispor de bastante memória para dedicar à eles
● Já os métodos Disk, apesar de serem um pouco mais lentos, podem se
tornar mais viáveis em servidores compartilhados ou VPSs com pouca
memória dispon ́vel, ou ainda caso queira poupar memória para processar
outras informações
● Se ainda assim está na dúvida de qual escolher, você pode testar a
performance do seu site método-por-método
Servidor: W3TC Browser Cache
● É o cache presente nos navegadores web
● No W3TC é poss ́vel determinar, por exemplo, quanto tempo as imagens e
demais arquivos estáticos (JS, CSS, HTML, dentre outros) serão
cacheados no navegador do usuário
● Permite a compressão dos cabeçalhos HTTP via gzip
Servidor: W3TC Object Cache
● O WordPress possui uma classe de Object Cache, no entanto ela não é
persistente
● Em outras palavras, a informação carregada é mantida na memória
somente até o fim da requisição atual
Servidor: W3TC Object Cache
● No W3TC, o Object Cache armazena uma cópia do objeto, seus atributos e
valores em formato JSON
● Além disso, a informação passa a ser mantida de forma permanente, pois
não é perdida ao término da requisição
● É poss ́vel determinar um intervalo para limpeza do cache, bem como uma
lista de objetos que não devem ser cacheados
Servidor: CDN
● Indicado para quem recebe tráfego de diversas localizações
(geograficamente distribu ́do)
● Reduz o uso de largura de banda do servidor onde seu site está
hospedado
● Serviços de CDN recomendados:
○ Amazon CloudFront
■ 2 datacenters no Brasil, custo variável por mês (on-demand)
○ CloudFlare
■ 1 datacenter no Brasil, custo fixo por mês
WordPress Scheduled Events
● São ações programadas para serem executadas automaticamente pelo
WordPress Cron
● Exemplo:
○ Posts agendados
○ Exclusão de transients expirados da wp_options
○ Verificação de updates do WordPress core, temas e plugins
WordPress Cron
● Por padrão ele rodará apenas se sua página tiver acessos, portanto um
método não muito confiável
● Carrega em todos os acessos ao site, e caso um evento agendado trave o
acesso pode ficar consideravelmente lento
● Pode ser implementado no crontab do seu servidor, um método muito
confiável
WordPress Cron
● Adicione ao seu wp-config.php:
define( 'DISABLE_WP_CRON', true );
● Adicione ao crontab:
*/10 * * * * www-data wget -o /dev/null -O /dev/null http://dominio.com/wp-cron.php
Desenvolvimento
● WordPress Transients API
● WordPress Options API
● Pingdom Speed Test
Dev: Transients API
● Armazenamento temporário de dados (cache)
● Normalmente usados para fazer cache de resultados de funções PHP e
queries MySQL
● Os transients possuem tempo de expiração, e são carregados
automaticamente pelo WordPress a cada requisição
● Problema comum entre plugins e temas mal codificados: criação de um
número excessivo de transients, ou ainda armazenamento de valores
muito grandes dentro deles
Dev: Transients API
Dever de casa: limpar os transients em seus sites WordPress
Comando SQL:
DELETE FROM wp_options
WHERE option_name REGEXP '^(_site)?_transient';
Ou via WP-CLI:
$ wp transient delete-all
Dev: Options API
● As options são utilizadas para armazenamento permanente de dados
● Quando você cria uma option, você pode definir se ela será carregada
automaticamente ou não por meio do campo autoload
● As autoloaded options são carregadas automaticamente pelo WordPress a
cada requisição
● Temos um problema comum entre plugins e temas mal codificados:
criação de um número excessivo de autoloaded options, ou ainda
armazenamento de valores muito grandes dentro delas
Dev: Options API
● Detectar a quantidade e o tamanho total das autoloaded options:
SELECT COUNT(*) AS total, ROUND(SUM(LENGTH(option_value)) / POWER
(1024, 2), 2) AS tamanho FROM wp_options WHERE autoload='yes';
Dev: Options API - Query 1
● Detectar as options com maior tamanho:
SELECT option_name, ROUND(LENGTH
(option_value) / POWER(1024, 2), 2) AS
tamanho FROM wp_options WHERE
autoload='yes' ORDER BY tamanho DESC
LIMIT 0, 15;
Dev: Options API - Query 2
● Detectar as options com prefixos similares:
SELECT SUBSTRING(option_name, 1, 16) AS prefixo,
COUNT(*) AS total FROM wp_options GROUP BY SUBSTRING
(option_name, 1, 8) ORDER BY total DESC LIMIT 0, 15;
Pingdom Speed Test
● Detecta o tempo de resolução do DNS, Time to First Byte (TTFB),
carregamento e tamanho de recursos da página
● http://tools.pingdom.com/fpt/
WP-Healthcheck
● Plugin em desenvolvimento, com previsão de lançamento em dezembro
● Versão inicial contará com suporte a três idiomas, incluindo Português do
Brasil
Dúvidas?
Twitter: @tiagoscd
Website: http://tiagohillebrandt.eti.br

Mais conteúdo relacionado

Mais procurados

Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPress
Breno Alves
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
WordCamp Floripa
 
Walker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWalker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicação
WordCamp Floripa
 
Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e Bower
Mateus Padua
 
Ionic workshop
Ionic workshopIonic workshop
Ionic workshop
Alvaro Viebrantz
 
Os camaradas Grunt e Bower
Os camaradas Grunt e BowerOs camaradas Grunt e Bower
Os camaradas Grunt e Bower
A2 Comunicação
 
PHP com Docker
PHP com DockerPHP com Docker
PHP com Docker
Jefferson Souza
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php
Michael Douglas
 
WP Composer
WP ComposerWP Composer
WP Composer
Eduardo Pittol
 
Mean Stack
Mean StackMean Stack
Mean Stack
Bruno Catão
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Renato Groff
 
Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMP
Thiago Paes
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Alamo Saravali
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic Framework
Emerson Thompson
 
PHP Conference 2016
PHP Conference 2016PHP Conference 2016
PHP Conference 2016
Edison Costa
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Renato Groff
 
Webpack
Webpack Webpack
Webpack
eurosigdoc acm
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Bruno Rocha
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
Marcio Trindade
 
Apresentação wild fly-semrevisao
Apresentação wild fly-semrevisaoApresentação wild fly-semrevisao
Apresentação wild fly-semrevisao
Rogerio Fontes
 

Mais procurados (20)

Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPress
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
 
Walker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWalker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicação
 
Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e Bower
 
Ionic workshop
Ionic workshopIonic workshop
Ionic workshop
 
Os camaradas Grunt e Bower
Os camaradas Grunt e BowerOs camaradas Grunt e Bower
Os camaradas Grunt e Bower
 
PHP com Docker
PHP com DockerPHP com Docker
PHP com Docker
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
 
Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMP
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic Framework
 
PHP Conference 2016
PHP Conference 2016PHP Conference 2016
PHP Conference 2016
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
Webpack
Webpack Webpack
Webpack
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Apresentação wild fly-semrevisao
Apresentação wild fly-semrevisaoApresentação wild fly-semrevisao
Apresentação wild fly-semrevisao
 

Destaque

Projetando para WordPress
Projetando para WordPressProjetando para WordPress
Projetando para WordPress
Haste Design
 
Como manter o WordPress seguro
Como manter o WordPress seguroComo manter o WordPress seguro
Como manter o WordPress seguro
Rudá Almeida
 
Conhecendo o Wordpress
Conhecendo o WordpressConhecendo o Wordpress
Conhecendo o Wordpress
Jose Augusto Carvalho
 
WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
WP WEEKEND 2015 - O word press é seguro. Inseguro é você. WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
Rodrigo Toshiaki Horie
 
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
As Zone
 
Curso online wordpress aula 1
Curso online wordpress aula 1Curso online wordpress aula 1
Curso online wordpress aula 1
Vasco Marques
 
WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015
Nauweb
 
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
Design para WordPress-  Anyssa Ferreira - WordCamp BH 2015Design para WordPress-  Anyssa Ferreira - WordCamp BH 2015
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
Anyssa Ferreira
 
Libres en cristo 3
Libres en cristo 3Libres en cristo 3
Libres en cristo 3
Valeria Otarola
 
KFIE Innovator Bios
KFIE Innovator BiosKFIE Innovator Bios
KFIE Innovator Bios
Giselle Aris
 
Database automated build and test - SQL In The City Cambridge
Database automated build and test - SQL In The City CambridgeDatabase automated build and test - SQL In The City Cambridge
Database automated build and test - SQL In The City Cambridge
Red Gate Software
 
Del embarazo al nacimiento
Del embarazo al nacimientoDel embarazo al nacimiento
Del embarazo al nacimiento
sherazade0884
 
Social Media for Artists
Social Media for ArtistsSocial Media for Artists
Social Media for Artists
SOMArts
 
Cultura de Métricas para SEO (UaiSEO)
Cultura de Métricas para SEO (UaiSEO)Cultura de Métricas para SEO (UaiSEO)
Cultura de Métricas para SEO (UaiSEO)
Leonardo Naressi
 
Gost r standards 2324
Gost r standards 2324Gost r standards 2324
Gost r standards 2324
Quinn Kane
 
Xo Overview Jason 7.21.11
Xo Overview Jason 7.21.11Xo Overview Jason 7.21.11
Xo Overview Jason 7.21.11
jjmickelson
 
Silvana la bestia
Silvana la bestiaSilvana la bestia
Silvana la bestia
Sivaeli-54
 
Communication Online
Communication OnlineCommunication Online
Communication Online
kraemera
 
The Comeback of the Watch
The Comeback of the WatchThe Comeback of the Watch
The Comeback of the Watch
Nick Decrock
 

Destaque (20)

Projetando para WordPress
Projetando para WordPressProjetando para WordPress
Projetando para WordPress
 
Como manter o WordPress seguro
Como manter o WordPress seguroComo manter o WordPress seguro
Como manter o WordPress seguro
 
Conhecendo o Wordpress
Conhecendo o WordpressConhecendo o Wordpress
Conhecendo o Wordpress
 
WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
WP WEEKEND 2015 - O word press é seguro. Inseguro é você. WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
 
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
 
Curso online wordpress aula 1
Curso online wordpress aula 1Curso online wordpress aula 1
Curso online wordpress aula 1
 
WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015
 
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
Design para WordPress-  Anyssa Ferreira - WordCamp BH 2015Design para WordPress-  Anyssa Ferreira - WordCamp BH 2015
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
 
Libres en cristo 3
Libres en cristo 3Libres en cristo 3
Libres en cristo 3
 
KFIE Innovator Bios
KFIE Innovator BiosKFIE Innovator Bios
KFIE Innovator Bios
 
Database automated build and test - SQL In The City Cambridge
Database automated build and test - SQL In The City CambridgeDatabase automated build and test - SQL In The City Cambridge
Database automated build and test - SQL In The City Cambridge
 
Del embarazo al nacimiento
Del embarazo al nacimientoDel embarazo al nacimiento
Del embarazo al nacimiento
 
Social Media for Artists
Social Media for ArtistsSocial Media for Artists
Social Media for Artists
 
Neem je mee
Neem je meeNeem je mee
Neem je mee
 
Cultura de Métricas para SEO (UaiSEO)
Cultura de Métricas para SEO (UaiSEO)Cultura de Métricas para SEO (UaiSEO)
Cultura de Métricas para SEO (UaiSEO)
 
Gost r standards 2324
Gost r standards 2324Gost r standards 2324
Gost r standards 2324
 
Xo Overview Jason 7.21.11
Xo Overview Jason 7.21.11Xo Overview Jason 7.21.11
Xo Overview Jason 7.21.11
 
Silvana la bestia
Silvana la bestiaSilvana la bestia
Silvana la bestia
 
Communication Online
Communication OnlineCommunication Online
Communication Online
 
The Comeback of the Watch
The Comeback of the WatchThe Comeback of the Watch
The Comeback of the Watch
 

Semelhante a Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]

Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Tiago Hillebrandt
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
Julian Fernandes
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
Douglas V. Pasqua
 
Drupal Camp campinas 2016 - Funcionamento básico das camadas de cache
Drupal Camp campinas 2016 - Funcionamento básico das camadas de cacheDrupal Camp campinas 2016 - Funcionamento básico das camadas de cache
Drupal Camp campinas 2016 - Funcionamento básico das camadas de cache
Leonardo Torati
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
Marcelo Dieder
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
elliando dias
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
Evandro Silvestre
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
Felipe Klerk Signorini
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
Dell Technologies
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
Felipe Ribeiro
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
Fernando Ike
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
Dell Technologies
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
ernaniaz
 
REST - The right way
REST - The right wayREST - The right way
REST - The right way
santosluis87
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
Fabiano Weimar
 
19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx
Roberto Aragy
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
Carlos Santos
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
Edgar Dantas
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
Saveincloud
 
TDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud ComputingTDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud Computing
Roosevelt Nascimento Junior
 

Semelhante a Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015] (20)

Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Drupal Camp campinas 2016 - Funcionamento básico das camadas de cache
Drupal Camp campinas 2016 - Funcionamento básico das camadas de cacheDrupal Camp campinas 2016 - Funcionamento básico das camadas de cache
Drupal Camp campinas 2016 - Funcionamento básico das camadas de cache
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
 
REST - The right way
REST - The right wayREST - The right way
REST - The right way
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
 
19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
 
TDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud ComputingTDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud Computing
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
2m Assessoria
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (10)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]

  • 1. Melhorando o desempenho do seu WordPress WordCamp São Paulo 2015
  • 2. Tiago Hillebrandt ● Lead Developer na Copyblogger Media LLC ● Trabalha diariamente em uma estrutura com mais de 12.000 instalações WordPress ● Colaborador de diversas comunidades de Software Livre, como Ubuntu, WP-CLI, Bash, dentre outras
  • 3. Servidor ● Softwares atualizados ● NGINX ● SSL: HTTP/2, cache de sessão e OCSP Stapling ● Compressão gzip ● Redirecionamento www/non-www ● W3 Total Cache ● CDN ● WordPress Cron
  • 4. Servidor: Softwares atualizados ● Mantenha seus softwares atualizados! ● NGINX: ○ Versão nos repositórios do Ubuntu 12.04 LTS: 1.1.19 ○ Versão nos repositórios do Ubuntu 14.04 LTS: 1.4.6 ○ Mainline version: 1.9.7 ● PHP: ○ Versão nos repositórios do Ubuntu 12.04 LTS: 5.3.10 ○ Mainline version: 5.6.15 ● MySQL, OpenSSL, etc
  • 5. Servidor: NGINX ● Servidor web de alta performance (algoritmo de manipulação de conexões diferenciado) ● Em conjunto com o FastCGI, é uma excelente opção (senão a melhor) para execução do WordPress location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; }
  • 6. NGINX SSL: Módulo SPDY HTTP/2 ● Suporte adicionado ao NGINX 1.9.5 ● Aplicável somente em sites com certificado SSL server { listen 443 ssl http2;
  • 7. NGINX SSL: Vantagens do HTTP/2 ● Protocolo binário (mais compacto e eficiente) ● Conexão multiplexada por domínio ● Cabeçalhos compactados com o formato HPACK (mais efetivo que o gzip) ● Esquema que ajuda os navegadores a priorizarem os "arquivos mais necessários" (mais efetivo do que o esquema usado no SPDY) Fonte: NGINX Inc
  • 8. NGINX SSL: HTTP/2 Inside Fonte: NGINX Inc
  • 9. HTTP 1.x vs HTTP/2 Fonte: NGINX Inc
  • 10. NGINX SSL: Cache de Sessão ● Faz o cache dos parâmetros da sessão SSL para reusá-los, evitando assim o handshake a cada requisição ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ● Cada megabyte pode armazenar até 4.000 sessões, portanto sites com muito tráfego devem utilizar um valor maior
  • 11. NGINX SSL: OCSP Stapling ● Melhora a performance em conexões SSL (reduz aproximadamente 500ms) ● Consiste em evitar a verificação do status do certificado (OCSP) junto ao servidor da Autoridade Certificadora (CA) ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/ca-certs.pem; ● Adicionar somente se os intermediários não estiverem combinados dentro do certificado carregado na diretiva ssl_certificate
  • 12. NGINX SSL: OCSP Stapling ● Após implementar, não esqueça de testar: $ echo | openssl s_client -connect wordpress.org:443 -status 2> /dev/null | grep -A17 'OCSP response' OCSP response: ====================================== OCSP Response Data: OCSP Response Status: successful (0x0) ...
  • 13. NGINX: Compressão gzip ● Módulo gzip do NGINX ● Compacta as respostas do servidor, resultando na redução de 50% ou mais no tamanho da resposta ● Após habilitar, você pode utilizar o GTmetrix para confirmar se a compressão gzip está funcionando adequadamente: https://gtmetrix. com/ ● Se seu site já está rodando via HTTP/2, não utilize o gzip, uma vez que o HPACK é mais efetivo
  • 14. NGINX: Compressão gzip gzip on; gzip_disable "msie6"; gzip_vary on; gzip_comp_level 3; gzip_min_length 1000; gzip_buffers 32 4k; # ( $ getconf PAGESIZE ) gzip_types text/plain text/css text/javascript;
  • 15. NGINX: Redirecionamento www/non-www ● Ao criar qualquer site, é importante definir se ele utilizará ou não o www como prefixo ● Após essa definição, devemos implementar algumas regras no servidor web para aprimorar a performance do site ● Muito importante para SEO, uma vez que evita que URLs diferentes sejam indexadas para o mesmo conteúdo
  • 16. NGINX: Redirecionamento www/non-www ● Exemplo de redirecionamento que poderia ser otimizado:
  • 17. NGINX: Redirecionamento www/non-www # força todos as requisições non-www para www if ($host !~ "^www.") { return 301 $scheme://www.$host$request_uri; } # força todas as requisições www para non-www if ($host ~ "^www.") { return 301 $scheme://dominio.com$request_uri; } ● Você pode substituir a variável $scheme por um esquema fixo (http ou https) se desejar
  • 18. NGINX: Redirecionamento www/non-www ● Para evitar redirect loops, não esqueça de também atualizar as opções siteurl e a home do seu WordPress ● Via WP-CLI: $ wp option update siteurl "https://www.dominio.com" $ wp option update home "https://www.dominio.com"
  • 19. NGINX: Redirecionamentos E lembre-se: ● Evite plugins de redirecionamento ● Adicione seus redirects diretamente no servidor web
  • 20. Servidor: W3 Total Cache ● Excelente plugin de cache, disponível no repositório do WordPress gratuitamente ● Hoje o W3TC é usado em mais de um milhão de instalações WordPress ● Métodos de caching recomendados: ○ Page caching (disk, opcode ou memcached) ○ Browser caching ○ Object caching
  • 21. Servidor: W3TC Page Cache ● Cache baseado em URLs ● No primeiro acesso a determinada URL, um arquivo estático com o conteúdo é criado dentro do cache ● Os próximos acessos para mesma URL são carregados do cache, reduzindo o uso de recursos do PHP e MySQL ● Cache pode ser armazenado em disco ou na memória
  • 22. Servidor: W3TC Page Cache ● Os métodos OpCode e Memcached tendem a ser mais rápidos, pois o cache carregará diretamente da memória. Portanto, são uma boa opção se você dispor de bastante memória para dedicar à eles ● Já os métodos Disk, apesar de serem um pouco mais lentos, podem se tornar mais viáveis em servidores compartilhados ou VPSs com pouca memória dispon ́vel, ou ainda caso queira poupar memória para processar outras informações ● Se ainda assim está na dúvida de qual escolher, você pode testar a performance do seu site método-por-método
  • 23. Servidor: W3TC Browser Cache ● É o cache presente nos navegadores web ● No W3TC é poss ́vel determinar, por exemplo, quanto tempo as imagens e demais arquivos estáticos (JS, CSS, HTML, dentre outros) serão cacheados no navegador do usuário ● Permite a compressão dos cabeçalhos HTTP via gzip
  • 24. Servidor: W3TC Object Cache ● O WordPress possui uma classe de Object Cache, no entanto ela não é persistente ● Em outras palavras, a informação carregada é mantida na memória somente até o fim da requisição atual
  • 25. Servidor: W3TC Object Cache ● No W3TC, o Object Cache armazena uma cópia do objeto, seus atributos e valores em formato JSON ● Além disso, a informação passa a ser mantida de forma permanente, pois não é perdida ao término da requisição ● É poss ́vel determinar um intervalo para limpeza do cache, bem como uma lista de objetos que não devem ser cacheados
  • 26. Servidor: CDN ● Indicado para quem recebe tráfego de diversas localizações (geograficamente distribu ́do) ● Reduz o uso de largura de banda do servidor onde seu site está hospedado ● Serviços de CDN recomendados: ○ Amazon CloudFront ■ 2 datacenters no Brasil, custo variável por mês (on-demand) ○ CloudFlare ■ 1 datacenter no Brasil, custo fixo por mês
  • 27. WordPress Scheduled Events ● São ações programadas para serem executadas automaticamente pelo WordPress Cron ● Exemplo: ○ Posts agendados ○ Exclusão de transients expirados da wp_options ○ Verificação de updates do WordPress core, temas e plugins
  • 28. WordPress Cron ● Por padrão ele rodará apenas se sua página tiver acessos, portanto um método não muito confiável ● Carrega em todos os acessos ao site, e caso um evento agendado trave o acesso pode ficar consideravelmente lento ● Pode ser implementado no crontab do seu servidor, um método muito confiável
  • 29. WordPress Cron ● Adicione ao seu wp-config.php: define( 'DISABLE_WP_CRON', true ); ● Adicione ao crontab: */10 * * * * www-data wget -o /dev/null -O /dev/null http://dominio.com/wp-cron.php
  • 30. Desenvolvimento ● WordPress Transients API ● WordPress Options API ● Pingdom Speed Test
  • 31. Dev: Transients API ● Armazenamento temporário de dados (cache) ● Normalmente usados para fazer cache de resultados de funções PHP e queries MySQL ● Os transients possuem tempo de expiração, e são carregados automaticamente pelo WordPress a cada requisição ● Problema comum entre plugins e temas mal codificados: criação de um número excessivo de transients, ou ainda armazenamento de valores muito grandes dentro deles
  • 32. Dev: Transients API Dever de casa: limpar os transients em seus sites WordPress Comando SQL: DELETE FROM wp_options WHERE option_name REGEXP '^(_site)?_transient'; Ou via WP-CLI: $ wp transient delete-all
  • 33. Dev: Options API ● As options são utilizadas para armazenamento permanente de dados ● Quando você cria uma option, você pode definir se ela será carregada automaticamente ou não por meio do campo autoload ● As autoloaded options são carregadas automaticamente pelo WordPress a cada requisição ● Temos um problema comum entre plugins e temas mal codificados: criação de um número excessivo de autoloaded options, ou ainda armazenamento de valores muito grandes dentro delas
  • 34. Dev: Options API ● Detectar a quantidade e o tamanho total das autoloaded options: SELECT COUNT(*) AS total, ROUND(SUM(LENGTH(option_value)) / POWER (1024, 2), 2) AS tamanho FROM wp_options WHERE autoload='yes';
  • 35. Dev: Options API - Query 1 ● Detectar as options com maior tamanho: SELECT option_name, ROUND(LENGTH (option_value) / POWER(1024, 2), 2) AS tamanho FROM wp_options WHERE autoload='yes' ORDER BY tamanho DESC LIMIT 0, 15;
  • 36. Dev: Options API - Query 2 ● Detectar as options com prefixos similares: SELECT SUBSTRING(option_name, 1, 16) AS prefixo, COUNT(*) AS total FROM wp_options GROUP BY SUBSTRING (option_name, 1, 8) ORDER BY total DESC LIMIT 0, 15;
  • 37. Pingdom Speed Test ● Detecta o tempo de resolução do DNS, Time to First Byte (TTFB), carregamento e tamanho de recursos da página ● http://tools.pingdom.com/fpt/
  • 38. WP-Healthcheck ● Plugin em desenvolvimento, com previsão de lançamento em dezembro ● Versão inicial contará com suporte a três idiomas, incluindo Português do Brasil