Este é um guest post escrito por Janio Sarmento da empresa de hospedagem de sites Porto Fácil (mesma empresa que administra o servidor dedicado do CriarSites.com).
Quando se fala de otimizar um site em WordPress, a primeira coisa que vem à mente é a necessidade de um bom plugin de cache. Realmente é algo extremamente importante de se fazer, mas não é tudo.
Utilizando-se um subdomínio para hospedar as imagens do WordPress podemos conseguir uma grande economia de recursos, e consequente valorização do investimento feito em hospedagem.
Em tese, servir imagens deveria ser algo fácil para o servidor web: como são arquivos estáticos, e não scripts que precisam ser interpretados, o processamento é o mínimo do mínimo: só ler o arquivo do HD do servidor e entregar na placa de rede. Em tese.
Acontece que o WordPress funciona de uma maneira um tanto peculiar, para que os permalinks amigáveis sejam possíveis: toda e qualquer requisição que seja feita ao servidor web primeiro é comparada com os arquivos gravados no disco; se o recurso solicitado não existir, então o WP é carregado na memória, para fazer o tratamento daquela URL.
No caso específico das imagens, elas não pesam tanto no servidor, até serem apagadas. Uma imagem que seja solicitada e não exista, fará com que o WordPress inteiro seja carregado na memória do servidor, que diversas consultas ao banco de dados sejam feitas, apenas para mostrar uma página de erro 404.
A situação piora: essa página de erro nem será vista por ninguém, porque ela será “carregada” normalmente em uma tag , causando apenas o aparecimento de um ícone padrão do navegador (isso quando estivermos servindo a página 404 para um visitante e não para um bot).
Agora, multiplique a quantidade de imagens que um dia foram linkadas e indexadas, e que agora podem ser requisitadas, pelo potencial de processamento necessário para carregar o WP. Pense que nenhuma dessas páginas se beneficiará de cache (páginas 404 não são tratadas pelo Super Cache nem por nenhum outro plugin).
Mas calma, isso não é tudo! Imagine que um site de grande visitação tenha feito hotlink para uma imagem no seu site, e você tenha tido de apagá-la dos uploads. Não fará muita diferença (até fará, para pior), porque o WP ainda precisará ser rodado a cada chamada para mostrar o erro 404.
Mas não mude de canal ainda! Há alguns bots que simplesmente “inventam” nomes de arquivos para tentar puxar do servidor (muitas vezes por erros de programação do próprio bot), ocasionando dezenas de erros 404 em imagens que nunca sequer existiram em seu site!
Se você tiver, contudo, um subdomínio para as imagens, que não esteja subordinado diretamenet ao WordPress, esses erros 404 todos passarão a ser tratados pelo próprio servidor HTTP (normalmente o Apache). Em vez de carregar o WP com todos os seus plugins e temas, e todas as suas chamadas ao banco de dados, a página 404 padrão do servidor será muitas vezes mais leve, e praticamente não pesará nada em termos de processamento.
Para obter esse benefício e dar um refresco ao servidor, são apenas dois passos: primeiro, configurar corretamente o subdomínio das imagens; segundo, fazer um redirecionamento no .htaccess para desviar todas as requisições de imagens para o novo subdomínio.
Configurando o subdomínio
O segredo para a fácil configuração do site para beneficiar-se das imagens em um subdomínio, é fazer com que a raiz deste seja exatamente o diretório de uploads do WordPress. Em uma instalação típica, você deve configurar o subdomínio para algo do tipo:
/home/username/public_html/wp-content/uploads
Tenho por critério sempre utilizar i.seudominio.com, para facilitar.
Se não souber ou puder fazer a criação do subdomínio, peça ao suporte do seu provedor de hospedagem para fazer ou indicar como se faz.
Configure o subdomínio e aguarde pela propagação do DNS.
Configurando o redirecionamento
Agora que o subdomínio está criado e o DNS propagado, é hora de configurar o .htaccess para fazer com que todas as requisições de imagens sejam desviadas imediatamente para o novo subdomínio. Para isso, basta acrescentar no início do .htaccess da raiz do domínio:
Redirect 301 /wp-content/uploads http://i.seudominio.com (o “i” representa o subdomínio).
Pronto!
Não há necessidade de mexer na configuração de uploads do WordPress (deixe o caminho dos uploads em wp-content/uploads) porque se por algum motivo esse processo precisar ser desfeito em algum momento do futuro o máximo que se perde é o benefício de desviar as imagens para o subdomínio, mas nem por isso os posts ficarão quebrados ou com as imagens faltando.
Conclusão
Esta é uma das técnicas que empregamos ao otimizar sites na PortoFácil. Porém, aqui levamos a otimização um passo adiante, ao criar o subdomínio diretamente no Nginx, sem passar pelo Apache, promovendo assim uma otimização ainda mais notável. Porém, a técnica apresentada acima é compatível com praticamente qualquer host, o que justifica a sua simplificação.
Este é um guest post escrito por Janio Sarmento da empresa de hospedagem de sites Porto Fácil (mesma empresa que administra o servidor dedicado do CriarSites.com).
Escrito por Convidado
Este artigo foi escrito por um colaborador convidado (guest post).




















{ 2 trackbacks }
{ 10 comentários… leia abaixo ou deixe o seu }
Está é uma dica realmente boua parra que possemos almentar a velocidade de carregamento e etc…
Abraços Celso e Janio
Gostei desta dica. Não conhecia.
meu amigo gostaria que você se concentrasse um pouco mais no Blogger…
no mais, parabéns sou seu seguidor…
grato
abç
rodolfo
Rodolfo,
O problema neste caso é que a plataforma que eu uso diariamente é o WordPress. No Blogger eu apenas faço testes.
Mas o seu comentário pesou na cuca. Vou procurar escrever mais artigos sobre o Blogger. Obrigado.
Abraço!
Gostei da dica. Há outra vantagem que é a de você poder processar as suas imagens offline. Você pode correr um script que comprime as imagens e não precisa andar procurando pelo disco fora
Por outro acho que devia explicar melhor a questão do DNS. Eu tive de ler 2 vezes para entender que você cria um registo novo do tipo images.dominio.com que irá servir as imagens.
muito boa avaliação
Requisições HTTP demais, para formar uma página também é fator de velocidade, correto?
Também é bom controlar a quantidade de requisições HTTP, para não sofrer com a demora no carregamento de uma página. O que pode prejudicar até em termos de SEO.
Mas acho que vale a pena sim, fazer a com que as imagens fiquem em um subdomínio.
bem, não funciona bem se você tiver um site que tem um conteudo atualizado contantemente, porque tem que ficar fazendo copias ou movendo as imagens da wp-content/uploades/ para o seu subdominio. que pena mas se alguem souber um outro modo de fazer me fala =D
Amigos,
Podemos usar esta técnica também para os arquivos do tema e css e js?
Ajudaria na velocidade?
Muito bom esse questionamento. Também tenho essas mesmas dúvidas…