Como adicionar formulário de contato no WordPress, em etapas

Resumo

Para adicionar formulário de contato no WordPress, instale um plugin como Fluent Forms, WPForms ou o bloco de formulário do Jetpack, monte um formulário curto com nome, e-mail e mensagem, e insira-o numa página com o bloco do plugin. Depois conecte um serviço SMTP com registros SPF e DKIM para que as mensagens cheguem à caixa de entrada, adicione um campo honeypot contra spam e teste no site publicado, a partir de outra conta de e-mail.

Notebook sobre uma mesa de madeira mostrando um layout simples de formulário de contato, com um caderno e uma caneca

Veja como adicionar formulário de contato no WordPress: instale um plugin de formulários, monte um formulário com nome, e-mail e mensagem, e insira-o numa página com o bloco do plugin. Depois, encaminhe os envios por um serviço de e-mail transacional, para que as mensagens realmente cheguem. As três primeiras etapas levam dez minutos. A última é onde a maioria dos formulários de contato falha em silêncio, e é a parte a que este folio dedica mais tempo.

O WordPress não tem bloco de formulário no núcleo. Um tema de blocos oferece uma página limpa, um Grupo, um layout em Colunas e um Botão, mas nada que colete e envie dados. A pergunta real é, portanto, qual plugin escolher e como configurar a entrega.

Você precisa de um plugin para adicionar um formulário de contato no WordPress?

Sim, para qualquer formulário que você pretenda manter. É possível escrever um formulário HTML puro e um manipulador PHP em um tema filho, e os tutoriais que mostram isso estão corretos. Mas o manipulador passa a ser responsável pela validação, pelo filtro de spam, pelas verificações de nonce, pelo escape, pelo armazenamento e pelas mensagens de erro. Isso é um pequeno plugin que você passa a manter.

Num site de cliente, o custo de manutenção decide a questão. Um manipulador escrito em 2024 provavelmente ainda estará no site em 2028, muito depois de você ter esquecido como ele trata um envio que falhou. Um plugin mantido recebe correções de segurança sem que você precise pensar nelas.

Evite o formulário feito à mão, a menos que ele faça parte do produto. Ele só vale a pena se você estiver construindo um plugin ou um fluxo de trabalho muito incomum.

Qual plugin de formulário escolher?

Cinco plugins cobrem quase todos os casos. Escolha com base no que acontece depois do envio, e não na galeria de modelos.

Para uma página de contato padrão num tema de blocos, Fluent Forms ou o bloco do Jetpack bastam. Para qualquer coisa que alimente um CRM, escolha Gravity Forms ou WPForms Pro e pare de comparar.

A documentação do Jetpack mostra como o bloco de formulário funciona dentro do editor, incluindo a colocação no rodapé e em templates, o que é útil mesmo que você escolha outro plugin.

Como montar o formulário?

Instale e ative o plugin em Plugins > Adicionar novo, depois crie um novo formulário a partir do modelo "Contato" ou "Simples". Antes de abrir o construtor, decida os campos no papel. Cada campo extra reduz o número de pessoas que chegam até o fim.

Esboço a lápis de um formulário de contato com quatro campos e um botão de envio, sobre papel creme

Um formulário que funciona para a maioria dos sites pequenos tem quatro campos: nome, e-mail, uma caixa de mensagem e, se a sua caixa de entrada precisar de triagem, um menu de assunto opcional. Um campo de telefone derruba conversões, a menos que você realmente retorne as ligações.

Três configurações pesam mais do que o layout.

Primeiro, marque como obrigatórios apenas o e-mail e a mensagem. Segundo, escreva rótulos reais acima dos campos, e não texto de marcador dentro deles. Os marcadores desaparecem enquanto a pessoa digita e falham no contraste exigido pelo WCAG 2.2. Terceiro, configure a confirmação para exibir uma mensagem na mesma página, e não um redirecionamento, a menos que você precise de uma URL de agradecimento para rastreamento.

