Quando se trata de sites WordPress, nem todos podem ser abordados da mesma forma ao determinarmos o que funciona melhor no que diz respeito ao seu desempenho. Um site WordPress simples de cinco páginas se comporta muito diferente de um grande site com WooCommerce (que pode ser bastante exigente). Sites WordPress de membros e comunidades são outro tipo que se encaixa no que chamamos de categoria “complicada”. Se não forem instalados ou configurados corretamente, você logo se verá no meio de um pesadelo repleto de erros 500, períodos fora do ar e tempos de carregamento lentos. Mas isso não significa que você não tem opções, só precisa seguir algumas práticas recomendadas.

Hoje, vamos explorar o que deve ser feito e o que não deve ser feito em sites WordPress de membros e como otimizá-los da melhor forma para garantir um desempenho superior, escalabilidade e longevidade. 🚀

Exemplos de Sites de Membros

Aqui estão alguns exemplos de sites WordPress comuns de membros e comunidades:

  • Um site desenvolvido em torno de um Sistema de Gestão da Aprendizagem (LearnDash, Lifter LMS) que comercializa cursos digitais para seus membros. Estes estão se tornando realmente populares ultimamente e há alguns grandes plugins LMS por aí!
  • Um site WordPress baseado em fórum (bbPress ou BuddyPress) usado por membros para discussão de assuntos variados.
  • Um site de membros desenvolvido em um dos vários plugins de membros populares de terceiros (MemberPress ou Ultimate Membership Pro).
  • Uma rede social focada em um site de comunidade (PeepSo).
  • Alguns deles também podem incluir soluções de eCommerce, como WooCommerce e Easy Digital Downloads como se fossem sites de membros, já que muitos apresentam perfis dos usuários e recursos de comunidade.

Por que Sites WordPress de Membros são Diferentes

Antes de abordarmos o que deve ou não ser feito, vamos nos aprofundar nos motivos pelos quais sites WordPress de membros são diferentes de um blog padrão ou de um website de uma pequena empresa.

1. Conteúdo Sem Cache

Primeiramente, sites de membros possuem muito conteúdo que não pode ser armazenado em cache e páginas que estão em constante mudança. Fatores como a página de login para os membros da comunidade (que pode ser acessada constantemente dependendo do tamanho do site), páginas de conclusão de compra de bens ou cursos digitais e murais de discussão são comumente os culpados e causadores de problemas, já que geralmente não podem ser armazenados em cache.

Entretanto, não para por aí. Em sites WordPress padrão, o painel do WordPress também não é armazenado em cache para usuários “logados”. Isso não é um problema se você tem apenas alguns autores e administradores, mas quando existem milhares de membros usando o painel, problemas de desempenho podem ser causados imediatamente, uma vez que nada pode ser servido a partir do cache no servidor. Isso significa que você precisa de força e arquitetura nos bastidores para sustentar tudo isso. Provedores de hospedagem compartilhada costumam sofrer nessas circunstâncias.

Na ferramenta MyKinsta analytics, que oferecemos aos clientes de nossa hospedagem, você pode observar quando cache está sendo. Abaixo está um exemplo de um site onde a maior parte das solicitações não estão sendo servidas a partir do cache.

Cache bypass
Cache bypass

2. Um Grande Número de Visitantes Simultâneos

O segundo problema que sites de membros costumam ter é um grande número de visitantes e sessões simultâneas. Em um site WordPress informacional ou corporativo, um visitante pode navegar por cinco ou 10 minutos até encontrar o que precisa (e este é um número alto, em geral as taxas de rejeição são bem maiores). Em sites de membros, ocorre o contrário. Visitantes acessam o site para se engajarem com algo ou alguém. Se eles estão fazendo um curso on-line, não é difícil que permaneçam por horas em suas páginas. Você já pode ver onde isso vai parar. Os visitantes conectados simultaneamente à sua hospedagem WordPress se acumulam rapidamente.

E, para piorar, você tem a junção do problema de um grande número de visitantes simultâneos ao “conteúdo que não pode ser armazenado em cache”.

3. Consultas Complexas

