Otimize seu WordPress com um subdomínio para imagens

Criar Site no Webnode

Como Otimizar o WordPress com um Subdomínio para Imagens

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.

Como Otimizar o WordPress com um Subdomínio

Como Otimizar o WordPress com um Subdomínio para Imagens

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).

Gostou do artigo Como Otimizar o WordPress com um Subdomínio para Imagens? Ainda tem dúvidas ou sugestões? Então deixe um comentário abaixo.

Sobre Convidado

Este artigo foi escrito por um colaborador convidado (guest post).
Adicionar a favoritos link permanente.

16 Comments

  1. Está é uma dica realmente boua parra que possemos almentar a velocidade de carregamento e etc…
    Abraços Celso e Janio

  2. 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!

  3. 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.

  4. 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.

  5. 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

  6. Fabinho Almeida

    Amigos,

    Podemos usar esta técnica também para os arquivos do tema e css e js?
    Ajudaria na velocidade?

  7. Cara na boa, uma das melhroes dicas que já utilizamos. Obrigado!

  8. meu site memes mais to no blogger, queria no wordpress
    vo upar todos imagens no blogger para wordpess entende?
    isso sobregacarregaria meu servidor do wordpress?
    pq meu site geralmente tem 400 pessoa online ao mesmo tempo
    aguardo resposta vlw celso

    • Olá Jossuel,
      Não sobrecarregaria não. Só recomendo que utilize um plugin de cache em seu blog para aliviar a sobrecarga do banco de dados.

      Abraço!

  9. Boa tarde,
    antes de mais parabéns pelo post criados até á data, estão muito úteis.
    relativamente a paralelizar, já criei o subdominio e esperei propagação, depois editei .htaccess com codigo providenciado, já copiei inclusivamente a pasta onde estavam alguma imagens /wp-content/uploads copiando para /images que é a root do meu subdominio, mas o site perdeu as imagens… terei feito algo errado? preciso fazer mais alguma coisa?
    Pode ajudar aqui?
    Uma coisa é certa, quando coloco o pingdom, este me diz que Parallelize Downloads” estás activo, entretanto me diz também que os redirects também estão, dando por isso mesmo nota 100 na 1ª e nota 0 na 2ª

    • Você não precisa mover a wp-content/uploads para dentro do subdomínio, como ele mencionou “Não há necessidade de mexer na configuração de uploads do WordPress (deixe o caminho dos uploads em wp-content/uploads)”, só tem que redirecionar o subdomínio para raiz-do-servidor/wp-content/uploads, junto ao domínio principal, a raiz do servidor quando é Plesk o gerenciador fica httpdocs/wp-content/uploads, quando é Cpanel /home/nome do site ou de usuário/public_html/wp-content/uploads. Após isso, configurar o .htaccess…

      • Anderson,
        antes de mais obrigado pelo esclarecimento. No entanto, devido á minha falta de conhecimentos aprofundados na matéria, não consegui decifrar a a sugestão dada.
        É possivel dar um esclaricimento mais detalhado sobre os passos que eu deverei dar?

        Mil obrigados

  10. Ele só esqueceu de dizer que fazendo o redirect todas as imagens ficam dando erro 404, pois o wordpress não faz o trabalho de cachear as imagens no subdominio como se fosse um CDN… por tanto essa dica está incompleta….

    Corrijam isso aí por favor….!!!

    Abraços….

  11. Pessoal, alguem sabe como eu faço para não indexar esse subdominio que eu criei. Eu criei o subdominio (img.meudominio.com) e percebi que está todo indexado no Google, como faço?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *