Tenho certeza de que muitos de nós estiveram lá: os tempos de carregamento em seu site são terríveis, talvez você esteja com alguns erros de tempo limite, o administrador está lento e a experiência geral de usar seu site WordPress está em declínio.Rapidamente.
Infelizmente, pequenos aborrecimentos podem se acumular rapidamente e se transformar em questões financeiras. Um site lento pode afetar diretamente conversões e vendas no front-end e levar à frustração e ao estresse no lado gerencial das coisas.
Neste artigo, eu quero dar uma olhada em por que essas desacelerações acontecem e o que você pode fazer para impedi-las. Como resultado, você deve gerenciar melhor seu site para garantir que ele seja executado o mais eficientemente possível o maior tempo possível.
Por que os sites tornam-se lentos e inutilizáveis
Ao longo deste artigo, falarei bastante sobre “sites lentos”. Quero deixar claro que estou falando de lentidão como resultado de algum tipo de falha, que pode ser resolvido, ao invés de esforços conscienciosos de acelerar sites, otimizando-os.
Um exemplo tornará isso claro: excluir um plugin, que carrega 50 arquivos de Javascript no cabeçalho do seu site, ficaria sob o conteúdo deste artigo. Mover as imagens para um CDN para tempos de carregamento mais rápidos não.
Então, o que pode fazer com que um site se torne inutilizável? Na minha experiência, existem três questões básicas que precisamos investigar. Eu abordarei as causas primeiro e, em seguida, fornecerá algumas soluções acionáveis na próxima seção:
- Sobrecarga do plugin
- Código Sloppy
- Processos defeituosos
1. Sobrecarga do plugin
Ter muitos plugins pode ser a maldição de um site de outra forma perfeito. Cada plugin que você usa pode adicionar seus próprios scripts e estilos, aumentando consideravelmente os pedidos feitos por carga de página. O número de solicitações feitas é extremamente importante porque dois pedidos para baixar arquivos de 100kb levará muito menos tempo que 20 pedidos para baixar arquivos de 5kb.
Você também pode acabar com a funcionalidade duplicada. Se você usa os códigos rápidos do Easy Foundation você obtém muitos códigos curtos para usar os elementos da Fundação. No entanto, você já pode ter shortcodes instalados para grids e alertas. Estes não manipulam muito tempo e memória do processador, mas cada plugin ainda está carregado e inicializado se ele é usado ou não.
… Agora você está procurando 800 mil pedidos por dia. Isso é 9,3 pedidos um segundo ou dois pedidos no tempo que leva para você piscar.
A idéia aqui é que pequenas coisas podem se somar muito rapidamente se o seu site tiver uma quantidade generosa de visitantes. Se você tiver o número mínimo absoluto de plugins, o seu site pode fazer 20 pedidos por carga de página. Se você tiver 100 visitantes por dia, serão cumpridos 2.000 pedidos.
Se um de seus artigos for compartilhado em mídias sociais, você pode ter um dia com 20 mil visitantes. De repente, você recebe 400.000 pedidos para o seu servidor, o que ainda pode estar bem, mas imagine se você tem toneladas de plugins, que todos precisam ser carregados, e cada um faz outros 20 pedidos. Agora você está procurando 800 mil pedidos por dia. Isso é 9,3 pedidos um segundo ou dois pedidos no tempo que leva para você piscar.
2. Código Sloppy
Se descobrirmos a porcentagem de diminuição de velocidade causada por cada uma das questões que incluímos, o código desleixado ganharia confortavelmente. Enquanto a sobrecarga do plugin é um problema, a maioria das reduções de velocidade experimentadas pela instalação de lotes de plugins pode ser reduzida ao código desleixado.
Vamos colocar o número de pedidos em perspectiva: se você otimizar o seu site, você poderia pressionar o tempo de carregamento para 600ms em um servidor capaz. Se você tem muitos pedidos, isso pode ser aumentado até 200ms, o que é um enorme 33% do tempo de carregamento da base. No entanto, o tempo de carregamento da base é tão pequeno que o número de pedidos não é um problema tão grande.
Se você tiver um tempo de carregamento de base de 8 segundos e você aplicar a mesma lógica, você está olhando para um período de carregamento adicional de 2.64 segundos, o que é enorme. Na vida real, a relação não é tão drástica, mas a essência dela se mantém bem.
O fato de seus plugins carregar recursos não é o problema, o problema é quando eles fazem isso desnecessariamente ou desperdiçando. Os plugins devem concatenar scripts e estilos, sempre que possível, para reduzir o número de solicitações.
Os plugins também tendem a colocar pressão desnecessária no banco de dados. Isto é especialmente verdadeiro para produtos que recuperam postagens com base em critérios complexos ou adicionam algum tipo de estatísticas ao seu site. Todas essas tarefas podem ser feitas de forma eficiente, mas os autores de plugins tendem a fazer as coisas rapidamente em vez de serem completamente diferentes.
Todos os problemas acima aumentam exponencialmente quando se fala sobre temas. Uma vez que os temas fornecem a funcionalidade avançada do seu site, você pode ter a necessidade de modificar as coisas regularmente. Alterações regulares ao código inevitavelmente causam a queda de qualquer site, a menos que sejam gerenciadas de perto, vamos ver isso em breve.
Múltiplos desenvolvedores com vários métodos de trabalho escreverão código de busca totalmente diferente, muddying o tema, tornando impossível para um desenvolvedor dar sentido a ele como um todo.
A razão pela qual causa problemas é que o código se tornará ilegível. Várias funções podem existir para a mesma funcionalidade, as novas funções podem não ser removidas por novos desenvolvedores, pois podem não saber o que são. Múltiplos desenvolvedores com vários métodos de trabalho escreverão código de busca totalmente diferente, muddying o tema, tornando impossível para um desenvolvedor dar sentido a ele como um todo.
Isso resulta em patchwork de código em vez de desenvolvimento adequado. Ao substituir a seção de compartilhamento em suas postagens, a maneira apropriada de fazê-lo seria identificar todas as funções que contribuem para isso, removê-los e implementar a nova funcionalidade. Se o código for uma bagunça, é mais fácil comentar o gancho que o exibe ou remover as funções no modelo. Isso deixará todas as outras funções que contribuem para contar o número de compartilhamentos, descobrir o texto do Twitter, etc. intactos e na base do código, mesmo que não sejam usados de todo agora.
3. Processos defeituosos ou ausentes
Deixe-me descrever uma situação que pode parecer familiar: você tem um novo site baseado em um tema comercial, gratuito ou personalizado. Tudo funciona perfeitamente, mas você gostaria de botões compartilhados personalizados.
Um desenvolvedor vem e implementa isso para você, modificando o arquivo de funções, adicionando algumas imagens e modificando o modelo de postagem único. Ele funciona perfeitamente, mas agora você gostaria que os usuários pudessem fazer login no Facebook. Muito fácil, há um plugin para isso!
Alguns meses depois, você decide mudar o logotipo e deseja apresentar um elemento-chave dele nos botões de compartilhamento. Em outro desenvolvedor vem. Ele remove o código do modelo de postagem único e adiciona o seu próprio, usando SVG extravagante para desenhar os ícones de compartilhamento.
Mesmo no decorrer destas três mudanças, vários problemas podem ser introduzidos: o botão de compartilhamento e o login podem exigir o carregamento de JS externos do Facebook e, talvez, adicionar tags do Facebook à página. Se for feito com pressa, todos os três recursos podem adicioná-lo de forma independente, potencialmente carregando o script três vezes. Na melhor das hipóteses isso irá abrandar o site, na pior das hipóteses, pode quebrar seu Javascript completamente. Ao implementar o terceiro recurso, os desenvolvedores podem ter todos os tipos de atalhos. Se eles não conseguem descobrir como funciona, eles podem simplesmente remover o código relevante do modelo de postagem único e adicionar suas próprias funções. Isso funcionará bem, mas pode deixar funções não utilizadas no arquivo functions.php. Com o tempo isso leva a um código mutilado que nenhum desenvolvedor gostaria de trabalhar.
Os processos defeituosos não são apenas relegados para o lado do desenvolvimento do seu site. Administradores e editores podem ser tão desleixados. Eles não definem diretrizes claras para a formatação resultando em cabeçalhos aleatórios, às vezes texto alternativo de imagem e os títulos são definidos, às vezes não são. As imagens às vezes são formadas lindamente, outras vezes, não tanto. Estas pequenas inconsistências se somam e, em contraste com as questões de codificação, são muito mais difíceis (ou laboriosas pelo menos) para consertar.
Mantendo seu site útil
Na minha opinião, impedir que seu site se torne inutilizável se resume a processos de aplicação rigorosa. Isso realmente não o ajudará se você játiver um site lento, então vamos olhar alguns remédios imediatos primeiro:
Removendo Plugins Desnecessários
Tem certeza de que está usando cada um dos seus 50 plugins? Você instalou BuddyPress para testá-lo em vez de realmente usá-lo? Talvez você tenha uma série de ferramentas de administração, como importadores, regeneradores de imagens e assim por diante ativadas. Eliminar esses “óbvios” primeiro. Se algo não está sendo usado e você não está planejando usá-lo no futuro próximo, se livrar dele. Para os plugins de administração, que são necessários, mas raramente utilizados, considere desativá-los até serem necessários.
E quanto aos plugins com os quais você não tem certeza? Você precisa do formulário de contato 7, campos personalizados avançados, controle deslizante de camada, etc.? Um bom lugar para começar é instalar dois plugins (espero que você aprecie a ironia aqui): Shortcodes não utilizados e Shortcode Lister . Shortister Lister listará todos os códigos curtos registrados, enquanto os códigos abreviados não utilizados permitem que você insira um código curto para ver se ele é usado. Acompanhe os plugins responsáveis pelos códigos curtos não utilizados e se livrar deles.
Mantenha-se atento para os plugins que executam a mesma função. Eu vejo muitos casos em que um administrador instalou o Formulário de Contato 7 para uma página de contato e, em seguida, seis meses depois, precisava de um formulário para outra coisa e, esquecendo o Formulário de Contato 7 já estava instalado, pesquisado e instalado o Ninja Forms ou Visual Form Builder. Esses plugins usam códigos curtos para que você possa descobrir onde eles são usados com os plugins mencionados acima e modificar seus formulários para usar o mesmo plugin – apague o resto.
Uma terceira categoria de plugins desnecessários é gerada por recursos desnecessários do site. Você realmente precisa de avatares para se transformar em cartões hover. Algum de seus visitantes usa isso? Tem certeza de que precisa do controle deslizante da página inicial ou é apenas doces para os olhos? Tente e verifique o seu site com um olho crítico para encontrar os plugins que você está usando que prejudicam a usabilidade do site em vez de adicionar a ele.
Otimizando o banco de dados
Se as tabelas do banco de dados tiverem muitas entradas, elas podem tornar-se desfragmentadas, ou seja, elas funcionam com muitas despesas gerais. Este pode ser o caso das tabelas de pós-meta e usermeta intensivas em dados. Trabalhei recentemente em um site que foi suspenso por usar muitos recursos em seu servidor. Uma reconstrução de todo o site está em breve, mas uma otimização simples das tabelas do banco de dados nos permitiu acelerar as coisas no curto prazo para nos ajudar na reconstrução.
Para otimizar suas tabelas, você precisará acessar seu banco de dados MySQL. Isso geralmente pode ser acessado a partir do seu painel de controle de domínio / host. Obter acesso pode exigir um nome de usuário e uma senha. Alguns hosts fornecem essa informação no painel de controle em algum lugar. Em outros casos, seu desenvolvedor pode ter criado o banco de dados para você e anotado o acesso em um e-mail. Se tudo mais falhar, tente abrir o wp-config.php
arquivo em seu diretório raiz. Este arquivo possui credenciais de acesso ao banco de dados, que se parecem com algo assim:
Define ('DB_USER', 'nome_de_usuário'); Define ('DB_PASSWORD', 'senha_here');
Depois de obter acesso à interface PHPMyAdmin, você deve ver uma lista de bancos de dados à esquerda. Escolha o relacionado ao seu site. Você pode encontrar o nome do banco de dados no wp-config.php
arquivo, se necessário. Se você clicar no banco de dados, você deve ver uma lista de tabelas dentro da direita.
Na visualização maior, a coluna mais à direita mostra a sobrecarga , enquanto a segunda última coluna mostra a quantidade de conteúdo armazenado. Antes de otimizar o banco de dados para o projeto de reconstrução em que estou trabalhando, a sobrecarga foi algo como 50Mb – madura para otimização. Se você tem uma sobrecarga, que é uma porcentagem significativa do seu conteúdo armazenado, recomendo otimizar seu banco de dados. Selecione as tabelas para otimizar usando as caixas de seleção à esquerda e selecione “Otimizar tabela” no menu suspenso na parte inferior.
Esteja ciente de que isso só pode ser uma medida temporária. Todos os bancos de dados adquirem despesas gerais com o passar do tempo, e quanto e quanto rápido é um fator de qualidade do código. Quanto mais desperdiçadas as suas consultas, as tabelas mais temporárias necessitam da sobrecarga mais rápida é acumulada.
Como obter uma atualização do servidor
Se você está desesperado para acelerar as coisas, uma atualização do servidor pode ajudá-lo. Problemas de código muitas vezes causam problemas de memória, que podem ser tratados ao jogar mais memória no problema. Você pode entrar em contato com seu host para pedir isso, mas isso irá custar você. A maioria dos planos de hospedagem VPS tem opções de atualização, então confira os preços com seu host atual ou considere encontrar um novo host.
Embora isso possa fornecer algum espaço para respirar, é a maneira pior absoluta de resolver o problema de um site inutilizável. É o equivalente a usar a mesa de duto para segurar o pára-choque do seu carro no lugar. Claro, pode aguentar até chegar ao mecânico e, novamente, pode não ser. Em alguns casos, uma opção temporária é melhor do que nada, apenas esteja ciente de que esta é uma técnica de aversão a crises, e não uma solução.
Use um plugin de cache
Mais uma vez, não é uma solução, mas uma adição útil ao seu site, no entanto. O cache pode tirar uma carga do seu servidor armazenando essencialmente o estado de uma página e servindo-o como HTML estático. Isso reduz o processador e a carga de memória, o que pode comprá-lo por algum tempo enquanto trabalha nas questões principais.
WP Super Cache ou W3 Total Cache são ótimas opções.
Revisão de código
As revisões de código podem fornecer benefícios quase que instantaneamente, mas são mais difíceis de orquestrar, especialmente com uma base de código enlameada. Existem algumas técnicas que podem ajudar. Eu recomendo procurar consultas lentas primeiro. Você pode fazer isso de várias maneiras, o mais rápido seria instalar Debug Queries , que lista todas as consultas do front-end e permite que você identifique os desperdícios.
O MySQL possui um registro de consulta lenta embutido, mas talvez seja necessário pedir ao seu host onde é este, ou talvez seja necessário ativá-lo.
Pesquisas desperdiçadoras são a causa de sites mais lentos. Não só eles têm um impacto de velocidade imediato, os problemas são amplificados ao longo do tempo, especialmente com o aumento do tráfego. Depois de descobrir onde eles estão, você pode reescrevê-los no seu código, desativar a funcionalidade ou se livrar do plugin ofensivo.
Alguns autores têm a tendência de usar o banco de dados muito mais do que o necessário. Alguns plugins e temas podem usar várias linhas para armazenar configurações como dados discretos. Na maioria dos casos, isso não é necessário – você pode agregá-los em matrizes e armazená-los em uma linha.
As revisões de código são muito difíceis de desencadear em um site completamente desperdiçado. Mesmo que o código possa ser separado em seções funcionalmente independentes, o conjunto tende a ser mais do que a soma de suas partes. Com um site severamente confuso, uma re-codificação completa pode levar menos tempo e esforço e produzir 200% melhores resultados.
Políticas e processos de gerenciamento
Penso que, de longe, a solução mais eficaz para prevenir o envelhecimento do seu site é colocar as políticas de gestão em vigor que cobrem todos os aspectos do negócio. Padronizar tudo o que você faz leva a inúmeros benefícios, superando mesmo seus objetivos originais:
- Sua empresa será mais transparente
- As tarefas podem ser facilmente assumidas por outros
- A compreensão de todos sobre o site aumentará
- A implementação de novos recursos torna-se muito mais fácil
- Backtracking está integrado no sistema
- Mudanças de massa tornam-se mais fáceis
- A segurança aumentará
- A velocidade do site permanecerá rápida
Eu recomendo a criação de pelo menos dois documentos, que regerão duas áreas principais relacionadas ao seu site:
- As diretrizes de desenvolvimento devem determinar o desenvolvimento do método, o teste, a implantação, o estilo do código e assim por diante. Ele serve para padronizar o processo de codificação para que qualquer desenvolvedor possa assumir o controle depois de ler as diretrizes.
- As diretrizes de administração são tudo sobre como você gerencia o site. Isso pode incluir as diretrizes de edição para criação de conteúdo, diretrizes de imagem, ações de SEO realizadas por publicação, políticas de atualização, políticas de uso de plugins e assim por diante.
Se você tem outros processos importantes, como publicidade, vendas, etc., você também pode criar guias detalhadas para esses. Para qualquer processo que exija as mesmas tarefas repetidamente, recomendo criar um guia passo a passo, descrevendo o que fazer. Idealmente, um recém-chegado deve poder se sentar com o guia e um computador e fazer o que você faz.
Aprenda algum código
Eu tento estressar onde quer que eu possua esse código de aprendizagem tornará a vida de todos muito mais fácil. Você não precisa se tornar um desenvolvedor, mas saber o que está acontecendo nos bastidores irá fornecer-lhe benefícios que você nunca conheceu, em primeiro lugar.
Você poderá escolher seus plugins melhor, você pode acompanhar mais atentamente o código do seu site, se comunicar com os desenvolvedores com mais facilidade, detectar problemas de problemas potenciais com antecedência e muito mais.
Conclusão
Se dermos um passo para trás e tomarmos uma visão de olho de pássaro, realmente existe apenas um fator que contribui para que os sites diminuam: hábitos humanos (não necessariamente erros).
O WordPress é bastante eficiente, mas os autores de plugins e temas introduzem problemas menores e maiores por negligência, a emoção de publicar um produto, descuido e assim por diante. Os usuários, em seguida, aprimoram esse problema, jogando plugins desnecessários em seu site, sendo inconsistente e às vezes apenas sendo um pouco preguiçoso.
Se você achou isso um pouco ofensivo, tenha conforto no fato de que todos o fazem. Eu prego sobre sites perfeitos com guias perfeitas, mas nem sempre seguimos meus próprios conselhos. Tenha em consideração o tipo de site que você possui. Se é um pequeno site pessoal, você pode fugir com muito menos. Se você está fazendo milhares de dólares com seu site de comércio eletrônico, prestar mais atenção a essas coisas não só evitará dores de cabeça na estrada, mas provavelmente aumentará diretamente as vendas.
Você tem plugins não utilizados ativados em seu site? O seu site está funcionando devagar e esta publicação ofereceu um momento de lâmpada? Deixe-nos saber seus pensamentos nos comentários abaixo.