Terceiro, sites de membros geralmente geram consultas mais complexas que, por sua vez, aumentam a latência na recuperação da informação vinda do banco de dados MySQL. Muito disso ocorre em virtude de todas as partes adicionais móveis e grandes quantidades de dados presentes em sites como esses. Isso também pode ser causado por sites que dependem muito de consultas de pesquisa para navegação ou que usam WP_Query.

Isso sem falar que você também tem grandes quantidades de usuários simultâneos continuamente consultando o banco de dados.

4. Armazenam Muitos Dados

Não é algo surpreendente, mas sites de membros armazenam muitos dados e, se não foram gerenciados adequadamente (veremos mais adiante como fazer isso), seu espaço de disco pode te deixar na mão rapidamente. Esse fator também aumenta ao longo do período de vida do site. Vídeos, cursos, assinaturas e informações de perfil, discussões, downloads digitais, entre outros. Esses são apenas alguns dos diferentes tipos de conteúdo que podem ser acumulados rapidamente.

O que Fazer em Sites WordPress de Membros

Hospedamos muitos sites de membros aqui na Kinsta e nossos engenheiros estão constantemente interagindo com os proprietários dos mesmos. Apesar de sempre encorajarmos os usuários a implementarem práticas recomendadas de desempenho na web, elas nem sempre são suficientes quando lidamos com esse tipo de site. Por isso, mostraremos a você algumas formas de ir além para garantir que seu site de membros e seus visitantes desfrutem da melhor experiência possível.

1. Escolha uma Hospedagem WordPress Focada em Desempenho

Aconselhá-lo a escolher uma hospedagem WordPress melhor pode soar algo muito repetitivo, mas a verdade é essa, pois muitos problemas de desempenho com sites de membros podem ser associados a esse fator como uma causa raiz. Já vimos diversas vezes os clientes migrarem para a Kinsta vindo de outros provedores e imediatamente observarem melhorias drásticas. Nossa empresa inteira, da infraestrutura que disponibilizamos por trás de seus sites até os engenheiros que contratamos, é focada em desempenho. E isso nunca mudará.

Como a Kinsta Acelera Sites de Membros

A Kinsta foi a primeira hospedagem gerenciada de WordPress a utilizar exclusivamente Google Cloud Platform. Oferecemos 37 data centers diferentes ao redor do mundo, o que significa que você pode escolher aquele que esteja mais próximo dos seus visitantes para reduzir a latência e o TTFB. Enquanto outras hospedagens podem utilizar o nível padrão de serviços de rede do Google (mais barato e lento), nós utilizamos o nível premium de serviços de rede do Google. Tudo foi projetado para minimizar a distância e os saltos, resultando num transporte global mais rápido e seguro de seus dados.

Para tornar seu site WordPress mais seguro, nós também utilizamos o firewall de nível empresarial do Google Cloud. Ao contrário de outros hosts que usam estritamente firewalls baseados em software no nível de servidor web, nosso firewall primário fica na ponta da rede do Google fora de nossa rede de máquinas virtuais. Isto nos permite bloquear o tráfego malicioso conhecido antes que ele entre em nossa rede, e reduz a carga em nossos balanceadores de carregamento e máquinas virtuais.

Nossa plataforma de hospedagem não se encaixa em nenhuma das categorias tradicionais de hospedagens e é muito diferente das clássicas estruturas compartilhadas, VPS ou dedicadas. A Kinsta utiliza hospedagem gerenciada LXD e contêineres de software LXC orquestrados para cada site. Isso significa que cada site WordPress de membros é alojado em seu próprio contêiner isolado, que dispõe de todos os recursos de software necessários para executá-lo (Linux, Nginx, PHP, MySQL). Esses recursos são 100% privados e não são compartilhados com mais ninguém, nem mesmo seus demais sites.

Arquitetura de hospedagem Kinsta.
Arquitetura de hospedagem Kinsta.

Em Kinsta, tornamos as máquinas virtuais otimizadas para computação C2 do Google Cloud disponíveis para todos os nossos clientes. A família de máquinas C2 é equipada com os mais recentes processadores escaláveis Intel Xeon capazes de operar a 3,8 GHz com turbo de núcleo integral sustentado. Com as máquinas C2 de alto desempenho que alimentam seu site de membros WordPress, as frequentes solicitações sem cache e consultas a banco de dados poderão ser executadas mais rapidamente, resultando em uma melhor experiência para seus visitantes.

