Agilize seu WordPress tratando erros 404

fecharEste post foi publicado há mais de seis meses, e as informações aqui contidas podem estar desatualizadas ou mesmo não terem mais nenhuma validade. Não nos responsabilizamos por eventuais mal entendidos.

Quem tem blog em WordPress normalmente tem, ou deveria ter, uma grande preocupação em manter o sistema “limpo”, isento de plugins e scripts devoradores de recursos, para que o sistema não se torne lento e inadequado. Embora a utilização de um plugin de cache adequadamente configurado e um servidor web capaz de “segurar o tranco” sejam fundamentais, manter a instalação do WordPress o máximo possível isenta de tranqueiras também é uma praxe capaz de proporcionar boa saúde ao site.

Devido à arquitetura do WordPress, com suas adoráveis URLs amigáveis, o blog também fica responsável por gerenciar as páginas de arquivo não encontrado que eventualmente ocorram no domínio. Tem que ser assim, pois fisicamente as URLs dos posts não existem, mas são interpretadas pelo sistema e corretamente entregues aos visitantes.

As páginas com estado 404 (consulte o Google para documentação sobre o protocolo HTTP) não devem ficar armazenadas em cache, pois o que num momento não estava disponível (em se tratando de páginas ou posts do WordPress) no instante seguinte pode estar devidamente publicado.

O resultado disso é que, a cada vez que um objeto não existente é requisitado por um visitante, o WordPress inteiro precisa ser instanciado no servidor web, apenas para que uma página de erro seja gerada. Caso estejamos falando de uma imagem inserida em um post, esse erro nem será exibido para ninguém, pois o navegador apenas mostrará um ícone de imagem quebrada, nada mais.

Ou seja, arquivos inexistentes espalhados pelo site podem custar muito caro em termos de utilização de recursos de processamento.

Existem diversos plugins para WordPress que possibilitam monitorar erros 404, inclusive alguns que chegam ao cúmulo de enviar um email para o administrador do blog sempre que um 404 aconteça. Nem precisa pensar muito para saber que a ideia é péssima, pois ao mesmo tempo que o 404 já representa processamento desnecessário, o envio de email (também desnecessário) será como um estupro ao processador do webserver.

O nosso plugin favorito para esta tarefa se chama Redirection, e sua principal função é gerenciar redirecionamentos internamente no WordPress. O monitoramento de erros 404 é uma função extra, mas que o plugin cumpre melhor do que muitos outros plugins especializados.

Uma vez instalado e ativado o plugin, o caminho para encontrar o registro dos erros 404 não é exatamente óbvio.

Primeiro, você deve entrar em Ferramentas, Redirection, e clicar na opção Módulos, o que abrirá a página de configuração e de logs do plugin. No módulo “404 errors“, você poderá clicar no número constante na coluna “acessos” e finalmente poderá visualizar o registro dos erros 404.

Para fins didáticos veja o exemplo abaixo, um caso real, de um dos clientes da PortoFácil. Após trocar o tema (layout) do blog, há uma grande quantidade de erros 404 relativos ao template!

Agilize seu WordPress tratando erros 404

São 65 páginas de erro 404, 99% dos erros relacionados a este arquivo específico. Todas essas requisições exigiram do webserver recarregar o blog inteiro na memória para processar um arquivo que nem é visto por ninguém, nem mesmo na forma de ícone de imagem quebrada.

O trabalho de limpeza destes erros é simples: encontre o arquivo que não existe e trate de criar um arquivo com o mesmo nome.

Se estivermos falando de um post ou página que se foi, crie um redirecionamento para outro lugar, e evite que o visitante seja brindado com uma página inútil de erro quando, na verdade, ele poderia estar visualizando um post útil e lucrativo.

Atualização: recomendamos também um hack aplicado ao arquivo 404.php do tema em uso, oferecido pelo blog Cybervida, que vai diminuir muito o uso de processamento do WordPress: Acalmando o WordPress — 404 amigável.

Atualização: evitando o carregamento do PHP

É possível agilizar ainda mais o seu blog se em vez de fazer a alteração no 404.php do tema, fizermos um hack no .htaccess.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(robots\.txt|sitemap(_index)?\.xml(\.gz)?|[a-z0-9_\-]+-sitemap([0-9]+)?\.xml(\.gz)?)
    RewriteCond %{REQUEST_FILENAME} \.(css|htc|js|js2|js3|js4|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC]
    RewriteRule .* - [L]
</IfModule>

O código acima faz parte de uma das otimizações do W3 Total Cache, e age justamente evitando que o WordPress processe arquivos estáticos (scripts e arquivos de mídia, basicamente). A redução do uso do processador pode chegar a 95% — ou mais, mas nossas melhores medições até agora apontaram este percentual.

O único cuidado é que estas regras devem ser colocadas acima das regras do próprio WordPress (sinalizadas no arquivo com #Begin WordPress ).

 

Quero ser cliente da PortoFácil!Contato

Avalie este conteúdo!

Avaliação média: 4.44
Total de Votos: 32

Agilize seu WordPress tratando erros 404

Compartilhe

Publicado por Janio Sarmento – 15 de agosto de 2013