Escolhendo um servidor para o WooCommerce
A documentação oficial do WooCommerce pede PHP 8.3 ou mais recente, MySQL 8.0 ou MariaDB 10.6 ou mais recente, HTTPS e um limite de memória do WordPress de pelo menos 256 MB. Ela não dá um valor para a RAM do servidor. Para uma loja pequena, começar com 2-4 GB de RAM é razoável (uma regra prática que varia conforme a loja). À medida que produtos e pedidos crescem, cresce também a carga sobre o banco de dados e o processador.
Uma loja não se comporta como um blog. As páginas de carrinho e de checkout são diferentes para cada visitante, então não podem ser armazenadas em cache, e os pedidos são gravados no banco de dados o dia todo. Para o mesmo tráfego, uma loja por isso costuma precisar de mais recursos que um blog.
Os requisitos oficiais
O documento de requisitos de servidor do WooCommerce (uma recomendação oficial) lista:
- PHP 8.3 ou mais recente.
- MySQL 8.0 ou mais recente, ou MariaDB 10.6 ou mais recente.
- Suporte a HTTPS.
- Um limite de memória do WordPress de 256 MB ou mais.
- Apache ou Nginx como servidor web.
- Suporte a strings multibyte (mbstring) se a sua loja não for em inglês. O documento trata isso como um requisito que depende da loja, e uma loja em turco entra nesse grupo.
O valor de 256 MB é um teto para uma requisição PHP, não a RAM do servidor. Se necessário, adicione esta linha ao wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
Versões mais antigas, como o PHP 7.4, aparecem no documento apenas como alternativa legada e não são recomendadas.
Por que uma loja é diferente de um blog
- Páginas que não podem ser armazenadas em cache. O guia de cache do WooCommerce manda deixar as páginas de carrinho, checkout e conta fora do cache, porque elas mostram dados específicos de cada visitante. Alguns cookies, como os do carrinho, também devem ficar de fora. Confira se o seu plugin de cache faz isso.
- Carga de gravação. Criar pedidos, atualizar o estoque e guardar sessões gravam no banco de dados o tempo todo. Um blog grava raramente, enquanto uma loja grava o dia inteiro.
- Tarefas em segundo plano. O WooCommerce executa trabalhos adiados (e-mails, webhooks, pagamentos de assinaturas) por uma fila de tarefas embutida chamada Action Scheduler. A fila é acionada pelo WP-Cron, então, em uma loja com pouco tráfego, as tarefas podem rodar atrasadas. Configurar uma tarefa cron no servidor para executar o WP-Cron em intervalos (junto com a configuração
DISABLE_WP_CRON) elimina essa dependência. Você vê a fila em WooCommerce > Status > Scheduled Actions.
Dados de pedidos e HPOS
O High-Performance Order Storage (HPOS) guarda os pedidos em tabelas próprias, feitas para isso, em vez das tabelas gerais de posts do WordPress. Ele é o padrão em instalações novas desde o WooCommerce 8.2. Lojas mais antigas não mudam sozinhas. Você o ativa em WooCommerce > Settings > Advanced > Features, e um modo de compatibilidade mantém as duas estruturas sincronizadas. Para o servidor, o ponto é este: a estrutura é otimizada para pedidos, mas o banco de dados continua precisando de memória e disco.
Tamanho inicial
Esses valores são regras práticas e variam conforme a loja. Não são uma promessa firme.
| Loja | RAM inicial | vCores |
|---|---|---|
| Loja nova: poucos produtos, poucos pedidos | 2-4 GB | 1-2 |
| Loja em crescimento: milhares de produtos, campanhas regulares | 4-8 GB | 2-4 |
| Loja movimentada: campanhas frequentes, muitos plugins e integrações | 8 GB ou mais | 4 ou mais |
O número de plugins, o tamanho das imagens e a carga repentina durante uma campanha importam tanto quanto o número de produtos. Um cache de objetos (como o Redis) reduz a carga do banco de dados, mas precisa de memória. Comece pequeno e depois cresça conferindo a saída de free -h e top nos horários de pico.
Motivos comuns para uma loja ficar lenta
- Imagens de produtos grandes e sem compressão.
- Plugins sem uso e scripts extras que rodam em todas as páginas.
- Sem cache de objetos, a mesma consulta ao banco de dados roda várias vezes.
- Uma versão antiga do PHP que não recebe mais manutenção.
Corrigir isso muitas vezes vem antes de aumentar o servidor. Onde aumentar não ajuda, o problema geralmente está na configuração.
Backups: um backup diário pode não bastar sozinho
Na Seturack, o servidor tem backup toda noite e os últimos 7 dias são mantidos. Em uma loja, os pedidos chegam o dia todo, então isso sozinho pode ficar curto. Se você restaurar, os pedidos feitos desde o último backup se perdem. Faça um dump do banco de dados com mais frequência e copie-o para outro lugar:
mysqldump --single-transaction -u USER -p DATABASE | gzip > orders-$(date +%F-%H%M).sql.gz
Em uma tarefa agendada, não coloque a senha na linha de comando. Use um arquivo ~/.my.cnf com permissões 600. Em um servidor WooCommerce pronto, o aplicativo roda no Docker, então execute os comandos do banco de dados de dentro do contêiner. O banco de dados ali é o MariaDB. O contêiner pode não incluir o mysqldump, então use o mariadb-dump. As imagens dos produtos ficam na pasta wp-content/uploads, então copie essa também.
O que preparar além do tamanho
- HTTPS. É obrigatório para o WooCommerce. Um servidor WooCommerce pronto abre por HTTPS em um endereço derivado do seu IP com o sslip.io. Para conectar seu próprio domínio, veja este artigo.
- E-mail. Instale um plugin de SMTP para que os e-mails de pedidos sejam enviados. A instalação não configura o envio de e-mails.
- Atualizações. Depois da instalação, as atualizações do WordPress, do WooCommerce e dos seus plugins ficam por sua conta. Faça um snapshot pelo painel antes de uma atualização grande. Um snapshot não substitui um backup; ele só permite voltar ao ponto anterior.
Um servidor com o WooCommerce pré-instalado fica pronto em cerca de 3,5 a 4 minutos, e você pode aumentá-lo pelo painel conforme a loja cresce. Dê uma olhada na página do servidor WooCommerce.
Comentários0
Ainda não há comentários
Seja a primeira pessoa a compartilhar sua opinião.
Entre ou crie uma conta para deixar um comentário.