Cada site de filiação também pode tirar proveito de nossa infraestrutura escalável para melhor lidar com surtos repentinos de tráfego e carregamento. Isto permite que você aumente seu site de filiação WordPress sem ter que se preocupar com as restrições comuns e os limites rígidos que outros provedores de hospedagem impõem.

Saiba mais sobre como a Kinsta é diferente.

2. Aproveite-se do PHP 8.1

Não podemos reforçar o suficiente o quão importante é usar uma das versões mais recentes do PHP, preferencialmente o PHP 8.1. Para muitos sites, essa escolha não exige nenhum trabalho, é gratuita e melhora seu desempenho instantaneamente!

O PHP 7.4 não é mais suportado na Kinsta. Por favor, note que suportamos versões PHP 8.0, 8.1, 8.2 e 8.3.

Divulgamos nossos benchmarks de desempenho do PHP nos quais testamos PHP 7.2, 7.3, 7.4, 8.0, e 8.1. Como você pode ver abaixo, em um site de WooCommerce, o PHP 8.0 leva o melhor para o desempenho mais rápido! 🍰 e o 8.1 foi ainda mais rápida.

WordPress 5.9-RC2 + WooCommerce 6.1.1 PHP Benchmarks
WordPress 5.9-RC2 + WooCommerce 6.1.1 PHP Benchmarks

Também testamos o Easy Digital Downloads e novamente, o PHP 8.0 foi superior em desempenho do que qualquer outro.

WordPress 5.9-RC2 + Easy Digital Downloads 2.11.4.1 PHP Benchmarks
WordPress 5.9-RC2 + Easy Digital Downloads 2.11.4.1 PHP Benchmarks

Se o seu provedor de hospedagem de sites WordPress atual não suporta PHP 8.0 ou superior, talvez seja hora de procurar por um novo provedor de hospedagem de sites. Kinsta oferece e suporta as versões 8.0, 8.1, 8.2 e 8.3 do PHP. Você pode facilmente alternar entre elas no painel MyKinsta com um único clique.

Alterar para PHP 8.1
Alterar para PHP 8.1

Se o seu site de membros apresenta problemas de compatibilidade com a última versão do PHP, então é o momento de perguntar ao desenvolvedor do plugin ou do tema por que ele está ficando para trás, ou talvez seja o momento de contratar seu próprio desenvolvedor WordPress para corrigir o problema. Você não vai querer perder as melhorias de desempenho alcançadas com o PHP 8 ou superior.

3. Use Cache de Objetos

Cache torna os websites mais rápidos e reduz a carga no servidor. Se você estiver usando um plugin de cache ou uma hospedagem gerenciada como a Kinsta, que possui cache no nível do servidor (página) implementado, isso é algo que já deve estar sendo feito. Entretanto, quando se trata de sites WordPress de membros, suas configurações comuns de cache não costumam ser suficientes, pois não se beneficiam totalmente dele. É aí que o cache de objetos entra em cena.

O cache de objetos armazena os resultados das consultas do banco de dados. Assim, na próxima vez que aqueles dados em particular forem necessários, ele será capaz de entregá-los a partir do cache, sem consultar o banco de dados. Isso acelera os tempos de execução do PHP e reduz a carga em seu banco de dados. É algo que se torna extremamente importante para sites de membros! No WordPress, você pode implementar cache de objetos de algumas formas diferentes:

  1. Uma solução de cache de terceiros, como o W3 Total Cache
  2. Redis (recomendado)
  3. Memcached

Redis

Oferecemos o Redis como um complemento aqui na Kinsta. Dessa forma, você pode aproveitar todas as vantagens do cache de objetos em seus sites de membros. A boa notícia é que, uma vez configurado, você poderá continuar usando a opção de Limpar Cache adicionada na área de administrador do seu website pelo plugin Kinsta MU. Este botão limpará tanto o cache da página quanto qualquer cache de objetos ativo no site.

Limpar cache na barra de ferramentas do administrador WordPress
Limpar cache na barra de ferramentas do administrador WordPress

