Category: WordPress

  • Como o OPcache Acelera o WordPress: Guia Completo de Otimização com Cache de Bytecode

    Como o OPcache Acelera o WordPress: Guia Completo de Otimização com Cache de Bytecode

    O que é o OPcache?

    O OPcache é um sistema de cache de bytecode embutido no PHP que melhora significativamente o desempenho de aplicações web como o WordPress. Ele funciona armazenando em memória o resultado da compilação dos scripts PHP, evitando que o PHP precise recompilar os mesmos arquivos a cada requisição.

    Neste guia, você vai aprender como o OPcache impacta diretamente no carregamento do seu site WordPress, quais configurações são ideais para ambientes de produção e desenvolvimento, e como evitar erros comuns.

    Como o OPcache funciona no PHP e no WordPress

    O OPcache intercepta os scripts PHP no momento da primeira execução, compila-os em bytecode e os armazena em memória compartilhada. Nas próximas execuções, esse bytecode é reutilizado diretamente, sem a necessidade de nova compilação.

    Diferença entre OPcache e cache de página

    Enquanto o cache de página (como FastCGI, Redis ou plugins como WP-Rocket) armazena o HTML final gerado, o OPcache atua antes disso, otimizando a execução do código PHP.

    Benefícios do OPcache no WordPress

    Utilizar o OPcache no seu site WordPress traz diversos ganhos:

    • Melhoria no tempo de carregamento: scripts PHP são processados mais rapidamente.
    • Redução do uso de CPU: economiza recursos do servidor.
    • Melhor performance com muitos plugins/temas: ideal para sites complexos.
    • Impacto positivo no SEO: melhora o TTFB (Time to First Byte), contribuindo para boas notas no Google PageSpeed.

    Problemas comuns ao usar o OPcache

    Apesar das vantagens, o OPcache mal configurado pode causar problemas, principalmente em ambientes com deploys frequentes ou em desenvolvimento:

    • Alterações no código não refletem: causado por opcache.validate_timestamps=0.
    • Falta de memória no cache: opcache.memory_consumption insuficiente gera erros.
    • Limite baixo de arquivos acelerados: opcache.max_accelerated_files não cobre todos os scripts.
    • Deploys automáticos mantêm scripts antigos em memória.
    • Servidor de desenvolvimento “bugados”: alterações no código parecem não funcionar até o cache ser limpo.

    Configurações recomendadas do OPcache para WordPress

    Servidor de produção

    opcache.enable=1
    opcache.validate_timestamps=0
    opcache.memory_consumption=128
    opcache.max_accelerated_files=10000
    opcache.revalidate_freq=60

    Servidor de desenvolvimento

    opcache.enable=1
    opcache.validate_timestamps=1
    opcache.revalidate_freq=2

    Essas configurações equilibram desempenho com estabilidade para cada cenário.

    Como configurar o OPcache no WordPress

    Embora o WordPress não exija nenhuma configuração especial para utilizar o OPcache, é fundamental garantir que o servidor esteja corretamente ajustado para tirar o máximo proveito.

    Passo 1: Verifique se o OPcache está habilitado no PHP

    Use o seguinte comando no terminal:

    php -i | grep opcache.enable

    Se retornar opcache.enable => On, ele já está ativo.

    Passo 2: Edite o arquivo php.ini usado pelo seu servidor web

    Em servidores com Apache ou NGINX, esse arquivo geralmente fica em:

    /etc/php/8.x/fpm/php.ini (para PHP-FPM)
    /etc/php/8.x/apache2/php.ini (para Apache)

    Adicione ou ajuste as diretivas conforme a seção anterior.

    Passo 3: Reinicie o serviço PHP

    Após alterar o php.ini, reinicie o PHP-FPM:

    sudo systemctl restart php8.x-fpm

    Ou reinicie o Apache, se for o caso:

    sudo systemctl restart apache2

    Passo 4: Teste o funcionamento com um arquivo phpinfo()

    Crie um arquivo phpinfo.php com:

    <?php phpinfo(); ?>

    E acesse via navegador para verificar se o OPcache está listado e ativo.

    Passo 5: Use plugin de monitoramento (opcional)

    Para facilitar o acompanhamento do OPcache em tempo real, instale o painel gráfico OPcache GUI no seu ambiente WordPress.

    Como verificar se o OPcache está funcionando

    Você pode verificar o status do OPcache no seu servidor PHP das seguintes formas:

    📄 Criando um arquivo phpinfo.php com:

    <?php phpinfo(); ?>

    📈 Usando o painel OPcache GUI

    🔍 Pelo terminal:

    php -i | grep opcache

    Como limpar o cache do OPcache (reset)

    Via terminal:

    php -r 'opcache_reset();'

    Via script PHP:

    <?php opcache_reset(); ?>

    Automatize após o deploy

    Adicione esse comando no seu script de CI/CD ou pós-deploy para garantir que o cache seja limpo sempre que houver atualização de código.

    Conclusão

    O OPcache é uma das formas mais eficazes de otimizar o desempenho de um site WordPress sem alterar nenhuma linha de código da aplicação. Quando bem configurado, ele reduz drasticamente o consumo de CPU, melhora o tempo de resposta do servidor e contribui diretamente para uma experiência mais rápida para o visitante.

    Por outro lado, é essencial entender seus limites e comportamentos para evitar problemas com deploys e desenvolvimento. Configurado com consciência, o OPcache é um aliado poderoso para qualquer projeto WordPress de alto desempenho.

  • WordPress não suporta alto tráfego ?

    WordPress não suporta alto tráfego ?

    WordPress alto tráfego: como escalar sem perder performance

    O WordPress é, de longe, o CMS mais popular do mundo. Mas quando o assunto é WordPress de alto tráfego, surgem dúvidas críticas: será que ele aguenta? Precisa de um servidor parrudo? Quais tecnologias usar para evitar lentidão, erros 502 ou quedas em dias de pico?

    Com mais de 13 anos de experiência em gerenciamento de servidores para WordPress, venho ajudando empresas e profissionais a manterem seus sites estáveis, rápidos e seguros — mesmo sob grandes volumes de acesso. Já administrei plataformas de e-commerce, portais de notícias, sistemas de marketing digital e outros projetos com tráfego intenso, onde a performance não é opcional — é essencial.

    Ao longo dessa jornada, é comum receber clientes em situação crítica: sites lentos, caindo em picos de audiência ou travando no momento em que mais precisam performar. E quase sempre a causa é a mesma — falta de uma infraestrutura preparada de verdade para lidar com WordPress de alto tráfego.

    Neste artigo, vou compartilhar exatamente o que funciona na prática, mostrando as melhores soluções e tecnologias para escalar WordPress com confiança. Seja você um dev/sysadmin buscando arquiteturas robustas, ou uma agência digital que precisa garantir estabilidade e performance aos seus clientes, aqui você vai encontrar um guia completo, direto ao ponto e com base na realidade de quem vive isso no dia a dia.

    Desafios comuns ao hospedar WordPress em ambientes de alto tráfego

    A primeira armadilha ao trabalhar com wordpress em alto tráfego é pensar que basta contratar uma hospedagem “premium” e esperar que tudo funcione. Mas o buraco é bem mais embaixo. Vamos aos principais gargalos:

    Processamento de PHP em excesso

    Cada requisição dinâmica executa PHP. Sem cache eficiente ou FPM bem ajustado, seu servidor sofre. E quando há plugins mal otimizados ou temas pesados, o cenário piora ainda mais.

    Banco de dados MySQL sobrecarregado

    Consultas não indexadas, uso excessivo de wp_options, plugins que abusam do banco… Tudo isso contribui para lentidão e sobrecarga.

    Cache não configurado (ou inexistente)

    Sem cache de página, cache de objetos (Redis/Memcached) ou headers HTTP corretos, o WordPress trabalha muito mais do que deveria.

    Falta de CDN e otimização de assets

    Se todo acesso bate direto no servidor, incluindo imagens, JS e CSS, o tráfego cresce descontroladamente — e sua infra sente.

    Arquitetura monolítica

    Hospedagens compartilhadas ou VPSs únicas limitam a escalabilidade horizontal. Sem separação de camadas (web, app, banco, cache), é difícil crescer.

    🚀 Tecnologias ideais para WordPress de alto tráfego

    Quando falamos em WordPress alto tráfego, a escolha da stack faz toda a diferença entre um site que suporte milhares de conexões simultâneas e outro site que com poucas conexões já fica indisponível.

    A seguir, vou detalhar os principais componentes e soluções que usamos para criar hospedagem realmente escaláveis e estáveis para WordPress.

    Nginx: servidor web leve e eficiente

    O Nginx é a escolha número 1 para ambientes de alto desempenho. Ele lida muito melhor com conexões simultâneas do que o Apache, graças à sua arquitetura assíncrona e event-driven. Ideal para servir conteúdo estático (imagens, JS, CSS), atuar como proxy reverso e aplicar cache na borda.

    Vantagens:

    • Baixo consumo de memória por conexão
    • Suporte nativo a cache de páginas estáticas
    • Pode ser usado como load balancer

    Redis ou Memcached: cache de objetos

    WordPress realiza muitas consultas repetidas ao banco, especialmente em páginas dinâmicas e com plugins pesados. O cache de objetos armazena os resultados dessas consultas na memória.

    Redis é preferido por ter mais recursos (como persistência e suporte a estruturas complexas), enquanto o Memcached é mais simples e leve.

    Usos comuns:

    • Integrado com object-cache.php
    • Suporte nativo em plugins como W3 Total Cache, LiteSpeed Cache, etc.

    PHP-FPM bem ajustado + OPcache ativo

    O PHP-FPM gerencia os workers que processam o PHP. Em alto tráfego, cada detalhe conta: número de processos, limites de memória, tempo de execução, etc.

    Dicas essenciais:

    • Use pm = static ou pm = ondemand dependendo da carga
    • Ative e configure o OPcache para reduzir a recompilação dos scripts PHP
    • Monitore o uso de CPU/RAM dos workers

    MySQL/MariaDB com tuning fino

    O banco de dados é um dos principais gargalos em WordPress. Com muitos acessos, queries mal planejadas ou falta de índices, o MySQL se torna o calcanhar de Aquiles.

    Boas práticas:

    • Ajustar buffers e cache (innodb_buffer_pool_size, query_cache_size, etc.)
    • Monitorar slow queries
    • Separar banco de dados em outro servidor ou container
    • Utilizar réplicas para leitura (read replicas)

    CDN (Cloudflare, Bunny, etc.)

    Uma CDN é indispensável em qualquer projeto com tráfego elevado. Ela reduz a carga do servidor ao entregar conteúdo estático direto dos nodes mais próximos do usuário.

    Benefícios:

    • Reduz latência e largura de banda consumida
    • Ajuda na mitigação de DDoS
    • Pode aplicar cache e regras de segurança (WAF)

    Elasticsearch para buscas internas complexas

    O sistema de busca nativo do WordPress usa LIKE '%palavra%', o que é péssimo para performance. Se o seu site tem muitos produtos, posts ou filtros — Elasticsearch resolve.

    Vantagens:

    • Busca rápida e relevante
    • Filtros combinados sem pesar no banco
    • Plugins como ElasticPress integram fácil

    Varnish como cache reverso HTTP

    Para sites com altíssimo volume de leitura e baixa taxa de atualização, o Varnish pode fazer maravilhas. Ele armazena páginas completas em RAM e entrega em milissegundos.

    Recomendações:

    • Precisa de integração com Nginx ou Apache
    • Demandará headers corretos para purga e controle de cache
    • Ideal quando combinado com cache de objetos e CDN

    Exemplos de arquiteturas escaláveis para WordPress de alto tráfego

    Não existe uma única fórmula para escalar WordPress — depende do projeto, do time e dos objetivos. Mas abaixo estão dois modelos recorrentes que aplico em ambientes de produção: um baseado em infraestrutura tradicional e outro containerizado.

    1. Arquitetura escalável clássica (bare metal ou VPS dedicados)

    Essa estrutura é ideal para projetos que exigem alto desempenho e previsibilidade, com controle total sobre os servidores. Utilizada por agências, portais de conteúdo, e-commerces e plataformas de marketing com tráfego intenso.

    [ Cloudflare CDN ] 
            
    [ NGINX Load Balancer ]
            
    [ NGINX + PHP-FPM (Web) ]  ← múltiplas instâncias, escaláveis horizontalmente
            
    [ Redis / Memcached (cache de objetos) ]
            
    [ MySQL/MariaDB com réplica de leitura ]
            
    [ ElasticSearch (se necessário) ] 

    Características:

    • Separação clara de camadas
    • Escalabilidade horizontal na camada web
    • Failover e replicação na camada de banco
    • Gerenciado via Ansible, scripts ou painel como RunCloud/GridPane

    2. Arquitetura com Docker + Docker Compose

    Boa escolha para devs e agências com CI/CD, que querem automação e facilidade de deploy local e em cloud.

    - nginx
    - php-fpm
    - mariadb
    - redis
    - elasticsearch (opcional)
    - varnish (opcional)

    Vantagens:

    • Reprodutibilidade de ambiente local → produção
    • Deploys versionados com Git + CI
    • Infra como código

    Ferramentas sugeridas:

    • Traefik como reverse proxy e SSL automatizado
    • Docker volumes para persistência segura
    • Watchtower ou GitHub Actions para automação de deploys

    3. Arquitetura com Kubernetes (K8s)

    A escolha para projetos mission-critical com milhões de acessos, alta disponibilidade e deploys contínuos.

    Ingress Controller (NGINX/Traefik)
            
    WordPress Pods com PHP-FPM
            
    Redis/Memcached Pods
            
    MySQL Cluster (Galera ou RDS/Aurora)
            
    ElasticSearch (opcional)
    + Persistent Volumes via CSI (EFS, Ceph, etc.)
    + Horizontal Pod Autoscaler (HPA)

    Benefícios:

    • Autoescalonamento real por carga
    • Tolerância a falhas nativa
    • Fácil integração com CI/CD (ArgoCD, Flux, etc.)
    • Ideal para cloud-native (AWS, GCP, Azure, etc.)

    Em todos os cenários, o segredo está em orquestrar bem os serviços, monitorar com consistência e aplicar boas práticas desde o deploy até o ajuste fino do sistema operacional.

    Dicas de otimização de performance e segurança para WordPress de alto tráfego

    A performance de um WordPress sob carga intensa não depende apenas da infraestrutura. Pequenos ajustes e boas práticas fazem toda a diferença para extrair o máximo de cada recurso. Aqui estão as recomendações mais eficazes que aplico em produção:

    1. Escolha um provedor de infraestrutura confiável e escalável

    Antes de pensar em ajustes finos, a base precisa estar sólida. Escolher um provedor de hospedagem que suporte escalabilidade, performance e controle é o primeiro passo para qualquer ambiente WordPress de alto tráfego.

    O que avaliar na escolha:

    • Recursos escaláveis sob demanda: CPU, RAM, disco e IOPS devem poder ser ajustados conforme o crescimento.
    • Rede de baixa latência: bons peers, conexão redundante e presença em data centers confiáveis.
    • Acesso root e liberdade de configuração: essencial para sysadmins que vão ajustar PHP-FPM, NGINX, banco, cache, etc.
    • Suporte a balanceadores e IPs flutuantes: importante para alta disponibilidade e failover.
    • Faturamento previsível ou por consumo: depende do perfil do projeto, mas transparência é essencial.

    Provedores recomendados:

    • DigitalOcean, Vultr, Hetzner (boa performance e custo-benefício)
    • AWS (EC2 + RDS), Google Cloud, Azure (mais robustos, com foco em HA e integração com K8s)
    • OVH, Linode, Oracle Cloud (dependendo da região, podem ser ótimas opções)

    Atenção

    Evite hospedagens compartilhadas ou gerenciadas genéricas, quando o seu projeto realmente precisar de servidor para alto tráfego. Empresas como hostgator, hostinger, godaddy e tantas outras são indicadas para projetos de pequeno porte, sem demanda real de processamento e recursos.

    2. Ative e configure corretamente o cache de página

    Mesmo com Redis ou Memcached ativos, nada substitui um bom cache de página. Isso elimina a execução de PHP e consultas SQL para visitantes anônimos.

    Ferramentas recomendadas:

    • LiteSpeed Cache (se usar OpenLiteSpeed ou LiteSpeed Web Server)
    • WP Rocket (pago, mas muito eficaz)
    • Nginx FastCGI Cache (nível de servidor, super eficiente)

    Dica: Combine cache de página com regras de purga inteligentes para conteúdos dinâmicos (como e-commerce).

    3. Limite ataques e abusos com segurança na borda

    Muitos gargalos vêm de bots, scrapers ou ataques simples como brute force no login.

    Ações recomendadas:

    • Use Cloudflare com WAF e rate limiting ativo
    • Bloqueie /wp-login.php e /xmlrpc.php para países ou IPs específicos
    • Adicione autenticação básica HTTP no wp-admin para proteção extra

    4. Evite plugins pesados ou mal codificados

    Alguns plugins são verdadeiros vilões da performance. Eles criam queries lentas, loops desnecessários ou carregam scripts em todas as páginas.

    Boas práticas:

    • Audite com Query Monitor ou New Relic
    • Use alternativas otimizadas (por ex: WPForms no lugar de Contact Form 7)
    • Desative e remova o que não for essencial

    5. Otimize o banco de dados regularmente

    WordPress deixa rastros: revisões, transientes expirados, entradas inúteis no wp_options.

    O que fazer:

    • Use o WP-Optimize para limpar revisões, spam e lixeira
    • Mantenha índices SQL otimizados com ferramentas como pt-query-digest
    • Evite autoload em excesso no banco (comando: SELECT * FROM wp_options WHERE autoload = 'yes')

    6. Desabilite recursos que você não usa

    Reduza consumo de CPU e memória cortando o que não é necessário:

    • Desative emojis (remove_action('wp_head', 'print_emoji_detection_script', 7);)
    • Remova embeds, REST API pública, e heartbeat em excesso
    • Carregue apenas os scripts essenciais em cada página (com plugins como Asset CleanUp)

    7. Utilize CDN para tudo que for estático

    Além de imagens, JS e CSS, dá pra entregar fontes, vídeos e até páginas cacheadas via CDN.

    • Cloudflare (gratuito e eficaz)
    • BunnyCDN (baixo custo, altíssimo desempenho)
    • Configure headers e tempo de cache para aproveitamento máximo

    8. Monitore constantemente

    Monitoramento é essencial para manter alta performance no longo prazo.

    • Uptime + health check: UptimeRobot, Better Uptime
    • Performance: New Relic, Query Monitor, WP Performance Profiler
    • Logs e alertas: Grafana + Prometheus ou Loki, integrados via Fluentd ou Filebeat

    Com essas práticas aplicadas, é possível manter sites WordPress ágeis, seguros e prontos para escalar — mesmo em campanhas de tráfego pago, cobertura de eventos ou promoções de alto impacto.

    Conclusão

    Hospedar um WordPress de alto tráfego com performance e estabilidade exige mais do que uma boa hospedagem — é preciso uma infraestrutura bem planejada, otimizações de sistema e monitoramento constante.

    Com a stack certa e boas práticas, seu site pode escalar com segurança e velocidade, mesmo nos momentos de pico.

    Quer ajuda para escalar seu WordPress de alto tráfego?

    Trabalho há mais de 10 anos com infraestrutura e performance para WordPress, atendendo projetos críticos como:

    • Portais de notícia com milhões de acessos
    • Lojas virtuais com alta conversão e campanhas pagas
    • Plataformas de lançamento digital e marketing de conteúdo
    • Plataformas Streaming/Adulto
    • Plataformas Delivery

    Se você precisa de um ambiente realmente otimizado, seguro e pronto para crescer, entre em contato. Posso te ajudar a desenhar, montar ou migrar toda sua estrutura.

    💬 Vamos conversar? Me chame para uma consultoria técnica ou projeto sob demanda.

  • Guia completo otimização WordPress

    Guia completo otimização WordPress

    Introdução a Otimização WordPress

    A otimização WordPress é essencial para garantir um site rápido e eficiente. Por exemplo, problemas como imagens não otimizadas ou hospedagem inadequada afetam diretamente o desempenho. Além disso, resolver esses pontos melhora a experiência do usuário e o SEO.

    No entanto, apenas identificar problemas não basta; é necessário agir. Por isso, a otimização WordPress abrange ajustes no código, implementação de cache e melhorias na infraestrutura. Dessa forma, seu site se torna mais rápido e confiável.

    Portanto, investir em técnicas de otimização é indispensável. Por fim, ferramentas como PageSpeed Insights e melhorias na hospedagem e CDN garantem que a otimização WordPress seja completa e eficaz.

    Neste guia, você aprenderá estratégias práticas para resolver os principais problemas de otimização e performance WordPress.

    Por que o tempo de carregamento é importante
    para seu site WordPress?

    O tempo de carregamento é crucial para o sucesso de um site WordPress, influenciando diretamente a experiência do usuário, as taxas de conversão e o posicionamento nos mecanismos de busca. 

    Estudos indicam que 40% dos visitantes abandonam uma página que demora mais de três segundos para carregar. Além disso, um atraso de um segundo pode resultar em uma redução de 7% nas conversões. 

    Portanto, otimizar o tempo de carregamento é essencial para manter os usuários engajados e uma boa otimização wordpress deve ser realizada.

    Principais Causas de Lentidão no WordPress

    A lentidão em sites WordPress pode ser causada por código desnecessário ou mal otimizado, como temas e plugins pesados, imagens não compactadas e excesso de scripts ou CSS não minificados.

    Além disso, no lado da hospedagem, fatores como planos inadequados, servidores lentos e configurações desatualizadas também contribuem para o baixo desempenho.

    A seguir, exploraremos diversos cenários para realizar otimizações no WordPress.

    Uma hospedagem inadequada pode ser uma das principais causas de lentidão e problemas de otimização em sites WordPress, especialmente quando não oferece os recursos mínimos necessários para uma execução eficiente do código. 

    Servidores mal configurados ou com limitações técnicas podem dificultar o carregamento rápido e a estabilidade do site. 

    Plugins e temas mal otimizados são grandes vilões da performance no WordPress. Eles podem incluir códigos desnecessários, carregar arquivos pesados ou fazer chamadas excessivas ao banco de dados, resultando em lentidão no site. 

    É fundamental escolher plugins e temas leves, bem avaliados e atualizados regularmente para garantir eficiência e evitar sobrecarga no servidor.

    Imagens não otimizadas e fora dos padrões atuais podem ser um grande problema para a velocidade de um site WordPress. Arquivos grandes e formatos antiquados, como BMP ou TIFF, aumentam significativamente o tempo de carregamento das páginas.

    Para evitar isso, é essencial comprimir as imagens sem perder qualidade e usar formatos modernos, como WebP, que são mais leves e eficientes.

    A ausência de cache, seja no navegador, servidor ou CDN, é uma das principais causas de lentidão em sites WordPress. Sem cache, cada solicitação ao site precisa ser processada do zero, consumindo mais recursos do servidor e aumentando o tempo de carregamento.

    Implementar cache de página, objetos e navegador reduz significativamente o uso de recursos e garante uma experiência mais rápida para os usuários.

    Um banco de dados desorganizado pode prejudicar gravemente o desempenho de um site WordPress. Com o tempo, dados desnecessários, como revisões de posts, comentários de spam e transientes expirados, se acumulam, tornando as consultas mais lentas.

    Manter o banco de dados otimizado com limpezas regulares e índices bem estruturados é essencial para garantir rapidez e eficiência nas operações do site.

    Scripts e CSS não minificados aumentam o tamanho dos arquivos e o número de requisições ao servidor, impactando negativamente o tempo de carregamento. 

    Minificar esses arquivos reduz espaços, comentários e linhas desnecessárias, tornando o site mais leve e rápido.

    Como identificar problemas de otimização WordPress

    Ferramentas de análise de velocidade e performance são indispensáveis para identificar os fatores que impactam negativamente o desempenho de um site WordPress. Elas fornecem métricas detalhadas, como tempo de carregamento, TTFB (Time to First Byte) e LCP (Largest Contentful Paint), além de sugestões práticas para otimização. 

    Utilizá-las é o primeiro passo para entender gargalos e implementar melhorias de forma eficaz.

    Ferramentas para otimização WordPress

    Existem diversas ferramentas para análise de velocidade e performance que ajudam a identificar problemas em sites WordPress. Neste artigo, destacaremos o PageSpeed Insights, uma solução poderosa para avaliar e te ajudar na otimização wordpress.

    O PageSpeed Insights é uma ferramenta gratuita do Google que analisa o desempenho de sites em dispositivos móveis e desktops. Ele fornece uma pontuação baseada em métricas como velocidade de carregamento e sugere melhorias para otimizar o desempenho do site.

    O Pingdom e o GTmetrix também são ferramentas populares para analisar a velocidade do site, permitindo avaliar o desempenho das páginas do seu WordPress.

    Analisando performance com PageSpeed Insights

    Visite o site oficial do PageSpeed Insights e insira a URL do seu site para iniciar a análise.

    https://pagespeed.web.dev

    Você receberá uma análise detalhada para dispositivos móveis e desktops, abrangendo Desempenho, Acessibilidade, Práticas Recomendadas e SEO. Cada categoria será avaliada com uma nota de 0 a 100, indicando o nível de otimização do site.

    😁 Não se preocupe com a quantidade de problemas apontados pela ferramenta! 

    Felizmente, muitos deles têm soluções simples, e neste artigo você encontrará o caminho certo para resolvê-los. Basta continuar lendo!

    Como otimizar a velocidade do site WordPress?

    Existem centenas de técnicas e ferramentas para otimização WordPress, abrangendo etapas como hospedagem, CDN e ajustes no próprio site. Em alguns casos, corrigir apenas um desses aspectos pode resultar em uma melhora significativa, enquanto em outros será necessário otimizar toda a estrutura. A partir de agora, abordaremos soluções técnicas detalhadas para guiar você na melhor estratégia de otimização WordPress.

    A hospedagem WordPress em servidor dedicado é uma solução onde um servidor inteiro é reservado exclusivamente para o seu site ou aplicação. Dessa forma, todos os recursos, como CPU, memória e armazenamento, são 100% dedicados, oferecendo máxima performance, estabilidade e personalização para projetos que demandam alto desempenho.

    No entanto, optar por um servidor WordPress dedicado exige maior responsabilidade, já que a configuração e o gerenciamento ficam por conta do proprietário ou de uma equipe especializada.

    Além disso, com recursos robustos, como grande capacidade de processamento e armazenamento avançado, essa hospedagem é ideal para sites WordPress de alto tráfego, como e-commerces e portais de notícias, que precisam de um ambiente estável e escalável. Por fim, é importante avaliar se o seu projeto justifica o investimento e a administração técnica desse tipo de serviço.

    Vídeo Aula Vultr: Configuração VPS WordPress

    Vídeo Aula DigitalOcean: Configuração VPS WordPress

     Cadastre na Vultr ou Digital Ocean através dos banners abaixo, insira $5 dólares e receba até R$1.500,00 reais em créditos na Vultr e até R$1.000,00 na Digital Ocean.

    Escolher temas e plugins leves e eficientes é essencial para garantir um site WordPress otimizado e rápido. Além disso, temas bem desenvolvidos e plugins que utilizam código limpo reduzem o consumo de recursos do servidor, melhoram o desempenho e ajudam na otimização WordPress.

    Essa prática é fundamental para manter a velocidade e estabilidade do site, proporcionando uma melhor experiência para os usuários. 

    Conheça os principais plugins e templates otimizados

    Para escolher um bom tema ou plugin, priorize opções bem avaliadas e amplamente utilizadas, com atualizações frequentes e suporte ativo.

    Além disso, prefira aqueles que são leves, compatíveis com as versões mais recentes do WordPress e oferecem apenas as funcionalidades necessárias, evitando sobrecarregar o site.

    Assim, você garante uma experiência mais rápida e eficiente para os usuários.

    Na maioria dos casos, configurar corretamente o cache no WordPress melhora significativamente a performance do site. Além disso, o cache impacta diretamente na velocidade de carregamento das páginas e no tempo de resposta, garantindo uma experiência mais ágil para os usuários. 

    Configurando Cache de Página e Browser

    O cache de página armazena versões estáticas das páginas do site, reduzindo o processamento no servidor a cada visita.

    Já o cache de navegador guarda elementos como imagens e CSS no dispositivo do usuário, agilizando o carregamento em acessos futuros.

    Existem centenas de plugins para configurar cache de página e cache de navegador, variando entre gratuitos, pagos e com funcionalidades limitadas. 

    No entanto, recomendo apenas três: WP Rocket, W3 Total Cache e LiteSpeed Cache, por serem eficientes e amplamente confiáveis.

    Todos esses plugins ajudam a resolver a maioria dos problemas de otimização WordPress, incluindo questões críticas de desempenho.

    Além disso, eles oferecem soluções para muitos dos problemas que ainda abordaremos neste artigo, garantindo um site WordPress rápido e eficiente.

    Vídeo Aula: Plugin LiteSpeed https://www.youtube.com/watch?v=BxldFybE3yM

    Vídeo Aula:Plugin WP Rocket https://www.youtube.com/watch?v=t2cQf7GLVLQ

    Vídeo Aula: Plugin W3 Total Cache https://www.youtube.com/watch?v=iREM-d7ho2E

    Configurando Cache de Objetos

    Para cache de objetos, o Redis é uma das melhores opções disponíveis, pois alivia a carga do banco de dados ao armazenar consultas em memória. Além disso, ações realizadas enquanto estamos logados no site tornam-se mais rápidas e fluidas. Em sites com grandes volumes de páginas, o Redis também melhora significativamente a navegação, garantindo uma experiência mais ágil.

    Vídeo Aula: Plugin Redis Cache

    Otimização de Imagens

    A otimização de imagens é essencial para garantir uma experiência de usuário rápida e eficiente em sites WordPress. Imagens não compactadas ou em formatos inadequados podem aumentar significativamente o tempo de carregamento, prejudicando a navegação e impactando negativamente o SEO. Por isso, otimizar imagens é um passo indispensável na otimização WordPress.

    Além disso, o uso de ferramentas como ShortPixel ou Smush permite comprimir imagens sem perder qualidade, enquanto formatos modernos como WebP reduzem ainda mais o tamanho dos arquivos. Dessa forma, é possível manter um site mais leve e rápido, melhorando a performance geral e contribuindo para uma experiência fluida. Por fim, otimizar imagens regularmente é uma prática fundamental para alcançar um site WordPress rápido e eficiente.

    Principais plugins de otimização de Imagens

    Existem diversos plugins, gratuitos e pagos, muitos dos quais possuem limites para otimização de imagens, o que pode ser bastante frustrante.

    Conheça os melhores plugins para otimização de imagens em sites WordPress:

    • Smush
    • ShortPixel Image Optimizer
    • EWWW Image Optimizer
    • Imagify
    • reSmush.it Image Optimizer

    Conversão de imagens para formato WebP

    O WebP é um formato de imagem desenvolvido pelo Google que oferece compressão superior, mantendo alta qualidade visual. Além disso, ele reduz significativamente o tamanho dos arquivos em comparação com JPEG e PNG, o que impacta diretamente na performance do site, proporcionando um carregamento mais rápido e melhorando a experiência do usuário.

    Para conversão de imagens para WebP utilizo o plugin abaixo:

    Todos os plugins citados acima têm suas particularidades e são excelentes. Particularmente, utilizo o plugin EWWW Image Optimizer, pois, mesmo no plano gratuito, consigo otimizar as imagens no momento exato do upload no WordPress, garantindo imagens leves e devidamente otimizadas.

    Vídeo Aula: Otimizando Imagens

    Conclusão

    Este artigo não está completo estou constantemente revisando e atualizando o conteúdo para garantir que você tenha acesso às informações mais relevantes e práticas sobre o tema.

    Todo o material aqui é fruto de muito estudo e experiência real em projetos, e nosso objetivo é sempre reunir o melhor conhecimento para apoiar profissionais, desenvolvedores e empresas em sua jornada.

    Volte regularmente para conferir as novidades e melhorias que adicionamos.

  • Instalação WordPress na Amazon AWS 2025

    Instalação WordPress na Amazon AWS 2025

    Execute e hospede sites WordPress no Amazon AWS

    A Amazon AWS é reconhecida como um dos provedores mais confiáveis para hospedagem de sites WordPress. No entanto, a instalação do WordPress na AWS pode representar um desafio significativo, especialmente para usuários iniciantes que não estão familiarizados com a AWS e servidores Linux.

    Esse artigo é indicado para o público leigo que precisa implementar um servidor EC2 para wospedagem wordpress na Amazon AWS de modo fácil e rápido.

    Como hospedar site WordPress no EC2 AWS ?

    Na AWS, há uma vasta gama de opções e cenários para hospedagem de sites WordPress. Essa diversidade de opções na AWS pode ser desconcertante para muitas pessoas, pois pode ser desafiador compreender o que fazer e como implementar seus projetos de hospedagem.

    1. Imagem AWS WordPress Bitnami

    A imagem Bitnami para WordPress na AWS é tipo uma caixinha pronta pra usar o WordPress na nuvem. É fácil e rápida de começar, já vem pré-pronta, e faz toda a mágica de deixar seu site WordPress funcionando sem complicação. É indicada para pequenos sites e blogs.

    2. Imagem AWS WordPress OpenLiteSpeed

    A imagem do OpenLiteSpeed na AWS oferece um desempenho superior em comparação à imagem do Bitnami, proporcionando maior poder de performance. No entanto, a configuração pode ser um pouco desafiadora para usuários menos familiarizados com o ambiente. Em resumo, é como ter um veículo mais potente, mas é necessário um pouco mais de conhecimento para operá-lo.

    3. Imagem AWS cPanel & WHM

    A imagem do cPanel & WHM na AWS apresenta configurações padrão, o que é adequado para hospedar sites WordPress mais simples.

    4. Cluster EC2 WordPress

    Hospedar o WordPress em um cluster na AWS pode ser desafiador, pois envolve uma configuração mais complexa. No entanto, essa abordagem é comumente adotada por grandes portais de notícias e plataformas de conteúdo para garantir escalabilidade e alta disponibilidade.

    5. AWS WordPress AutoScaling

    Essa modalidade é essencialmente semelhante ao modelo de cluster, mas com a adição do Scaling Automático habilitado. Isso permite lidar de maneira mais eficaz com picos de acesso e demanda no WordPress, garantindo uma escalabilidade dinâmica para otimizar o desempenho em momentos de alta demanda.

    Leia o nosso mais novo artigo: WordPress com AutoScaling na AWS

    6. Imagens Docker com Fargate ou Amazon EKS para WordPress

    Hospedar WordPress em tecnologia docker com o AWS Fargate e EKS é uma opção visando grandes ambientes escaláveis.  

    E muitos outros….

    Se você busca um serviço profissional de hospedagem WordPress na Amazon AWS, ficaremos gratos em atendê-lo. Implementamos uma variedade de cenários na AWS, incluindo AutoScaling, Cluster, entre outros. Entre em contato conosco para discutir suas necessidades específicas e oferecer soluções personalizadas para garantir a melhor performance e confiabilidade para sua hospedagem WordPress.

    Neste artigo, vamos instalar o WordPress na AWS usando a imagem da Bitnami, que é o ponto de partida para a maioria dos projetos de pequeno porte. Antes de prosseguir, você já possui conhecimento sobre como criar um servidor EC2 na AWS? Caso não tenha familiaridade, recomendo assistir a este vídeo, onde faço uma breve introdução sobre a configuração de servidores EC2. 

    ASSISTA A AULA SOBRE AMAZON EC2

    Nosso servidor WordPress na AWS contará com as seguintes especificações:

    • Família: t3.micro
    • CPU: 2
    • RAM: 1 GB
    • Disco: 8 GB
    • Rede: 1 IPv4
    • AMI: WordPress with NGINX and SSL
    • Custo: Aproximadamente $15 mensal

    1. Criação AWS EC2 com Imagem Bitnami WordPress

    Vamos iniciar a configuração do nosso servidor. Faça login na plataforma da AWS e, na barra de pesquisa, digite “EC2”. Em seguida, clique na opção listada para ser direcionado à tela de serviços do EC2.

    Em seguida, clique em “Executar Instância” e, posteriormente, em “Executar Instância” novamente.

    Na próxima tela, faremos a seleção de serviços e ajustaremos as configurações adequadas para nosso servidor EC2. Na segunda seção da tela, você definirá a AMI do servidor, que é essencialmente a imagem do sistema operacional a ser escolhida.

    Muitas AMIs já vêm com configurações predefinidas, simplificando bastante nosso trabalho. Na barra de pesquisa, digite “WordPress” e pressione Enter.

    Você verá várias imagens de servidores com WordPress listadas. Escolha a “WordPress com Nginx” da Bitnami. Clique em “Select” para selecionar a imagem desejada e, em seguida, clique em “Continue” para prosseguir.

    Confirme as alterações

    Observe que você retornou para a página de configuração do EC2, e a AMI já está selecionada. Agora, avancemos para a próxima etapa, que é escolher o tipo de instância.

    Por padrão, foi selecionada a instância t3a.small, mas optaremos pela t3.micro por ser mais econômica. Clique na caixa de seleção, pesquise por “t3.micro” e faça a seleção.

    Na etapa seguinte, selecione a sua chave SSH já configurada na AWS, ou, se necessário, crie uma nova chave SSH. Essa chave é fundamental para acessar o servidor por meio do SSH.

    Agora, você pode manter as configurações abaixo inalteradas, a menos que opte por aumentar o tamanho do disco ou realizar configurações específicas de rede. Eu optei por manter as configurações padrão e criei meu servidor clicando em “Executar Instância”.

    Agora, retorne à tela inicial da console do EC2 e observe a instância sendo iniciada.

    Perfeito! Seu servidor está sendo iniciado, e podemos avançar para o próximo tópico.

    2. Configurando apontamentos de DNS

    Ao iniciar nosso servidor, já podemos direcionar o domínio do nosso site WordPress para o servidor e, em seguida, instalar o SSL no domínio com o Let’s Encrypt.

    Acesse o provedor onde você gerencia o DNS do seu domínio (CloudFlare, registro.br, Godaddy, Hostgator, Route53) e crie ou atualize os registros (A) e/ou (CNAME) para apontar seu domínio para o IP do novo servidor.

    No meu caso, o domínio aws.dev.br está vinculado a um IP, e é esse IP que vou atualizar com o endereço do meu novo servidor. Quanto ao registro www.aws.dev.br, vou mantê-lo como está, pois ele redireciona para o domínio aws.dev.br.

    Após realizar essa alteração, aguarde algum tempo para a propagação. Esse processo pode levar minutos ou até horas. Assim que concluído, você poderá acessar o WordPress pelo navegador, uma vez que ele já vem pré-instalado.

    Entendido! Agora, vamos acessar o servidor para obter as credenciais de acesso ao WordPress. Vamos lá!

    3. Descobrindo dados de login do WordPress

    Perfeito! Vamos acessar o servidor via SSH utilizando o usuário padrão “bitnami”. 

    Prossiga com esses passos para acessar o servidor e recuperar as informações necessárias.

    # Acesso SSH
    ssh -i suachave.pem bitnami@ip_server
    # Exibindo credenciais
    cat bitnami_credentials

    Ao acessar o servidor via SSH, as credenciais para o administrador do WordPress serão exibidas para você. Agora, você pode usar essas informações para entrar no painel de administração do WordPress.

    4. Emitindo SSL Let’s Encrypt para o domínio

    Agora, vamos instalar o SSL no nosso site WordPress com o Let’s Encrypt, pois até o momento não está ativo! No servidor, execute todos os comandos abaixo:

    sudo su root
    cd /tmp
    curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
    tar -xvzf lego_v4.8.0_linux_amd64.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
    sudo /opt/bitnami/ctlscript.sh stop

    Agora sim, executamos o comando de instalação do SSL. Execute o comando inserindo o seu e-mail e o domínio do seu site.

    sudo /opt/bitnami/letsencrypt/lego --tls --email="email@aws.dev.br" --domains="aws.dev.br" --domains="www.aws.dev.br" --path="/opt/bitnami/letsencrypt" run

    Nosso certificado SSL foi emitido, mas ainda precisamos configurar alguns arquivos para que o Nginx reconheça o certificado corretamente. Execute todos os comandos abaixo e substitua os valores de DOMAIN pelo nome do seu certificado.

    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
    sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.csr /opt/bitnami/nginx/conf/bitnami/certs/server.csr.old
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
    sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
    sudo chown root:root /opt/bitnami/nginx/conf/bitnami/certs/server*
    sudo chmod 600 /opt/bitnami/nginx/conf/bitnami/certs/server*
    sudo /opt/bitnami/ctlscript.sh start

    Se tudo o que fizemos até o momento ocorreu conforme o esperado, visite sua página acessando o site https://seusite e confira o resultado.

    Sucesso! WordPress pronto para uso!

    Conclusão: WordPress AWS

    Agora possuímos um servidor EC2 na AWS com WordPress e SSL instalados. A partir de agora, você pode dar continuidade ao seu projeto. Vale ressaltar que esse modelo é mais adequado para projetos menores, onde não são necessárias muitas customizações ou infraestrutura avançada.

    Aqui no blog, já compartilhei diversos conteúdos sobre a AWS. Recomendo a leitura de alguns para que você se familiarize o máximo possível.

      🚀 Precisa de ajuda profissional para hospedar seu WordPress na AWS?

      Se você quer performance, segurança e escalabilidade de verdade, eu posso te ajudar.
      Hospedo, configuro e otimizo ambientes WordPress completos na AWS — sob medida para sua demanda.

      ✅ Infraestrutura profissional com EC2, RDS, CloudFront, Auto Scaling
      ✅ Configuração personalizada para sites, blogs, lojas ou portais de conteúdo
      ✅ Mais de 10 anos de experiência com servidores Linux e cloud

      👉 Fale comigo e leve seu WordPress para outro nível:
      🔗 Suporte e Gerenciamento Hospedagem WordPress AWS

    • Considerações Finais

      Chegamos ao final da nossa jornada na implementação de um servidor para hospedagem de site WordPress. Desde o primeiro capítulo até o anterior, você aprendeu a configurar: Nginx, PHP, MySQL, SSL, Segurança e Backups.

      O que fazer agora ?

      Bom, a nossa hospedagem wordpress está pronta para uso! Você poderá utilizar em projetos de pequeno porte, sites institucionais, pequenos blogs e projetos que estão em fase inicial.

      Se você vai trabalhar com lojas woocommerce, portais de notícias e projetos wordpress que tem muito tráfego, a história muda pois o nível de configuração também será diferente. Logo, não replique isso em projetos de grande porte.

      No entanto, o seu servidor atual já entrega mais performance e qualidade do que 90% dos provedores tradicionais de hospedagem de sites. Digo isso com absoluta certeza, pois trabalho com vários diariamente em projetos de migração.

      Espero que tenham gostado dessa jornada, te encontro na próxima!

      Abraços.

    • Monitoramento da Hospedagem WordPress

      Monitoramento da Hospedagem WordPress

      Observando, analisando e cuidando do servidor.

      Observabilidade é a palavra chave quando pensamos em manter um servidor wordpress sempre saudável e estável. É observando e analisando logs e dados em realtime que podemos entender e descobrir o que pode ser mudado, ou até mesmo o que está causando lentidões e gargalos.

      O que podemos monitorar e analisar ?

      Existe uma centena de ferramentas pagas e opensource no mercado com foco em monitoramento de infraestrutura e serviços e não vou julgar qual é a melhor, pois cada uma pode atender um projeto em um determinado momento da empresa.

      Para monitoramento do Nginx, PHP, MySQL e Hardware, podemos utilizar ferramentas como:

      • Nginx Amplify
      • Zabbix
      • Prometheus e Grafana
      • Site24x7
      • NewRelic
      • Dynatrace
      • Datadog
      • Etc

      Nesse capítulo vamos utilizar o Nginx Amplify para o LEMP , mas seria interessante você também utilizar o Site24x7 por exemplo, para monitoramento de Rede,Disco,RAM,CPU e Validade do SSL.

      Se você possui um e-commerce, ou qualquer projeto que realmente precise de cuidados 24×7, recomendo pesquisar mais sobre NewRelic, Prometheus com Grafana e Datadog. Por possuírem mais recursos e opções para nossa observabilidade de infraestrutura.

      Monitoramento com Nginx Amplify

      O Nginx Amplify é uma ferramenta totalmente gratuita e bem intuitiva na verdade. Para começarmos a configura-lo precisamos realizar o cadastro no site oficial pois é por lá que vamos acompanhar nossos dashboards.

      Primeiro passo: Cadastro

      Acessem o site oficial e realizem o cadastro através do link: https://amplify.nginx.com/login

      Segundo passo: Instalação do Agente

      Assim que você realiza o cadastro, você vai cair em uma tela onde será solicitado que você instale o agente do Nginx Amplify no servidor. É através desse agente que o Enginx Amplify consegue coletar dados e estatísticas dos nossos serviços.

      Você vai acessar o servidor via SSH e executar as etapas 2, 3 e após concluir a etapa 3, clicar em Continue no navegador.

      Em seguida o Ngin Amplify vai aguardar pelos dados recebidos do agente, sugiro aguardar os minutos que é apresentado na tela.

      Após alguns minutos, você vai ser redirecionado para uma segunda página, e é apresentado o passo a passo do que fazer para configurar o Nginx para enviar os dados para o Amplify. E é isso que faremos agora!

      Integrando o Amplify no Nginx

      Siga os passos indicados na imagem, exatamente na mesma ordem e clica em continuar após executar as etapas. Nesse momento o Nginx Amplify irá aguardar os dados enviados pelo agente a respeito do serviço Nginx no servidor.

      Após alguns minutos, conforme o seu site vá recebendo requisições, você notará que os dados começarão aparecer na tela. O básico do que aparecerá são:

      • Requests no nginx
      • Conexões correntes
      • Erros 400
      • Erros 500
      • Memória consumida pelo Nginx
      • CPU consumido pelo Nginx

      E se clicar no menu em Overview verá também um resumo bem legal sobre as estatísticas de uptime, requests, erros 5xx,

      Integrando o Amplify no PHP-FPM

      Agora vamos configurar o Nginx Amplify para coletar dados e estatísticas de consumo do PHP-FPM. No painel não temos o passo a passo facilitado, mas felizmente vou comentar todos os passos aqui para você.

      Acesse o servidor via SSH, e abra o arquivo do pool fpm default, com o comando abaixo:

      nano /etc/php/8.0/fpm/pool.d/www.conf

      Procure a linha pm.status_path e descomente-a.

      Salve o arquivo e reinicie o PHP.

      /etc/init.d/php8.0-fpm restart

      No Nginx Amplify, clique em Graph e em seguida php-fpm, depois de um tempo começará ver os dados chegando, como: conexões queue, conexões, processos, requests lentas, etc.

      Integrando o Amplify no MySQL

      O agente do Nginx Amplify também consegue coletar métricas e processos de bancos de dados MySQL, mas para isso precisamos realizar alguns passos para que possamos deixar isso funcionando.

      1. Acesse o MySQL pelo terminal de comando com o usuário root

      mysql -uroot -p

      2. Crie um usuário para o agente

      # defina uma senha em xxxxxx
      CREATE USER 'amplify-agent'@'localhost' IDENTIFIED BY 'xxxxxx';
      exit;

      3. Logue agora com o usuário amplify-agent e veja se está tudo ok

      mysql -u amplify-agent -p
      
      show global status;
      
      exit;

      4. Agora precisamos adicionar um conteúdo ao arquivo de configuração para que o agente consiga se conectar ao banco e coletar as métricas. Abra o arquivo de configurações do agente com o comando abaixo:

      nano /etc/amplify-agent/agent.conf

      Agora adicione o conteúdo na última linha, e lembre de colocar a senha do usuário do agente que criamos nos passos anteriores em password.

      [extensions]
      ..
      mysql = True
      
      [mysql]
      #host =
      #port =
      unix_socket = /run/mysqld/mysqld.sock
      user = amplify-agent
      password = xxxxxx

      5. Por fim, restarte o serviço do Nginx Amplify

      service amplify-agent restart

      Agora o Nginx Amplify começará a enviar dados e estatísticas do banco de dados para o painel, uma nova aba irá abrir no dashboard ao lado de PHP-FPM.

      Dependendo do tipo de banco de dados, pode ser que os dados não serão enviados, recomendo a leitura do blog post abaixo:

      Conclusão

      É importante entendermos o que está acontecendo dentro do nosso servidor, principalmente visualizar as métricas a respeito dos serviços que estão sendo executados. Nesse capítulo utilizamos uma ferramenta gratuita, possui suas limitações, mas que pode ser de grande serventia.

      No entanto, para uma observabilidade mais refinada e profissional, softwares como Dynatrace, Prometheus com Grafana, Site24x7 e outros, podem ser uma ótima solução para seus negócios.

    • Configurações de Segurança no Nginx

      Configurações de Segurança no Nginx

      Se você está acompanhando desde o primeiro capítulo o nosso projeto de implantação de um servidor ubuntu para hospedagem wordpress, já viu que temos o nosso ambiente pronto.

      Nesse capítulo vamos implementar algumas mudanças no nginx com foco em segurança, no entanto, isso não quer dizer que você está livre de toda e qualquer ameaça de ataques, mas as configurações aqui apresentadas podem minimizar os impactos.

      SSL

      Proteção no SSL

      Nosso site wordpress nesse momento já possui o certificado SSL instalado, isso foi feito no segundo capítulo. No entanto, alguns usuários podem ainda tentar se conectar no nosso site pelo protocolo HTTP, quando nós adicionamos a diretiva Strict-Transport-Security aos cabeçalhos de resposta do servidor, garantirá que todas as futuras conexões sejam feitas sempre com o protocolo HTTPS.

      Para realizar o procedimento, edite o nginx.conf com o comando abaixo:

      sudo nano /etc/nginx/nginx.conf
      

      E adicione o conteúdo abaixo dentro do bloco http assim como a imagem abaixo

      add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

      Salve o arquivo e de um reload nas configurações do Nginx com o comando:

      service nginx reload

      Agora acesse o site do Qualys SSL Test e realize um teste de qualidade do nosso SSL.

      Performance do SSL

      Normalmente uma conexão HTTPS consome e demanda bastante recurso do servidor em comparação a uma conexão simples HTTP. Isso ocorre por conta do procedimento de handshake adicional necessário ao estabelecer uma conexão.

      Mas podemos adicionar em cache os parâmetros da sessão SSL, o que evitará um handshake para cada conexão HTTPS do usuário. Logo, podemos melhorar levemente um pouco mais a performance do servidor.

      Abra o arquivo de configuração do nginx novamente

      sudo nano /etc/nginx/nginx.conf
      

      Na diretiva abaixo de SSL Settings, adicione o conteúdo abaixo:

      ssl_session_cache shared:SSL:10m;
      ssl_session_timeout 10m;
      

      Agora faça um reload do Nginx para que as configurações entrem em vigor:

      sudo service nginx reload

      Tipos de Ataques e Segurança com Nginx

      Cross-Site Scripting (XSS)

      Uma das formas que você desenvolvedor pode lidar com o XSS é garantir a validação e limpeza correta de todas as entradas do usuário no seu código, principalmente as áreas de administração do WordPress. Mas sabemos que tudo vira um caos quando existem vários plugins e templates de terceiros, é complicado você manter isso seguro.

      Uma das formas que temos para poder diminuir os riscos de ataques XSS é configurando o Nginx para fornecer cabeçalhos de resposta adicionais. Mas como assim?

      Imagine que um atacante conseguiu incorporar um arquivo JS malicioso no código-fonte do seu blog/site, seja por meio de um form de comentários ou algo do gênero. Por padrão, o navegador acaba permitindo que esse arquivo externo seja executado no momento do acesso, e poderá infectar o visitante ou até mesmo minerar criptomoedas torrando a CPU do seu usuário.

      Quando inserimos uma política de segurança de conteúdo, o que permite definirmos uma lista de permissões de fontes totalmente aprovadas por nós para carregar ativos (JS,CSS,HTML,etc), a coisa muda de cenário. Se o script não estiver na lista de aprovados, ele não poderá ser carregado no browser do seu usuário. Legal, não?

      Criar uma política de segurança é bem complicado para falar a verdade, hora ou outra acabamos bloqueando algum recurso de um template ou plugin e desconfigurando nosso site, então fica em um cenário de tentativa e erro.

      Clickjacking

      Clickjacking é um tipo de ataque que engana o seu usuário para que ele realize uma ação sem que ele perceba (induz o usuário a clicar), e é realizado através de iframes em uma página.
      Não sou especialista em segurança, mas você pode ler um artigo que explica como funciona detalhadamente esse tipo de ataque do Clickjacking.

      No Nginx podemos mitigar um pouco esse tipo de ataque, desabilitando completamente a incorporação de iframes de terceiros adicionando o cabeçalho X-Xss-Protection no nginx.conf.

      Fortalecendo a segurança do WordPress com Nginx

      Abra o seu nginx.conf e adicione os cabeçalhos para que os tipos de ataques acima sejam mitigados. Também inclui alguns outros cabeçalhos, que vão nos ajudar a evitar uma série de outros ataques web.

      add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval';" always;
      add_header X-Xss-Protection "1; mode=block" always;
      add_header X-Frame-Options "SAMEORIGIN" always;
      add_header X-Content-Type-Options "nosniff" always;
      add_header Referrer-Policy "origin-when-cross-origin" always;
      add_header Permissions-Policy interest-cohort=();
      
      
      

      A medida que atualizarmos esse capítulo com novos tipos de ataques iremos atualizar também as configurações do Nginx.

      Conclusão

      Antes de configurarmos as diretivas de segurança no Nginx com foco no nosso site WordPress, o resultado de um teste e análise dos cabeçalhos resultava a seguinte nota de segurança:

      Após configurarmos os cabeçalhos, os resultados obtidos são maravilhosos:

      Desse modo constatamos que configuramos os cabeçalhos e que ao menos alguns ataques vão ser bem difíceis de serem feitos no nosso servidor wordpress. Se você quer analisar o seu site, acesse o site: https://securityheaders.com/

    • Configurando Backups Automáticos

      Configurando Backups Automáticos

      A importância dos Backups

      Ao longo do tempo vivenciei diversos projetos e vi na prática a importância que um backup tem para solucionar um problema. Já vi de perto vários projetos terem de recomeçar do zero pelo falta de backups.

      Problemas técnicos acontecem, hora ou outra uma invasão ou infestação de malwares podem ocorrer, principalmente em projetos WordPress que são muito visados por atacantes e nessas horas se você não tem um backup limpo, irá chorar.

      Nesse capítulo vamos configurar rotinas de backups no nosso servidor WordPress para termos cópias de segurança do nosso site.

      Configurando Backup WordPress

      A nossa configuração de backups será executada 1x por dia durante 7 dias, e após os 7 dias o último backup mais antigo será removido, desse modo você sempre terá salvo no seu servidor wordpress os últimos 7 dias de backups.

      Se seu WordPress é muito pesado e o armazenamento do servidor ficar lotado, diminua a retenção dos backups de modo que o seu servidor consiga armazenar os backups sem travamentos.

      No nosso servidor, vamos criar um diretório personalizado para que os backups sejam armazenados dentro dele.

      mkdir -p /var/www/backups

      Agora vamos criar um script shell básico para que o backup seja executado de modo que os arquivos do nosso WordPress e o banco de dados sejam salvos.

      nano /var/www/backup.sh

      Insira todo o conteúdo abaixo dentro do script e salve-o.

      #!/bin/bash
      
      DIA=$(date +%Y%m%d%H%M%S)
      DB_BACKUP=${DIA}_database.sql
      ARQUI_BACKUP=${DIA}_wp.tar.gz
      
      DB_NAME=$(sed -n "s/define( *'DB_NAME', *'\([^']*\)'.*/\1/p" /var/www/html/wp-config.php)
      DB_USER=$(sed -n "s/define( *'DB_USER', *'\([^']*\)'.*/\1/p" /var/www/html/wp-config.php)
      DB_PASSWORD=$(sed -n "s/define( *'DB_PASSWORD', *'\([^']*\)'.*/\1/p" /var/www/html/wp-config.php)
      DB_HOST=$(sed -n "s/define( *'DB_HOST', *'\([^']*\)'.*/\1/p" /var/www/html/wp-config.php)
      
      # Backup do banco de dados
      mysqldump --add-drop-table -u$DB_USERNAME -p$DB_PASSWORD -h$DB_HOST $DB_NAME > /var/www/backups/$DB_BACKUP 2>&1
      
      # Comprimindo backup da DB
      gzip /var/www/backups/$DB_BACKUP
      
      # Backup do diretorio do WordPress
      tar -zcf /var/www/backups/$ARQUI_BACKUP /var/www/html
      

      Para que você não fique “boiando” sobre como esse script trabalha, ele tem as seguintes particularidades:

      • É executado como um script bash
      • Configura uma variável DIA com a data atual para os backups
      • Recupera automaticamente as credenciais do banco de dados, para que automação consiga se conectar no banco
      • Utiliza o gzip para comprimir o backup da database e com isso ocupar menos espaço

      Agora dê permissão de execução

      chmod u+x /var/www/backup.sh

      Agora vamos colocar esse script no crontab para que ele seja executado todos os dias de madrugada, para que ele seja executado exatamente no horário que queremos temos que ajustar o horário do nosso servidor.

      No entanto, configuramos o horário do servidor no primeiro capítulo desde guia. Mas verifique se a hora está correta:

      date

      Se tudo estiver correto, abra o crontab com o comando abaixo

      crontab -e

      Agora adicione o conteúdo abaixo

      0 5 * * * cd /var/www/; /var/www/backup.sh  >/dev/null 2>&1

      Esse cronjob irá acessar o diretório onde o script está armazenado e será executado as 05h da manhã todos os dias da semana.

      Sempre que desejar verificar os backups salvos, basta executar o comando abaixo

      ls -l /var/www/backups

      Configurando Limpeza Automática

      Até aqui já configuramos nosso script e colocamos ele na crontab para que seja executado todos os dias. Mas ainda não configuramos uma maneira de limpar os backups antigos, caso contrário em pouco tempo nosso servidor irá travar por falta de espaço.

      Para isso vamos adicionar uma linha no nosso script bash, logo no final do arquivo

      nano /var/www/backups.sh

      Em seguida insira o conteúdo na última linha, feche e salve o arquivo

      rm -f /var/www/backups/$(date +%Y%m%d* --date='1 week ago')

      Agora nosso script sempre deixará salvo os últimos 7 dias de backups salvos no nosso servidor WordPress.

      Conclusão

      Backup de hospedagem WordPress é fundamental para a segurança e retenção dos dados, em um desastre você terá uma cópia dos arquivos e poderá utilizar sempre que precisar.

    • Configuração de tarefas cron e envio de e-mail WordPress

      Configuração de tarefas cron e envio de e-mail WordPress

      Tarefas Cron

      O WordPress tem suporte integrado para tarefas cron, o que permite que alguns processos sejam executados em segundo plano nos horários programados. Quando você instala o WordPress ele já vem com as seguintes tarefas agendadas:

      • Atualizações automáticas do WordPress
      • Verificações de versão do WordPress
      • Verificações de atualizações de plugins e templates
      • Publicação de postagens agendadas

      No entanto todo esse sistema é falho, se seu site não receber ao menos 1 visita durante um período de tempo, nenhuma dessas tarefas são executadas. Para resolver esses problemas utilizamos o cron do próprio sistema operacional Linux.

      Como o cron é executado como um daemon, ele será executado com base na hora do sistema do servidor e não exigirá mais que um usuário visite o site para que as tarefas agendadas sejam executadas no seu WordPress.

      Antes de configurar o cron, desabilite o WordPress de utilizar o cron interno dele. Adicione o conteúdo abaixo no arquivo wp-config do seu WordPress:

      define('DISABLE_WP_CRON', true);
      

      Abra o crontab do servidor e configure as tarefas cron que serão executadas pelo sistema:

      crontab -e

      Não vou entrar em detalhes sobre a sintaxe do crontab , mas adicione ao final do arquivo a cron do WordPress para que seja executada a cada 5 minutos:

      */5 * * * * cd /var/www/html; /usr/local/bin/wp cron event run --due-now >/dev/null 2>&1
      

      Agora salve o arquivo para finalizar. Pressione CTRL + X seguido de Y e Enter. Alguns artigos na internet sugerem o uso de wget ou curl para acionar o cron, mas o uso do WP-CLI é recomendado.

      Agora você configurou o cron do servidor para que execute as tarefas agendadas do WordPress.

      Configurando envios de e-mail com SMTP Relay Mailjet

      No nosso servidor de hospedagem wordpress não configuramos nenhum serviço referente a envio de e-mails. Se você precisa redefinir uma senha ou enviar newsletter, só será possível se configurarmos um SMTP Relay para que os emails sejam enviados.

      O Mailjet possui um serviço de SMTP Relay muito bom, inclusive o plano gratuito nos possibilita enviar até 6 mil envios mensal, para projetos pequenos isso é mais do que suficiente.

      Para configurar o Mailjet no seu WordPress siga os passos abaixo.

      1- Cadastro no Mailjet

      Acesse o site oficial e clique em Get Started e realize o seu cadastro. Após preencher todas as etapas, acesse seu e-mail para confirmar seu cadastro.

      https://www.mailjet.com/

      Após confirmar o seu cadastro, você verá uma tela como a imagem abaixo. Clique em Get started na imagem Developer.

      Em seguida escolha a opção SMTP Relay e prossiga para a próxima etapa

      Nessa tela você pode clicar em continuar, mais adiante configuramos as credenciais do nosso SMTP.

      2. Configurando SMTP

      Agora que a nossa conta já está criada e pré-pronta, precisamos configurar nosso domínio no Mailjet e configurar nossas credenciais.

      Na mesma janela que você está, desça a página até encontrar a opção 3 e clique em Add and validade domain.

      Na nova janela que foi aberta clique no botão Add domain, insira o seu domínio e clique em Continue.

      Na próxima etapa você vai ter duas opções para poder validar que você é o proprietário do seu domínio. Você pode subir um arquivo de texto para a raiz do WordPress ou criar um registro TXT no DNS.

      Para ser mais objetivo e rápido, vou criar o arquivo de texto na raiz do meu WordPress, exatamente com o nome do arquivo que destaquei em vermelho na imagem acima.

      No diretório home do meu WordPress eu criei o arquivo com o comando abaixo

      touch nome_arquivo

      Agora clico em Check now para validar o domínio.

      Se o domínio foi validado, você verá uma mensagem como a imagem abaixo:

      Mas ainda não acabou nossas configurações, precisamos realizar as autenticações para o domínio com registros SPF e DKIM caso contrário nossos e-mails podem cair sempre na caixa de spam ou até mesmo ser recusados pelo servidor de destino.

      Clique em Authenticate this domain, e agora sim temos as duas configurações a serem feitas no nosso DNS. O SPF e o DKIM!

      Antes de mais nada clique no botão amarelo para que o registro SPF seja gerado, e em seguida você verá o conteúdo a ser adicionado no DNS.

      Após adicionar os registros, aguarde alguns minutos ou até mesmo horas para a propagação do DNS, assim que tudo estiver propagado você verá uma tela igual a imagem abaixo e isso significa que nosso domínio está autenticado e pronto para utilizar o Mailjet.

      E para finalizar, vamos criar as chaves de API do nosso SMTP para que possamos conectar o WordPress ao SMTP. Clique no menu inicial para voltar a página inicial:

      Em seguida clique em Setup my SMTP

      Agora clique em Retrieve your API credentials

      Agora sim, clicamos em Generate Secret Key para gerar nosso par de chaves

      Guarde os dados de API Key e Secret Key, sugiro copiar e guardar em um local seguro, e será com essas credenciais que vamos configurar no WordPress agora.

      Configurando SMTP no WordPress

      Para configurar o Mailjet no WordPress vamos utilizar um plugin bem conhecido, o WP Mail SMTP by WPForms. No menu de pesquisa de plugins apenas coloque o nome do plugin e realize a sua ativação.

      Assim que ativado, precisamos configura-lo. Clique em Vamos começar, para dar início.

      Esse plugin é bem interessante pois ele oferece compatibilidade com diversos provedores de SMTP Relay como Google, Sendgrid, AWS SES, Mailgun e Outlook.

      No entanto, vamos escolher a opção Outro SMTP e clicar em Salvar e continuar.

      Agora colocamos as informações do nosso SMTP Mailjet, como nome do host usuário e senha que são as credenciais de API que geramos. Basta preencher os dados corretamente como as imagens abaixo:

      Host: in-v3.mailjet.com

      Para finalizar, clique em Salvar e continuar, nas três telas seguintes. Na quarta tela clique em Pular esta etapa, e na última tela clique em Concluir configuração.

      Agora podemos testar se o nosso WordPress está enviando e-mails corretamente através do Mailjet. Para isso, podemos realizar um envio de e-mail de testes utilizando o plugin que acabamos de instalar. Clique no menu superior em E-mail de teste

      Insira o nome do e-mail para quem deseja enviar um e-mail de teste e clique em Enviar e-mail

      Rapidamente recebi o e-mail na caixa de entrada

      Podemos constatar e verificar que o nosso WordPress está enviando e-mails corretamente. Qualquer atividade que envolva notificações, envios de redefinições de senhas, ou o que for, o WordPress utilizará o SMTP configurado para envios.

      Conclusão

      Quando configuramos um servidor para hospedagem wordpress também temos que pensar nos envios de e-mail, caso contrário toda e qualquer notificação o WordPress não irá conseguir enviar.

      O Mailjet é uma opção gratuita e que é bem interessante para projetos pequenos, para projetos maiores como lojas e grandes portais o AWS SES pode ser a melhor opção para envios de e-mail e newsletter.

    • Instalando o WordPress no Ubuntu

      Instalando o WordPress no Ubuntu

      Nossa hospedagem WordPress já está configurada com todos os serviços que o WordPress precisa para executar. Você inclusive pode escolher o que fazer agora:

      1. Instalar um WordPress Default
      2. Migrar um WordPress para o servidor

      A primeira opção você pode realizar de diversas formas, mas como temos o WP-CLI instalado no nosso servidor, podemos utiliza-lo para instalar o WordPress. A segunda opção é bem simples, basta você ter o conteúdo físico do WordPress + Banco de dados e enviar para o servidor.

      Instalando o WordPress

      Para instalar o WordPress via WP-CLI no terminal, esteja logado com o usuário que você criou no primeiro capítulo deste guia. E siga os passos abaixo:

      cd /var/www/html
      rm -rf *

      O comando abaixo irá realizar o download dos arquivos core do WordPress

      wp core download

      O próximo comando irá criar o arquivo wp-config com os dados do banco de dados que configuramos. Lembre de trocar as palavras em negrito pelos respectivos nomes e senha que você configurou.

      wp core config --dbname=dbwordpress --dbuser=wpuser --dbpass=senha

      Agora acesse seu site e prossiga com a instalação:

      Após realizar os passos básicos de instalação você já vai ter seu WordPress funcional na sua hospedagem WordPress.

      Conclusão

      Nesse capítulo realizamos a instalação de um WordPress em nosso servidor.

      No próximo capítulo vamos começar a otimizar o nosso servidor, e com isso ganhar bastante performance no nosso WordPress.