Se você trabalha com árabe ou hebraico, teste o formulário em RTL antes de publicar. Rótulos e o botão de envio se espelham corretamente na maioria dos plugins quando o idioma do site está definido para um locale RTL. O campo de e-mail nem sempre acompanha. Endereços de e-mail são cadeias da esquerda para a direita, então force dir="ltr" nesse campo com uma pequena regra CSS ou com a opção de atributo personalizado do plugin. Caso contrário, o cursor pula conforme o visitante digita o arroba.

Como adicionar o formulário a uma página no editor de blocos?

Crie uma página chamada Contato, abra o inseridor com o botão de mais e pesquise o nome do plugin. Todo plugin de formulários sério registra o seu próprio bloco. Escolha-o, selecione o formulário que você criou e publique.

Você também pode colocá-lo em outro lugar. No Editor do Site, abra Aparência > Editor, escolha uma peça de template como o rodapé ou um template de página e insira o mesmo bloco ali. É assim que o Full Site Editing permite colocar um formulário curto em todos os rodapés sem usar shortcode.

Duas observações de layout, tiradas de trabalhos com clientes. Coloque o formulário dentro de um Grupo com largura máxima de cerca de 640 pixels, porque um formulário esticado por uma coluna de 1200 pixels fica difícil de ler. E coloque uma linha de texto simples acima dele com um endereço de e-mail direto. Alguns visitantes não vão usar formulário nenhum, e oferecer um endereço não custa nada.

Por que o e-mail do seu formulário nunca chega?

Porque o WordPress envia e-mails pela função de e-mail PHP padrão do servidor web, e os servidores de recebimento desconfiam dela. A função wp_mail(), documentada na referência para desenvolvedores do WordPress, entrega a mensagem a qualquer mecanismo que o servidor oferecer. Em hospedagem compartilhada, isso costuma ser um remetente não autenticado, que falha nas verificações de SPF e DKIM. Gmail e Outlook então mandam a mensagem para o spam ou a rejeitam de vez.

O detalhe traiçoeiro é que o formulário mostra uma mensagem de sucesso verde mesmo assim. O plugin fez a parte dele. O servidor aceitou a mensagem. Ela simplesmente nunca chegou à caixa de entrada.

Envelope branco escorregando por uma fenda de correio de metal numa porta verde

A correção tem três partes.

  1. Instale um plugin SMTP, como WP Mail SMTP, FluentSMTP ou Post SMTP, e conecte-o a um serviço de e-mail transacional.

  2. Defina o endereço de "Remetente" como um endereço do seu próprio domínio, por exemplo ola@seudominio.com.br, nunca um Gmail gratuito.

  3. Adicione ao DNS do seu domínio os registros SPF e DKIM que o serviço de e-mail fornecer, e publique um registro DMARC, mesmo que seja apenas de monitoramento.

Qual serviço escolher? Para um formulário de contato que envia algumas mensagens por dia, quase qualquer provedor transacional funciona. O Postmark foi feito exatamente para esse trabalho e mantém o e-mail transacional em infraestrutura separada do e-mail de marketing.

Se o cliente quiser responder aos leads com uma newsletter depois, o Brevo cobre envios transacionais e campanhas numa única conta, com um plano gratuito mais que suficiente para um site pequeno.

Um tutorial passo a passo da Mailtrap percorre a mesma configuração de SMTP, com capturas de tela, se você quiser uma segunda referência.

Como barrar spam sem afastar visitantes reais?

Um formulário público atrai robôs em poucos dias. A resposta habitual é um CAPTCHA, e normalmente é a primeira resposta errada, porque cada desafio que você acrescenta custa envios reais.

Adicione as defesas em camadas, nesta ordem, e pare assim que o spam parar.

Comece com um honeypot, um campo oculto que pessoas nunca preenchem e robôs sempre preenchem. A maioria dos plugins de formulários já traz um ativado por padrão. Adicione o Akismet se o plugin for compatível. Se o spam persistir, use um desafio que respeite a privacidade, como o Cloudflare Turnstile, antes de recorrer a um quebra-cabeça visual. Reserve a caixa de verificação do reCAPTCHA clássico para formulários sob ataque constante.

Se puder, limite também a taxa de envios no servidor. Um IP que envia quarenta mensagens por minuto não é um visitante.