Em alguns casos, também é possível armazenar em cache uma página ou URL específica para usuários que fizeram login. Entretanto, primeiro você deverá entrar em contato com nossa equipe de suporte para falar sobre isso, pois é importante que compreenda todas as ramificações existentes ao habilitar esse recurso.

4. Melhore Sua Pesquisa no WordPress

À medida que um site de membros cresce, você descobrirá que a funcionalidade de pesquisa padrão do WordPress não será o suficiente. Sites que usam muito o WP_Query utilizam pesquisa como seu meio primário de navegação, ou mesmo um site com uma grande quantidade de posts, podem apresentar problemas de desempenho, já que os tempos de consulta de pesquisa começam a se acumular. É nesse aspecto que um mecanismo de pesquisa como Elasticsearch pode ajudar.

Elasticsearch

Elasticsearch pode ser usado para acelerar as consultas no banco de dados do WordPress. Isso é realizado através da criação de um índice do conteúdo do banco de dados do seu site e da utilização do Elasticsearch para pesquisar neste índice, que consegue fazê-lo muito mais rapidamente que uma consulta MySQL é capaz de realizar a mesma pesquisa.

5. Crie uma Página 404 Leve

Observamos em primeira mão que sites de membros costumam gerar muitos erros 404. Seu site provavelmente está gerando muito mais do que você pensa! Nossa ferramenta MyKinsta analytics pode ajudar a determinar a quantidade exata (como visto abaixo).

404 Errors
404 Errors

Você também pode verificar erros 404 no Google Search Console ou instalar um plugin de terceiros como o Redirection, que registra os erros 404. No entanto, lembre-se que plugins como esse também têm um impacto no desempenho. É muito melhor contar com uma ferramenta no nível do servidor.

O motivo destes erros serem ruins é que muitas páginas 404 exigem muitos recursos. Para um site de membros, você deve evitar uma página 404 pesada. Crie um modelo 404 simples que previna ainda mais consultas ao banco de dados, se for possível. E, é claro, invista um pouco de tempo na correção dos erros 404, já que eles não só consomem muitos recursos, como também são ruins para a experiência do usuário.

Além de utilizar uma página 404 leve, é também uma boa idéia adicionar uma regra especial de cache de página para 404 páginas. Se você for um cliente Kinsta, não terá que se preocupar com isso. Nossa configuração Nginx armazena páginas 404 por 15 minutos. Se detectarmos que uma nova página com a mesma URL de uma página 404 em cache foi criada, limparemos o cache conforme necessário. Se o seu site WordPress não tiver páginas em cache 404, recomendamos trabalhar com seu host para adicionar esta capacidade ao seu servidor web.

6. Aumente o Número de PHP Workers

PHP workers pode ser um termo que você nunca ouviu antes, mas eles são a forma como muitas hospedagens, incluindo a Kinsta, lidam com solicitações limitadas (ao invés de limitar você com uso de CPU ou RAM, que costuma ser o caso nas hospedagens compartilhadas).

PHP workers determinam quantas solicitações simultâneas seu site pode atender em um determinado tempo. De forma simples, cada solicitação sem cache para seu website é atendida por um PHP worker. Por exemplo, se você tem quatro solicitações que chegam ao seu site ao mesmo tempo e ele possui dois PHP workers, duas dessas solicitações serão processadas, enquanto as outras duas terão que esperar na fila até que as primeiras tenham sido finalizadas.

Lembre-se do que dissemos antes sobre um dos maiores problemas com sites WordPress de membros ser todas aquelas solicitações sem armazenamento em cache. É por isso que os PHP workers se tornaram tão importantes, pois eles precisam trabalhar em cada solicitação. Assim, esses sites costumam exigir PHP workers adicionais para garantir que cada solicitação seja processada sem atrasos e com sucesso.

O que acontece se você esgota continuamente seus PHP workers? Basicamente, a fila começa a empurrar as solicitações mais antigas para fora, o que pode resultar em erros 500 no seu site. Cada plano de hospedagem Kinsta inclui um número predefinido de PHP workers. Se você tiver dificuldade em estimar quantos deles seu site pode precisar, este guia será útil: Recomendações do trabalhador PHP para sites de associação. Mas você sempre pode conversar com nossa equipe de vendas ou suporte também.

