Kapatagan Anti Comment Spam

Description

Kapatagan Anti Comment Spam keeps spam out of your comments without annoying your visitors. There are no puzzles or “I am not a robot” boxes, and nothing is sent to outside services unless you turn on the optional StopForumSpam check.

Stops spam bots right away

  • Hidden bot trap: an invisible field that only bots fill in.
  • Real browser check: only accepts comments sent from a real web browser. Works with caching plugins.
  • Too-fast check: people can’t type a comment in two seconds, so bots that do are blocked.
  • Comment limit: stops one visitor from posting too many comments too quickly.
  • Blocks pingbacks and trackbacks, which are mostly used by spammers.

Checks what comments say

Suspicious comments go to your Spam folder so you can double-check them:

  • Smart detection: spots typical spam such as gambling and online casino promotions, links to free throwaway websites, comments that are just a link, known scam phrases, or one IP posting many comments. One sign alone is not enough, so honest comments are safe. Choose how strict it is: Relaxed, Normal (recommended) or Strict.
  • Too many links, or a link in the Name field.
  • Words or IP addresses you’ve blocked.
  • Optional: comments written mostly in alphabets your visitors don’t use (for example Cyrillic or Chinese).

Optional: StopForumSpam check

  • Turn on a check against StopForumSpam, a free list of known spammers shared by thousands of sites. Off by default.
  • Only the IP address and a scrambled (hashed) copy of the email are sent. Answers are saved for a day.

Cleans up old comments

  • Already have hundreds or thousands of spam comments? The clean-up tool checks the comments on your site and can move spam to Spam, move it to Trash, or delete it forever.
  • Start with “Just show me” to see what it finds before changing anything.
  • It works slowly in the background, a few comments at a time, so your site stays fast.
  • A progress bar shows how far it has got and how much spam it found.
  • It never touches comments from admins and moderators, logged-in members (unless you choose to check them), or WooCommerce order notes.

Easy to manage

Everything is in its own Anti Spam menu, written in plain words for site owners, not just developers.

  • Overview: comments blocked today, this month and all time, the most common reasons in the last 30 days, and quick protection checks. A green dot means all good; a red dot comes with a one-line fix (for example, if your site uses Cloudflare but the plugin isn’t set up for it).
  • Settings: simple on/off switches in five tabs (Stop bots, Spam detection, Known spammers, Clean-up, More). The safe choices are marked “Recommended” and already on.
  • Clean Up: start, follow and stop a clean-up of old comments.
  • Blocked Comments: see every blocked comment and exactly why it was blocked. Tick many at once to mark them Not spam, move them to Spam or Trash, or delete them. Block an IP address with one click.
  • A dashboard box shows how much spam was blocked today, this month and overall.

Safe and private

  • Comments sent through the WordPress REST API are checked too, not just the normal comment form.
  • The list of blocked comments works with WordPress’s Export and Erase Personal Data tools, removes old entries automatically, and can hide part of each IP address.
  • Nothing is ever sent to Kapatagan.

External services

