Especialista técnico WordPress
Há problemas no WordPress que pedem mais do que conhecimento geral: um site em baixo depois de uma atualização, uma infeção que regressa, uma loja que bloqueia quando o tráfego sobe. Um programador WordPress generalista pode não chegar à causa. É para esses casos que existe esta página.
Quem sou
A WPPoland é o nome do meu trabalho: sou Mariusz Szatkowski, programador WordPress sénior desde 2006. Trabalho sozinho, sem equipa nem subcontratados, por isso o código que recebe foi escrito por mim e os seus acessos não passam para mais ninguém.
O que faço
Diagnóstico e correção de falhas, remoção de malware, performance medida com Core Web Vitals, WooCommerce sob carga, plugins e endpoints REST próprios, multisite e auditorias técnicas.
O que inclui uma consultoria WordPress
Nem todo o trabalho começa por escrever código. Muitos pedidos são decisões: reconstruir ou reparar, WordPress headless ou clássico, se um tema comercial aguenta mais dois anos, porque é que o site só fica lento em campanha. Nesses casos o resultado é um documento que permite decidir com medições.
Esse documento tem três partes: o estado atual medido, as opções realistas com o risco de cada uma e a ordem de execução que recomendo. Fica com ele mesmo que a implementação seja feita pela sua equipa interna ou por outro fornecedor. Cada recomendação está ligada a uma medição ou a uma limitação concreta da plataforma, e não recomendo reconstruir quando a base atual ainda aguenta.
Quando precisa de um especialista WordPress?
- O site mostra um erro crítico depois de atualizar o tema, um plugin ou o PHP.
- Foi atacado: envia spam, redireciona para domínios estranhos ou o Google marca-o como perigoso.
- LCP e INP estão a vermelho no Search Console e ninguém sabe porquê.
- O checkout WooCommerce bloqueia ou perde encomendas quando o tráfego sobe.
- Herdou uma instalação sem documentação e qualquer alteração parece arriscada.
Se procura alguém para desenvolvimento contínuo, veja WordPress freelancer.
Diferença entre especialista WordPress e generalista
Nota-se em erros que não têm resposta no Stack Overflow. Três tipos que encontro com frequência em auditorias:
- pt-PT tratado como pt-BR. Num site multilingue, o plugin de SEO ou de tradução trata as URLs em português europeu como duplicados de
pt-bre retira-as do sitemap. A correção passa por gerar o sitemap antes da camada de tradução e declararhreflangseparado parapt-PTept-BR. - IVA OSS recalculado tarde. Numa loja com vendas a consumidores de outros países da UE, o IVA por país é escrito depois de o WooCommerce HPOS guardar o valor original. Um hook em
woocommerce_order_after_calculate_totalsforça o recálculo quando os dados do cliente mudam. - Permissões por papel. Um contabilista precisa de exportar relatórios sem ver clientes. A solução é um papel próprio com capabilities mapeadas em
map_meta_cap: permiteview_woocommerce_reportse recusaedit_shop_ordersemanage_woocommerce.
Como limpar um site WordPress atacado
A recuperação de um site comprometido começa como trabalho forense. Leio o registo de acessos para encontrar a entrada e comparo os ficheiros com uma cópia limpa do core, do tema ativo e das versões instaladas dos plugins. As reinfeções vêm quase sempre de restaurar uma cópia já infetada, ou de uma backdoor guardada em wp_options como base64 com autoload, fora dos ficheiros. Por isso analiso a tabela de opções com wp-cli em cada limpeza.
Depois vem o reforço: desativar o editor de ficheiros no painel, restringir xmlrpc.php no servidor web, bloquear a enumeração de utilizadores via REST e trocar todas as chaves de API e palavras-passe da base de dados. Ninguém pode garantir que um site nunca mais é atacado. Posso fechar as entradas conhecidas e deixar uma monitorização que avisa cedo.
Porque é que o WordPress fica lento
Conselhos genéricos (lazy load, HTTP/2, CDN) servem qualquer site. O trabalho específico de WordPress está noutros sítios:
- Autoload de
wp_optionscheio de restos de plugins desativados e de listas de cron serializadas, carregados em cada pedido. get_post_meta($post_id)sem chave nos loops do tema, que traz todos os metadados de cada artigo.meta_querycom comparação de texto onde uma taxonomia comtax_queryresolve melhor.posts_per_page => -1esquecido em widgets laterais, que esgota a memória do PHP quando o conteúdo cresce.
Object cache com Redis só faz sentido depois de a camada de dados estar limpa. Meço os Core Web Vitals com visitantes reais através do CrUX, não com uma única execução do Lighthouse.
Em lojas, o checkout é o ponto crítico. Verifico que chamadas têm de ser síncronas durante o pagamento e confirmo a assinatura de cada notificação do prestador de pagamentos, seja de cartão, MB WAY ou referência Multibanco. Mais sobre lojas na página de programador WooCommerce.
Como trabalho
- Por escrito. Email, documentos e repositório Git privado. Cada alteração fica descrita por escrito.
- Staging primeiro. Revê e aprova as alterações em staging antes de passarem para produção.
- Proteção de dados. Antes de aceder a um site com dados pessoais, assinamos um contrato de subcontratante nos termos do art. 28.º do RGPD. Não recorro a subcontratantes ulteriores.
- Manutenção. Os pacotes de manutenção incluem monitorização de disponibilidade a cada 1 a 5 minutos, cópias de segurança de 30 dias ou mais em países da UE e atualizações testadas em staging. Não ofereço piquete 24/7, tempos de resposta garantidos nem SLA.
- Contrato e fatura. Contrato B2B ao abrigo da lei polaca e fatura com autoliquidação, com o meu número de IVA europeu PL7393037445.
Próximo passo
Se a loja já está em baixo ou o checkout falha, comece pelo sprint de recuperação WooCommerce. Após um ataque ou malware: auditoria de segurança WordPress. Para a manutenção contínua depois de estabilizar: Store Reliability Plan. Também pode enviar um brief escrito curto com o que falha e desde quando.






