Why do Contact Form 7 enquiries vanish without trace?
Because Contact Form 7 saves nothing. It composes an email, passes it to WordPress to send, and writes no copy to the database. So a mail that silently fails, is rejected by the receiving server, or lands in a junk folder nobody checks does not leave a failed record: it leaves no record. Businesses discover this when a customer rings to ask why nobody replied to the message they sent three weeks ago. The first thing we do on any CF7 site is make that impossible.
Why is Contact Form 7 not sending emails?
Usually because your host is sending the mail badly. By default WordPress hands it to the server's own sending function, which typically sends from an address your domain has never authorised. Modern mail providers treat that as forgery and either bin it or file it as junk, and increasingly they reject it outright. The fix is an SMTP setup through an authenticated mail service, with the domain records lined up to vouch for it. It is unglamorous, it takes under an hour, and it resolves the majority of "our form does not work" reports without touching the form at all.
How do you keep a copy of every submission?
Install a submission log inside WordPress, so that once mail is reliable you also stop depending on it. The log means an enquiry exists whether or not the email arrived, survives a staff member leaving, and gives you something to search when a customer says they contacted you in March. CF7's own companion plugin does this, it is free, and it takes minutes to set up. That it is not installed by default is the single biggest gap between CF7 as shipped and CF7 as it should be run.
Is Contact Form 7 slowing down every page?
A little, yes: CF7 loads its stylesheet and JavaScript everywhere by default, including on pages with no form on them. On a small site that is a minor cost; combined with a sitewide captcha script it becomes one of the more noticeable easy wins available on an otherwise fine site. Restricting the assets to the pages that actually have a form is a small change, and it is the sort of thing that quietly improves the numbers Google is measuring.
Can Contact Form 7 handle validation and conditional fields?
Yes, with help, because CF7 ships with basic required-field checking and very little else, so a phone field will accept anything typed into it and a form cannot show a section only when it is relevant. Both are solvable (real validation through the plugin's filter hooks, and conditional sections through a well-maintained companion plugin) and both are worth doing on any form longer than four fields, because the alternative is staff retyping bad data and customers abandoning forms that ask irrelevant questions.
How do you stop CF7 spam without losing real enquiries?
Carefully, and in the right order, because on CF7 you cannot review what was blocked: there is no rejected pile to check. That makes aggressive filtering genuinely risky: a false positive is a lost customer you will never learn about. So the order matters. Stop the automated volume at the edge, keep the in-form checks conservative, and always have the submission log running first so that anything the mail layer loses is still recoverable.
When have you outgrown Contact Form 7?
When you need something specific it cannot do, not because it has stopped working: CF7 is free, stable and maintained. The honest signals are these: you need to take payment, you need one form to behave several ways, you need submissions reported on rather than read, or you are maintaining five near-identical forms because it cannot do conditional logic. Wanting a nicer-looking form is not one of them, that is CSS. We will tell you which side of that line you are on rather than quoting a migration by reflex.
How much does it cost to fix Contact Form 7?
Fixing Contact Form 7 properly: authenticated sending configured, domain records set, submission logging installed and a real delivery test sent from outside your network: starts at $300, and on most sites that is the entire job. A written diagnosis of the current setup before anything changes is $249. Extra work such as custom validation or merging several forms into one is billed at $100 per hour, or taken from a prepaid five-hour block at $500 if there is a list of it.