No aspecto jurídico, se o site atende visitantes da União Europeia, adicione uma caixa de consentimento desmarcada com link para a política de privacidade, e configure o plugin para não guardar as entradas por mais tempo do que o necessário. Muitos plugins guardam todos os envios no banco de dados para sempre, por padrão. Mude isso.

Como testar o formulário antes de entregar?

Teste-o como um desconhecido faria, e teste no domínio publicado, não em staging. O staging costuma bloquear o envio de e-mails, então um teste ali não prova nada.

Mãos digitando num teclado ao lado de um celular, testando o envio de um formulário à noite

Envie o formulário pelo celular, com dados móveis, usando um endereço Gmail, e depois de novo com um endereço Outlook. Verifique a caixa de entrada e a pasta de spam do endereço receptor. Abra os cabeçalhos da mensagem e procure spf=pass e dkim=pass. Envie uma vez com todos os campos vazios e outra com um e-mail propositalmente errado, para confirmar que as mensagens de erro são claras e legíveis por leitores de tela.

Depois, preencha o formulário usando apenas o teclado. Se você não conseguir chegar ao botão de envio com a tecla Tab, ou não conseguir ver qual campo está em foco, corrija os estilos de foco no seu tema.

Marginalia: mantenha um registro. Use um recurso do plugin ou do serviço de e-mail que guarde as mensagens enviadas, para que, quando um cliente disser que nunca recebeu aquele contato, você responda em um minuto, e não em uma tarde.

Quando um plugin de formulário é a ferramenta errada?

Às vezes, um formulário de contato não é o que o visitante precisa. Numa loja, um widget de suporte que consulte os dados do pedido é melhor do que uma caixa de mensagem em branco. Numa página de captação de leads, o formulário pertence a um fluxo maior, com rastreamento.

Se os envios precisam chegar a um CRM ou a uma planilha, encaminhe-os diretamente para lá, em vez de copiar e-mails à mão. Um plugin de formulários com conexão ao Zapier pode enviar cada entrada para o Planilhas Google, o Slack ou o seu gerenciador de projetos em poucos cliques.

E se o formulário for a porta de entrada de um funil de vendas, um CRM com formulários incorporáveis próprios tira um plugin da sua pilha e mantém o histórico de contatos num só lugar. Os formulários gratuitos do HubSpot são o exemplo mais comum.

O padrão é o mesmo em todo lugar. O formulário são os dez minutos fáceis. A entrega, as regras contra spam e o acompanhamento é que dão trabalho. Abra hoje o formulário de contato do seu próprio site, envie uma mensagem para você mesmo a partir de outra conta e veja quanto tempo ela leva para chegar.

Perguntas frequentes

Dá para adicionar formulário de contato no WordPress sem plugin?
Sim, com um formulário HTML próprio e um manipulador PHP num tema filho. Assim você passa a cuidar da validação, do filtro de spam, do escape e do armazenamento, por isso, em sites de clientes, um plugin mantido é a escolha mais segura.
Qual é o melhor plugin gratuito de formulário de contato para WordPress?
Fluent Forms e o bloco de formulário do Jetpack são as opções gratuitas mais fáceis para uma página de contato padrão. O Contact Form 7 também é gratuito, mas não tem construtor visual.
Por que os e-mails do meu formulário do WordPress caem no spam?
O WordPress envia e-mails pela função PHP padrão do servidor, que normalmente falha nas verificações de SPF e DKIM. Use um plugin SMTP com um serviço de e-mail transacional e adicione os registros DNS que ele fornecer.
O WordPress tem um bloco de formulário de contato nativo?
Não. O núcleo do WordPress não tem bloco de formulário, então é preciso um plugin como Jetpack, WPForms, Fluent Forms, Contact Form 7 ou Gravity Forms.
Como impedir spam em um formulário de contato do WordPress?
Comece com um campo honeypot, adicione o Akismet se o plugin for compatível e, depois, use um desafio que respeite a privacidade, como o Cloudflare Turnstile. Mantenha CAPTCHAs visíveis apenas para ataques prolongados.
Posso colocar um formulário de contato no rodapé de um tema de blocos?
Sim. Abra Aparência > Editor, selecione a peça de template do rodapé e insira o bloco do plugin de formulários onde quiser.