7. Realize Manutenções Regulares no Banco de Dados

A manutenção regular do banco de dados não é só recomendada para sites WordPress de membros, ela é obrigatória! Se você não a fizer, um dia provavelmente estará se perguntando por que seu site começou a ficar lento. Aqui estão algumas recomendações:

Limpe os Dados Carregados Automaticamente

Dados carregados automaticamente são aqueles carregados em todas as páginas do seu site WordPress. Eles são armazenados em sua tabela wp_options. Em sites grandes, essa tabela pode facilmente crescer e ficar fora do seu controle. Veja nosso tutorial aprofundado sobre como limpar dados carregados automaticamente.

Limpe os Transientes e CRON Jobs

Assim como é o caso dos dados carregados automaticamente, você deve limpar regularmente os transientes. Quando funcionam de forma apropriada, eles devem expirar e removerem a si mesmos, mas nem sempre isso ocorre. Se algo estiver mal configurado ou corrompido, os transientes podem começar a se acumular.

Por exemplo, tivemos um cliente com o qual algo deu errado com a expiração dos transientes e isso levou o site inteiro a ficar lento. Após investigarmos, descobrimos que o site tinha 695.846 registros transientes (linhas) no banco de dados. Após removermos as linhas (que continham tais transientes que já deveriam ter expirado), o site se recuperou imediatamente (como pode ser visto abaixo).

Transientes (após correção)
Transientes (após correção)

Você pode usar o plugin gratuito Transients Manager para visualizar, buscar, editar e remover transientes em seu site WordPress. Se você é um pouco mais experiente em tecnologia, você também pode usar os omandos do WP-CLI c para limpar os transientes.

O CRON jobs (WP-Cron), utilizado para agendar tarefas repetitivas para seu site WordPress, pode apresentar problemas similares. Você pode usar o plugin gratuito WP Control para verificar e se certificar de que seus CRON jobs não estão saindo de seu controle.

Altere o Mecanismo do Banco de Dados para InnoDB

Por fim, mas não menos importante, você deve mover seu mecanismo de banco de dados para InnoDB, caso ainda não tenha feito isso. Muitos sites mais antigos continuam usando o mecanismo de armazenamento MyISAM em seus bancos de dados. Ao longo dos anos recentes, o InnoDB mostrou ter um melhor desempenho e ser mais confiável. Um grande motivo para usar InnoDB ao invés de MyISAM é que você não quer se deparar com problemas de bloqueio no nível de tabelas cheias. Ele permite que suas consultas sejam processadas mais rapidamente.

Veja nosso tutorial sobre como converter seu banco de dados (tabelas) de MyISAM para InnoDB. Se você migrar para a Kinsta e permitir que nossa equipe de engenheiros te auxilie, moveremos automaticamente seu mecanismo de banco de dados para o InnoDB.

8. Descarregue Dados

Como mencionamos anteriormente, sites de membros possuem toneladas de dados! Vídeos, PDFs, fotografias em alta resolução, documentos e arquivos de áudio costumam ser os maiores culpados. Assim, você precisa descobrir uma forma de descarregar esse conteúdo em uma solução de armazenamento mais barata. Você pode economizar dinheiro ao simplesmente fazer um upgrade em seu plano de hospedagem. Confira os artigos a seguir:

O que Não Fazer em Sites WordPress de Membros

Aqui estão algumas coisas que você não deve fazer em seus sites WordPress de membros

Fique Longe dos Contadores de Postagens

Nunca adicione contadores de visualizações/postagens ao seu site se não precisar. Por exemplo, evite detalhes como “792” postagens ao lado do avatar do usuário em publicações de fóruns ou “5.243” visualizações quando listar postagens em fóruns. Quando você tem uma longa discussão se desenvolvendo, esses contadores tomam um espaço imenso em seu banco de dados. De forma geral, minimize o uso de contadores e só os utilize se for realmente necessário.

Isso também vale para contadores de redes sociais. Perceba que usamos em nosso blog da Kinsta, mas em nenhum outro lugar de nosso site eles estão presentes. Além disso, nosso plugin contém cache embutido, que garante que eles não gerem consultas a cada página carregada.

