Orravo Spam Shield
Invisible spam protection for WordPress forms — no CAPTCHAs, no friction for real users. Honeypot traps, timing analysis, rate limiting, geo blocking, disposable email detection, and IP / email / keyword blocklists. Works natively with CF7, WPForms, Gravity Forms, and OForms. Free forever.
Test a submission.
See every rule fire.
This simulates what Spam Shield checks on every form submission. Change the email, IP, or timing and re-run to see which rules fire. On a real site this pipeline runs server-side in under 4ms.
Run every rule.
Instant verdict.
Simulated demo. Runs automatically as you scroll.
Six layers of defence.
Zero user friction.
Every check runs server-side, in under 4ms on warm cache. No external API calls per submission. No CAPTCHA. No JavaScript required for the protection to work.
Click around.
It’s all real.
Four interactive previews of the actual Spam Shield admin. No screenshots — working mock-ups of what ships in the plugin.
| Rule | Count | Share |
|---|---|---|
| Honeypot | 181 | 58% |
| Timing analysis | 74 | 24% |
| Rate limiting | 33 | 11% |
| Geo blocking | 14 | 4% |
| Disposable email | 10 | 3% |
| Rule | Status | Setting |
|---|---|---|
| Honeypot | enabled | field: _shield_check |
| Timing analysis | enabled | min elapsed: 2.0s |
| Rate limiting | enabled | 10 submissions / 5 min / IP |
| Geo blocking | enabled | blocked: RU, KP, CN (3 countries) |
| Disposable email | enabled | 2,847 domains · synced 2d ago |
| IP blocklist | enabled | 12 IPs blocked |
| Keyword blocklist | enabled | 7 words/phrases |
| IP / Range | Added | Reason | Hits |
|---|---|---|---|
| 203.0.113.77 | 3d ago | rate-limit auto-ban | 47 |
| 198.51.100.4 | 1w ago | manual | 12 |
| 10.20.30.0/24 | 2w ago | reported abuse | 3 |
| casino | free money | click here | buy now |
| cheap meds | 100% free | guaranteed profit |
| Time | Rule | Form | IP | Detail |
|---|---|---|---|---|
| 2m ago | honeypot | Contact Us | 198.51.100.4 | _shield_check filled |
| 4m ago | disposable | Newsletter | 203.0.113.55 | mailinator.com |
| 7m ago | timing | Register | 10.0.0.14 | 0.4s < 2s |
| 12m ago | ratelimit | Contact Us | 203.0.113.77 | 14/5min |
| 18m ago | geo | Register | — | country: RU |
Six rules built in.
No subscription needed.
Akismet requires a subscription for commercial sites. CleanTalk is a paid third-party service. hCaptcha replaces one UX problem (spam) with another (puzzle friction). Spam Shield is server-side, free, and invisible.
| Akismet | CleanTalk | hCaptcha | Orravo Spam Shield | |
|---|---|---|---|---|
| Honeypot field protection | ✓ | ✓ | no | Built in |
| Submission timing analysis | no | partial | no | Built in |
| Rate limiting (per-IP) | no | ✓ | no | Built in |
| Geo / country blocking | paid | ✓ | no | Built in |
| Disposable email detection | no | paid | no | Built in |
| IP blocklist | ✓ | ✓ | no | Built in |
| Keyword blocklist | no | no | no | Built in |
| Email domain blocklist | no | no | no | Built in |
| Works with CF7 / WPForms / GF | ✓ | ✓ | no | Built in |
| Works with OForms (native) | no | no | no | Built in |
| No external API dependency | no | no | ✓ | Built in |
| CAPTCHA required | no | ✓ | no | Never |
| Pricing model | Free | $99/yr | Dev time | Free forever |
Clean filter hooks.
Full CLI + REST surface.
Three extension points cover every integration scenario: PHP filter hooks for custom rules, WP-CLI for scripted management, and a REST API for remote stats and blocklist control.
// Hook into the spam-shield decision pipeline. Return true to block the submission. add_filter('orv_spam_shield_is_spam', function(bool $is_spam, array $context): bool { // $context keys: form_id, post_data, ip, user_agent, elapsed_seconds, email if (str_contains($context['user_agent'], 'BadBot')) { return true; } return $is_spam; }, 10, 2); // Log every spam event for your own analytics. add_action('orv_spam_shield_blocked', function(array $event) { // $event: reason, ip, form_id, elapsed, email, timestamp error_log('[spam-shield] blocked: ' . wp_json_encode($event)); }); // Add a custom keyword to the blocklist at runtime (without saving to DB). add_filter('orv_spam_shield_keyword_blocklist', function(array $words): array { $words[] = 'casino'; $words[] = 'free money'; return $words; });
Free.
Forever.
Every protection rule, unlimited forms, unlimited sites. No subscription. No API key to manage. No CAPTCHA tax on your users.
Orravo Spam Shield.
- Honeypot + timing + rate limiting
- Geo blocking + disposable email + IP blocklist
- CF7 · WPForms · Gravity Forms · OForms
- REST API + WP-CLI
- Activity log + weekly domain list sync