This plugin can connect to StopForumSpam (https://www.stopforumspam.com/), a free database of known spammers. It is off by default and only used if the site owner turns on “Check commenters against StopForumSpam” in the settings.

  • What it is used for: to check whether a commenter’s IP address or email address has been reported as a spammer.
  • What is sent and when: when a comment is submitted (or when the site owner runs a clean-up of old comments), the commenter’s IP address and an MD5 hash of their email address are sent to https://api.stopforumspam.org/api. The email address itself, the name and the comment text are never sent. Answers are cached on the site for one day.
  • Terms of use: https://www.stopforumspam.com/legal
  • Privacy policy: https://www.stopforumspam.com/privacy

No other external services are used.

Security notes

  • Every admin action checks capability and a nonce. All settings are sanitized against a whitelist; all output is escaped; all SQL is prepared.
  • Visitors never learn which check blocked them.
  • Proxy IP headers are ignored by default. Cloudflare’s header is only trusted when the request comes from a Cloudflare IP; X-Forwarded-For only when it comes from a private-network proxy.
  • The token endpoint is POST-only, uncacheable and rate limited.
  • The log stores truncated, tag-stripped text, is write-throttled per IP and capped at 10,000 rows, so a flood cannot fill the database.
  • No external requests unless you turn on the StopForumSpam check. No file writes, no eval.
  • Uninstall removes all options, transients and the log table.

Hooks

  • kacs_comment_rejected (action) — $reason, $commentdata
  • kacs_comment_spammed (action) — $reason, $comment_id
  • kacs_enqueue_script (filter) — bool
  • kacs_token_rate_limit (filter) — token requests per IP per 10 minutes (default 30)
  • kacs_trusted_proxies (filter) — extra proxy IPs/CIDRs to trust
  • kacs_cloudflare_ranges (filter) — Cloudflare IP ranges
  • kacs_scan_time_budget (filter) — seconds per scanner run (default 8)
  • kacs_free_hosts (filter) — list of free website hosts used as a spam sign
  • kacs_disposable_email_domains / kacs_spammy_tlds (filters) — throwaway email services and spam-heavy web address endings
  • kacs_gambling_brands / kacs_gambling_words (filters) — gambling names used as a spam sign
  • kacs_spam_phrases (filter) — list of known spam phrases
  • kacs_repeat_ip_count (filter) — comments from one IP before it counts as a spam sign (default 5)
  • kacs_sfs_spam_confidence (filter) — StopForumSpam confidence (0-100) that marks a comment as spam on its own (default 80)
  • kacs_sfs_seen_confidence (filter) — lower confidence that adds a spam sign (default 25)
  • kacs_scan_max_load (filter) — skip scanner runs while the 1-minute load average is above this value (default 0 = off)

Screenshots

Installation

  1. Upload the plugin through Plugins Add New Upload Plugin, or copy the folder to /wp-content/plugins/.
  2. Activate it. Protection is on immediately with safe defaults.
  3. Open Anti Spam Overview to see how your comment section is doing, and Anti Spam Settings to change anything.
  4. To clean up old comments, choose “Just show me”, start a clean-up, check Anti Spam Blocked Comments, then switch to Move to Spam, Move to Trash or Delete forever.

FAQ

Is it really free?

Yes. Every feature is free, with no subscriptions, no paid version and no ads in your dashboard. If it helps you, you can buy us a coffee at https://buymeacoffee.com/pinoygaming. It keeps the project going.

Where can I get help?

Email support@kapatagan.dev or visit https://kapatagan.dev/support/. Setup guides are at https://kapatagan.dev/docs/.

My theme uses a custom comment form

The plugin hooks into the standard comment_form action. If your theme builds its own form without it, the token is still added by JavaScript, but the honeypot is not. Use the kacs_enqueue_script filter to load the script on pages where is_singular() is false.

Do visitors need JavaScript?

Yes, while the JavaScript token is on. You can turn it off, but you’ll lose the strongest check.

Does it work with caching plugins?

Yes. Nothing secret is printed into the page; the token is fetched from admin-ajax.php, which is never cached.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Kapatagan Anti Comment Spam” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.0

  • New: Anti Spam has its own menu with an Overview screen: blocked counts, the most common reasons in the last 30 days, and protection checks (including a Cloudflare setup hint).
  • New look: settings are now split into tabs (Stop bots, Spam detection, Known spammers, Clean-up, More) with on/off switches, “Recommended” badges and a simple Relaxed / Normal / Strict picker.
  • Clean Up shows a clear progress bar and counts. Blocked Comments shows totals at the top.
  • Old Settings Kapatagan Anti Spam links redirect to the new screens.
  • Security: comments sent through the WordPress REST API are now checked too. Before, they skipped every check (WordPress only allows this for logged-in users unless another plugin turns on anonymous REST comments).
  • Fewer false alarms: a reader’s name or email that merely contains a gambling brand (like “Jilian” and “jili”) no longer counts as gambling, and links to court websites (“judiciary”) are no longer mistaken for the Indonesian gambling word “judi”.
  • Fewer false alarms: readers with approved comments are no longer marked down for “same IP posted many comments”.
  • Clean-up now follows the same rule as new comments: comments by logged-in members are skipped unless “Also check logged-in members” is on.
  • StopForumSpam: if the service has a problem, new comments stop waiting on it for 15 minutes.
  • Privacy: Tools Export Personal Data and Erase Personal Data now include the Blocked Comments list.
  • Database queries tightened to pass the latest Plugin Check with no warnings.
  • Settings are kept.

1.0.0

  • First public release on WordPress.org.
  • Includes everything from the 0.x test releases below: bot blocking, smart detection, the optional StopForumSpam check, the background clean-up and the Blocked Comments list.
  • Support link now points to https://kapatagan.dev/support/.

0.5.0

  • New: optional StopForumSpam check (off by default). Known spammers (80%+ confidence) are sent to Spam; lower matches add points to smart detection. Only the IP address and a hashed email are sent; answers are cached for a day; the daily limit is respected; if the service is down, comments are checked by everything else.
  • The clean-up looks up many commenters in one request, so old comments are checked quickly.

0.4.3

  • New: smart detection also checks the email and Website fields: throwaway email services, machine-made email addresses, names that do not match the email, website addresses popular with spammers, and spam or gambling names inside them.
  • New: “Block this email” and “Block this website” links in the Blocked Comments list. The list now shows each commenter’s website.

0.4.2

  • New: a first-time commenter filling in the Website field now counts as a spam sign.
  • New: option “Treat a filled-in Website field from a first-time commenter as spam” for sites where real readers rarely add a website.

0.4.1

  • New: smart detection spots gambling and online casino promotions (for example “PH Sinwerte”, Jili, OKBet) in the name, email, website field or links. Words people write, like “casino heist”, are not affected.

0.4.0

  • New: smart detection. Spots typical modern spam (gambling and online casino promotions, links to free throwaway websites, comments that are just a link, known spam phrases, one IP posting many comments, and more) using a points system, with Relaxed, Normal and Strict levels.
  • The Blocked Comments list shows the points and the signs that were found.

0.3.0

  • New: bulk actions on the Blocked Comments list. Tick comments (or all of them) and choose Not spam, Move to Spam, Move to Trash, Delete forever, or Remove from this list.
  • New: “Apply to all comments found by the clean-up” handles the whole list, 200 at a time so your site stays fast.

0.2.5

  • New: the Blocked Comments list explains each match, e.g. “3 links found, your limit is 2” or “Matched: casino”.
  • New: hidden links inside comment text are shown in the list as “text [link]”.
  • New: “Not spam” button. It restores the comment if needed and future clean-ups skip it.
  • Improved: a clean-up that was paused by a plugin update continues by itself.

0.2.4

  • Fixed: links starting with “http://www.” were counted twice, so comments with only 2 links could be wrongly treated as spam.

0.2.3

  • Coffee link now goes to our Buy Me a Coffee page.

0.2.2

  • Added “Get help” and “Buy us a coffee” links. No pop-ups or reminders.

0.2.1

  • Friendlier, plain-language labels and messages throughout.

0.2.0

  • New: background comment scanner for pending/approved comments with test mode, spam, trash or permanent delete.
  • New: speed limit, time budget and lock for the scanner; deferred comment counting.
  • Hardening: honeypot input is unslashed and sanitized; regex matching no longer uses error suppression.

0.1.0

  • Initial pre-release (0.x). Settings and behaviour may change before 1.0.