Contadores de postagens
Contadores de postagens

Evite Construtores de Páginas

Construtores de páginas são ótimos para muitas pessoas. Na verdade, até temos uma lista inteira daqueles que você pode usar no seu site. Entretanto, a maioria deles (não todos) possui implicações no desempenho, pois geram códigos adicionais desnecessários para fazer a página renderizar de forma que o usuário consiga desenvolvê-la sem saber codificar. Se você conseguir, codifique seus modelos de página à mão e sempre as deixe o mais leves possível.

Por exemplo, nosso site da Kinsta (como visto abaixo) está dentro do WordPress, mas o tema inteiro é na verdade codificado por nosso desenvolvedor interno. Isto nos ajuda a reduzir parte do volume que os grandes temas WordPress normalmente têm, mas nos permite ainda tirar proveito de toda a incrível funcionalidade. Dê uma olhada nesta coleção se você estiver procurando os melhores temas para associação ao WordPress. Mais uma vez, há milhares de talentosos desenvolvedores e designers de WordPress à sua disposição se você precisar de ajuda.

Página inicial da Kinsta
Página inicial da Kinsta

Não Use Muitos Plugins

Sabemos que você já ouviu isso antes. A verdade é que a qualidade do código de um plugin é mais importante que o número total de plugins que você instala. Dito isto, ainda assim cada um deles terá um “custo de desempenho”. 🐢 Se você não estiver mais usando os recursos dos plugins, desative-os e remova-os do seu site. Isso não só torna a resolução de problemas mais fácil, mas também provavelmente reduzirá o número de consultas em seu site (tanto no back-end quanto no front-end).

Tenha Cuidado Com Integrações de Terceiros

Existem muitos CRMs e plataformas de automação de terceiros que você pode querer integrar ao seu site WordPress de membros. No entanto, tenha cuidado com eles, pois alguns podem causar latência adicional e atrasos enquanto se comunicam com suas APIs, serviços, etc. Você deve olhar para soluções desenvolvidas dentro do WordPress, como essas soluções CRM.

Não queremos dificultar as coisas, mas o contrário também pode ser verdade. Se um CRM ou plataforma de automação de terceiros estiver atendendo a diversas tarefas próprias, ele é capaz de ajudar a tirar a carga da sua hospedagem WordPress. A melhor forma de ter certeza é testar diferentes soluções.

Recomendações Adicionais

E, é claro, não podemos deixá-lo ir embora sem mencionar algumas das otimizações de velocidade mais comuns que você já deve estar colocando em prática:

  • Comprima suas imagens!Na Kinsta, costumamos ver reduções de 60-70%, dependendo do tipo de imagem e qual a forma de compressão você está utilizando. Recomendamos a compressão com perda de dados.
  • Sempre use uma CDN.Mesmo que tenhamos 37 data centers disponíveis para serem escolhidos na Kinsta, seu servidor sempre estará distante de algum visitante. Uma CDN pode corrigir isso, ao copiar e entregar seus ativos (imagens, JS, CSS) a partir de POPs ao redor do mundo. Nossa CDN Kinsta já vem incluída para os clientes.
  • Pense duas vezes antes de decidir gerenciar seu próprio VPS. Tentando ser um administrador de sistema para economizar US $ 20 / mês é uma má idéia.

Resumo

Sites WordPress de membros e comunidades com certeza estão em sua categoria própria no que diz respeito à otimização. Eles costumam exigir que se dê um passo a mais para que apresentem um desempenho excelente. Mas a boa notícia é que muitas das soluções são capazes de fazer maravilhas com eles. PHP 8.1, Elasticsearch e Redis Object Caching são formas fáceis e eficientes de obter resultados instantâneos. E, é claro, ter uma hospedagem focada no desempenho sempre deve estar no topo da sua lista. 😉

Você possui um site WordPress de membros? Adoraríamos ouvir sua opinião ou as dificuldades que você encontrou ao longo do caminho.

Brian Jackson

Brian tem uma enorme paixão pelo WordPress, e tem utilizado há mais de uma década e até desenvolve alguns plugins premium. Brian gosta de blogs, filmes e caminhadas. Conecte-se com Brian no Twitter.