WordPress · Elementor Pro forms

Form spam filter that keeps every real inquiry.

TW Form Guard checks each Elementor Pro form submission in three layers: invisible traps, rules learned from 29,361 real submissions, and an AI judge. The free plugin runs that judge on your own provider key — the submission goes from your server to the provider you chose, and never reaches us at all.

September 2026 benchmark, 88 real submissions: 63 of 69 spam caught, 19 of 19 genuine inquiries kept. Read the methodology

Free needs no account, and with your own key nothing reaches StoreFixKit — we do not route, see or store the submission. Premium is for owners who would rather not obtain a key at all: we host the judging, $79 per site per year or $9 per site per month.

Benchmark · 88 production submissionsSept 2026
Spam caught
63of 69 spam submissions
Genuine kept
19of 19 real inquiries (0 false positives)
AI judge latency
1.35 smedian, 1.76 s at p95
When the AI is unreachable
Submissionpasses Log entryai_unavailable Your formunchanged

Sample: 69 spam and 19 genuine inquiries taken verbatim from live exporter sites. Rules and AI judge combined, measured with deepseek-v4-flash — another model will score differently, which is what the plugin's built-in 12-sample self-test is for.

Freetraps, rules and AI on your own provider key — nothing reaches us
Fail-openoutage or used-up quota means your forms keep working
14-dayrefund on Premium, no questions asked

How it works

Three layers. Nothing for a human to solve.

No CAPTCHA, no puzzles, no delay for the buyer. Each submission is scored in order, and the first layer with a clear answer decides.

Layer 0

Invisible traps

A hidden field and a timing check that only scripts trip. Real visitors never see them. Submissions that skip your page's JavaScript entirely are recorded as a signal.

Layer 1

Rules, in plain PHP

Fifteen rules distilled from replaying 29,361 submissions across our own exporter sites: invalid emails, throwaway domains, template spam in 28 languages, link drops, scam phrases, repeat offenders. Runs locally in under a millisecond.

Layer 2 · free with your key

AI judge

What the rules cannot decide is put to a language model as one question: SPAM or HAM. The answer is one word; nothing else the model says is used. Point it at your own provider, or let us host it.

Fail-open by design. If the provider is unreachable, your monthly quota is used up, or the model returns anything but a clear answer, the submission passes and is logged as ai_unavailable. TW Form Guard never blocks a form because an AI call failed.

Start in Dry-run. Nothing is blocked; everything is logged with its reason. Switch to Block once the log shows no false positives. Blocked submissions are quarantined, and any of them can be released with one click.

Layer 2 · the AI judge

Your key, or ours.

Same prompt, same one-word answer, same fail-open behaviour. What differs is whose key pays for the call — and, more to the point, where your enquiries travel.

 My own AI provider · FreeHosted · Premium
The enquiry goesStraight to your providerTo our relay, then the model
Does it reach us?Never. Not routed, seen or storedIn memory only, never written down
You arrangeBase URL, key, model nameNothing at all
Contract withYour provider. We add no sub-processorUs, under the DPA
CostYour provider's tokens, cents a month$79 a year, 10,000 a month
Available inFree and PremiumPremium only

Which model? Any provider that publishes an OpenAI-compatible /chat/completions endpoint over https will do — OpenAI, DeepSeek, Moonshot (Kimi), Zhipu, Qwen, Groq and OpenRouter all document one, and so do local runtimes such as Ollama, vLLM and LM Studio, in which case the text never leaves your own network. Model quality varies, so the plugin ships twelve real production messages (six spam, six genuine enquiries) and scores your chosen model against them on demand. How to set it up

Pricing

Free does the job, AI included. Premium hosts it for you.

The AI judge is in the free plugin — you bring the key. Premium is for owners who would rather not deal with a provider at all. Each Premium license covers one site; Stripe hosts checkout and billing, and Free keeps working if a subscription ends or the license service is unavailable.

Free

TW Form Guard

$0 forever

  • Layer 0 traps and all Layer 1 rules
  • AI judging with your own provider key — straight from your server to your provider, never through us
  • 12-sample self-test to score the model you picked
  • Dry-run and Block modes with a reason log
  • Quarantine and one-click release
  • Custom block keywords and trusted domains
  • WordPress privacy export and erase support
  • No account, no license, nothing sent to us

GPL. Requires WordPress 6.0+, PHP 7.4+, Elementor Pro.

What counts as a judgement: one submission that the traps and rules could not decide and that the relay accepted for an answer. Rule-blocked and trusted-domain submissions never reach the relay and never count; requests the relay refuses (quota reached, rate limit) do not count either. Past 10,000 in a calendar month (UTC) the plugin simply runs rules only until the month resets. On your own key there is no quota from us at all — we count nothing, cap nothing and bill nothing; your provider meters the calls.

FAQ

Before you install

Which forms does it protect?

Version 2.0 protects Elementor Pro forms, including popup forms. Contact Form 7, WPForms and Gravity Forms adapters are planned but not shipped; do not buy Premium for those yet.

Will it block real customers?

In the September 2026 benchmark of 88 real submissions, all 19 genuine inquiries passed and 63 of 69 spam submissions were caught, measured with deepseek-v4-flash. That is a measurement on one model and one sample, not a guarantee: a different model will score differently, which is why the plugin can run twelve real messages through your model and show you the score. Start in Dry-run, read the log for a week, and only then switch to Block. Anything blocked stays in quarantine and can be released.

Do I have to pay to use the AI judge?

No. "Use my own AI provider" is in the free plugin: you paste a Base URL, an API key and a model name, and the plugin calls that endpoint directly. Premium exists for owners who do not want to obtain a key, pick a model or watch a per-call bill — we host the judging instead, and include 10,000 judgements a month.

What is sent to the AI, and where?

Nothing at all unless you switch the AI judge on; it is off after installation, and the traps and rules never send anything anywhere. With your own provider key the plugin posts the sender name, email address and message text (up to 1,500 characters) from your own server directly to the endpoint you configured — it does not pass through StoreFixKit, we never see it, and we add no sub-processor to your data flow; what happens to it next is between you and the provider you chose. With hosted judging the same three fields go to our relay in the United States, which passes them to the model provider, DeepSeek in China, and returns one word. Either way the visitor's IP address and your other form fields are never sent. Full detail, including sub-processors, in the privacy policy.

How do I know the model I picked is any good?

Run the self-test on the settings page. It sends twelve verbatim production messages — six spam that reached real inboxes, six genuine enquiries that must never be blocked — through your configured backend and shows how many of each it got right, including which ones it missed. It bypasses the cache, so it costs twelve calls on your key each time you run it.

What happens after 10,000 judgements in a month?

On Premium the hosted AI layer pauses and the plugin runs traps and rules only until the first day of the next month. Your forms keep accepting submissions and nothing is charged extra. On your own key we impose no quota at all.

Can I move a license to another site?

Yes. Deactivate it on the old site (or from the settings page) and activate on the new one. One license is active on one production site at a time; staging copies do not count while they are not activated.

What if I cancel or stop paying?

Hosted judging stops at the end of the paid period and the plugin drops back to Free automatically. Your log, settings and quarantine stay in your database, and the AI judge itself need not stop: switch the backend to your own provider key and it keeps running on the free build.

Do I still need a CAPTCHA?

No. TW Form Guard adds nothing visible to the form and does not slow the buyer down. You can keep an existing CAPTCHA if you want; the plugin runs after Elementor's own validation.

Refunds?

14 days from purchase, no questions asked. Email support@storefixkit.com with the checkout email.

Questions before you install? One address for setup, bugs and billing.