Title: AOS Comment Spam Cleanup
Author: AOS Digital
Published: <strong>May 25, 2026</strong>
Last modified: September 1, 2026

---

Search plugins

![](https://ps.w.org/aos-comment-spam-cleanup/assets/banner-772x250.png?rev=3551139)

![](https://ps.w.org/aos-comment-spam-cleanup/assets/icon-256x256.gif?rev=3551139)

# AOS Comment Spam Cleanup

 By [AOS Digital](https://profiles.wordpress.org/aosdigital/)

[Download](https://downloads.wordpress.org/plugin/aos-comment-spam-cleanup.1.6.2.zip)

 * [Details](https://brx.wordpress.org/plugins/aos-comment-spam-cleanup/#description)
 * [Reviews](https://brx.wordpress.org/plugins/aos-comment-spam-cleanup/#reviews)
 *  [Installation](https://brx.wordpress.org/plugins/aos-comment-spam-cleanup/#installation)
 * [Development](https://brx.wordpress.org/plugins/aos-comment-spam-cleanup/#developers)

 [Support](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/)

## Description

**AOS Comment Spam Cleanup** helps you remove comment spam in bulk using URL pattern
matching, and prevents future bot submissions with a honeypot and quality scoring.
Whether you have hundreds of shortlink spam comments or want ongoing protection,
this plugin has you covered.

It works _alongside_ Akismet and other spam filters, not instead of them.

#### ✨ What you can do

**🔍 Pattern Scanner**
 Type a URL fragment (e.g. `shorturl.fm`) into the scanner,
click **Check Count** to see exactly how many comments match, then choose your action:
mark as spam, move to trash, or delete permanently.

**👀 See the matches before you act**
 A count tells you how many, not which ones.**
Show matches** lists the matching comments — author, comment excerpt, the post it
sits on, the date and the current status — so you can spot a pattern that also catches
real comments _before_ you run an action that cannot be undone. The list is read-
only and closes itself whenever the pattern changes, so it can never describe a 
different search than the one in the field.

**⏱ Scheduled Auto-Cleanup**
 Set a WP-Cron job to run hourly, twice daily, daily,
or weekly. Configure your patterns and action once — the plugin keeps your comment
section clean automatically.

**🤖 Honeypot Bot Protection**
 An invisible form field is added to your comment
form. Real visitors never see or fill it. Bots that automatically fill every form
field get rejected with a 403 error — silently, without affecting real users who
never see or fill the field.

**📊 Comment Quality Scoring**
 Every new comment is automatically scored based 
on: – Number of external links (+2 per link) – Shortlink in author URL (+4 points)–
Very short text under 15 characters (+2 points) – High symbol/punctuation density(
+3 points) – Known spam keywords like “casino” or “viagra” (+3 points) – Excessive
ALL-CAPS usage (+2 points)

If the score exceeds your threshold, the comment is held for review or marked as
spam automatically.

**🚫 Gravatar Privacy (GDPR-friendly)**
 Optionally block all external requests 
to gravatar.com. When enabled, avatar images are suppressed completely, preventing
third-party data transfers without visitor consent — helpful for GDPR / DSGVO compliance.

**💬 Disable Comments Globally**
 Close comments and trackbacks / pingbacks on all
posts, pages, and custom post types in one click. Existing comments are not deleted—
only new submissions are blocked. Disabling the toggle restores original comment
status immediately without any database changes.

**🛡 WordPress Blocklist Integration**
 Add URL patterns directly to WordPress’s 
native disallowed_keys list — new comments containing those patterns are caught 
before they even reach the scanner.

**📋 Spam Domain Analysis**
 Automatically scans your existing spam and trash comments
to surface the most common offending domains, so you always know what to block next.

#### 🎯 Who is this for?

 * Site owners who suddenly find hundreds of shortlink spam comments (you know who
   you are)
 * Bloggers who want passive spam protection without a heavy third-party service
 * Developers managing multiple WordPress sites who need efficient bulk moderation
 * Anyone frustrated by shortlinks like `bit.ly`, `shorturl.fm`, `cutt.ly` in their
   comments

#### ❓ Why not just use Akismet?

Akismet is great for real-time filtering — but it doesn’t help you _clean up_ existing
spam, and it doesn’t support pattern-based bulk actions. AOS Comment Spam Cleanup
fills that gap. Use both.

#### 🔒 Privacy

This plugin does not collect, transmit or store any personal data on external servers.
All processing happens on your own server. No external API calls are made during
normal operation.

#### 🌍 Translations

Ships with English and German (`de_DE`). Help translate at [translate.wordpress.org](https://translate.wordpress.org/).

#### 👨‍💻 Developer

Made by [AOS Digital](https://aos-digital.de/) — WordPress development from Germany.

## Screenshots

[⌊Scanner tab — search for URL patterns and take bulk action on matching comments⌉⌊
Scanner tab — search for URL patterns and take bulk action on matching comments⌉[

Scanner tab — search for URL patterns and take bulk action on matching comments

[⌊Spam analysis — automatically surfaced top spam domains from your trash and spam
folder⌉⌊Spam analysis — automatically surfaced top spam domains from your trash 
and spam folder⌉[

Spam analysis — automatically surfaced top spam domains from your trash and spam
folder

[⌊WordPress Blocklist overview — manage your disallowed keys directly from the plugin⌉⌊
WordPress Blocklist overview — manage your disallowed keys directly from the plugin⌉[

WordPress Blocklist overview — manage your disallowed keys directly from the plugin

[⌊Automation tab — configure recurring scheduled cleanup with WP-Cron⌉⌊Automation
tab — configure recurring scheduled cleanup with WP-Cron⌉[

Automation tab — configure recurring scheduled cleanup with WP-Cron

[⌊Protection tab — enable the honeypot field and comment quality scoring⌉⌊Protection
tab — enable the honeypot field and comment quality scoring⌉[

Protection tab — enable the honeypot field and comment quality scoring

[⌊Show matches — the comments a pattern actually catches, listed with author, excerpt,
post, date and status before you run an action on them⌉⌊Show matches — the comments
a pattern actually catches, listed with author, excerpt, post, date and status before
you run an action on them⌉[

Show matches — the comments a pattern actually catches, listed with author, excerpt,
post, date and status before you run an action on them

## Installation

 1. Upload the `aos-comment-spam-cleanup` folder to `/wp-content/plugins/`
 2. Activate the plugin in **Plugins  Installed Plugins**
 3. Go to **Comments  Comment Cleanup**

**Quick start to delete shorturl.fm spam:** 1. Open the **Scanner** tab 2. The pattern`
shorturl.fm` is pre-filled — click **Check Count** 3. Once you see the count, click**
Execute Action** (default action: Mark as Spam) 4. Done!

## FAQ

### Is it safe to delete comments permanently?

Permanently deleted comments cannot be recovered. Click **Show matches** first: 
it lists the comments the pattern actually catches, so you can check them before
acting. We still recommend **Mark as Spam** or **Move to Trash** for anything you
are not certain about — both are reversible.

### How many matches does the list show?

The 20 most recent ones, newest first, and it tells you how many more there are.
It is a spot check, not a second comment screen — the full count comes from **Check
Count**.

### Do the listed spam URLs become clickable links?

No. Author URLs are printed as plain text on purpose. The whole point is to look
at addresses you do not trust; nothing in the list can be clicked through to.

### Will this slow down my site?

No. The plugin only loads on your admin page and during comment submission (honeypot
+ quality check). There is zero frontend performance impact for visitors.

### Does the honeypot work with page caching?

Yes. A tiny inline JavaScript snippet empties the honeypot field for real users 
on page load, so cached pages work correctly. Bots that do not execute JavaScript
still fill the field and get caught.

### What is Regex Mode?

Regex Mode uses MySQL REGEXP instead of LIKE for pattern matching, allowing complex
patterns like `shorturl\.[a-z]+` to match any `shorturl.*` domain. Standard mode(
LIKE) is recommended for simple domain matching. Patterns are validated before execution.

### Does it conflict with other comment plugins?

AOS Comment Spam Cleanup uses only standard WordPress hooks (`pre_comment_approved`,`
preprocess_comment`, `comment_form_after_fields`) and does not override or replace
other plugins’ functionality. It has been tested alongside Akismet and Antispam 
Bee.

### Does the quality scorer affect legitimate comments?

The default threshold of 5 is conservative. A normal comment with one link scores
2 points — safely below the threshold. Test with “Hold for moderation” (not “Mark
as Spam”) first to see which comments get flagged before applying stricter settings.

### How do I reset all settings?

Use WP-CLI: `wp option delete aosc_settings`
 Or go to **Tools  Site Health  Info
WordPress** and look for the `aosc_settings` option.

### Does it work on Multisite?

Yes, on individual sites. Network-wide management across all sites in a network 
is planned for a future version.

### Can I use this to block future spam as well?

Yes — add patterns to the WordPress Blocklist (via the scanner or the blocklist 
card). Any future comment containing that pattern will automatically be marked as
spam by WordPress before any other check runs.

## Reviews

![](https://secure.gravatar.com/avatar/6a1b9727437dfb07066db551763185fc5e0525031dc9863663c85c0813a24662?
s=60&d=retro&r=g)

### 󠀁[Spam-Kommentare mit einem Klick weg](https://wordpress.org/support/topic/spam-kommentare-mit-einem-klick-weg/)󠁿

 [staufenwald](https://profiles.wordpress.org/staufenwald/) May 27, 2026

Als WooCommerce-Shop hatten wir hunderte Spam-Kommentare in der Datenbank, die Performance
und Übersicht gelitten. Das Plugin von AOS Digital hat das in wenigen Minuten sauber
bereinigt – ohne Aufwand, ohne Probleme. Schlank, zuverlässig, kostenlos. Klare 
Empfehlung! – Team Staufenwald, staufenwald.de

 [ Read all 1 review ](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/)

## Contributors & Developers

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

Contributors

 *   [ AOS Digital ](https://profiles.wordpress.org/aosdigital/)

“AOS Comment Spam Cleanup” has been translated into 2 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/aos-comment-spam-cleanup/contributors)
for their contributions.

[Translate “AOS Comment Spam Cleanup” into your language.](https://translate.wordpress.org/projects/wp-plugins/aos-comment-spam-cleanup)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/aos-comment-spam-cleanup/),
check out the [SVN repository](https://plugins.svn.wordpress.org/aos-comment-spam-cleanup/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/aos-comment-spam-cleanup/)
by [RSS](https://plugins.trac.wordpress.org/log/aos-comment-spam-cleanup/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.6.2

 * Added: a footer line on the plugin’s own admin screen, nowhere else. The .pot
   file now ships in `languages/`.

#### 1.6.1

 * Fixed: deleting spam no longer swallows genuine replies to it. Bulk deletion 
   bypassed wp_delete_comment(), so a reply kept pointing at a parent that no longer
   existed — it stayed in the database and was still counted, but the threaded comment
   query that every theme uses dropped it, and no reader ever saw it again. Replies
   are now moved to top level before the delete, exactly as WordPress does.
 * Fixed: the comment cache is cleared after bulk delete, spam and trash actions,
   so a following read no longer returns the previous state.
 * Added: uninstall.php. Deleting the plugin now removes its settings and its scheduled
   event — on every site of a multisite. Comments are never touched: deleting a 
   plugin is not a request to delete content.

#### 1.6.0

 * New: **Show matches**. Lists the comments a pattern catches — author, excerpt,
   post, date and status — before you run an action on them.
 * Author URLs in the list are plain text, never links: these are the addresses 
   you are inspecting.
 * The list closes automatically when the pattern changes or an action has run, 
   so it can never describe a different search than the one in the field.
 * Read-only: the new endpoint only reads, and requires the same capability and 
   nonce as the rest of the screen.
 * Added a test suite covering the quality scorer and the list formatting (39 checks,
   no WordPress required).

#### 1.5.2

 * Tested with WordPress 7.1 — admin screen, AJAX scanner, bulk actions and the 
   scheduled cleanup were all exercised on a clean 7.1 install.
 * No code changes required: no deprecated core functions, no notices in the debug
   log.

#### 1.5.1

 * Fixed: the “Support” link on the Plugins screen led to a page that no longer 
   exists; it now opens the plugin author’s contact page.
 * Fixed: the plugin’s “Visit plugin site” link pointed at the WordPress.org listing
   instead of the plugin’s own documentation page.

#### 1.5.0

 * New: Disable Gravatar — blocks all external requests to gravatar.com (GDPR/DSGVO-
   friendly)
 * New: Disable Comments Globally — closes comments and pings on all post types 
   via WordPress filters; no database changes, reversible instantly
 * New: “Rate this plugin” link in the admin header and Ko-fi bar
 * Fix: Automation and Protection tab settings are now saved independently (no longer
   overwrite each other)
 * Improved: Plugin version bumped to 1.5.0; German translation updated with new
   strings

#### 1.4.0

 * Fix: Plugin renamed to AOS Comment Spam Cleanup; slug changed to aos-comment-
   spam-cleanup
 * Fix: All internal prefixes updated from WCC_ (3 chars) to AOSC_ (4 chars) per
   WP.org guidelines
 * Fix: Honeypot inline script migrated from echo “” to wp_add_inline_script()
 * Fix: Promotional claims (“fastest way”, “zero false positives”) removed from 
   description
 * Fix: Plugin URI updated to final WP.org plugin page URL

#### 1.3.1

 * Fix: phpcs:disable/enable blocks replace per-line ignores in scanner — all Plugin
   Check warnings resolved
 * Fix: Main plugin file renamed to comment-spam-cleanup.php matching the plugin
   slug
 * Fix: Remaining “WP Comment Cleanup” name references cleaned from readme.txt

#### 1.3.0

 * Fix: Inline nonce verification per AJAX handler (PHPCS NonceVerification.Missing
   resolved)
 * Fix: Escape number_format_i18n() output via esc_html()
 * Fix: wp_unslash() + absint() for quality_threshold input
 * Fix: esc_attr() applied inline in honeypot field output
 * Fix: wp_unslash() + sanitize_text_field() for honeypot POST check
 * Fix: phpcs:ignore annotations for legitimate SQL interpolation in scanner
 * Fix: Removed deprecated load_plugin_textdomain() call (auto-loaded since WP 4.6)
 * Fix: Plugin name no longer contains restricted term; renamed to AOS Comment Spam
   Cleanup
 * Fix: Tested up to updated to WordPress 7.0
 * Improved: Text domain updated to comment-spam-cleanup

#### 1.2.0

 * New: Ko-fi donation link in plugin action row and admin header
 * New: “Settings” link in plugin action row for faster access
 * New: Action description hint strip in scanner (explains the chosen action)
 * New: Responsive layout for mobile admin
 * New: German (`de_DE`) translation file
 * New: Score factor reference table in Protection tab
 * New: Validation of allowed values in settings save (security hardening)
 * Fix: `str_contains()` replaced with PHP 7.4-compatible `strpos()` in quality 
   scorer
 * Fix: All hardcoded German strings in JavaScript replaced with localised `i18n`
   object
 * Fix: Button labels after AJAX now use localised strings (no language regression)
 * Improved: Full English-first UI with proper `Text Domain` internationalisation
 * Improved: Accessible markup (role, aria-controls, aria-label throughout)
 * Improved: Settings input validation for cron_interval, cron_action, quality_action
 * Improved: Clearer descriptions and help text for every setting

#### 1.1.0

 * New: Scheduled cleanup via WP-Cron (hourly/daily/weekly)
 * New: Action selector — mark as spam, move to trash, or delete permanently
 * New: Regex mode (MySQL REGEXP) in scanner
 * New: Honeypot comment form field (Feature 5)
 * New: Comment quality scoring with configurable threshold (Feature 4)
 * New: Three-tab admin UI (Scanner · Automation · Protection)

#### 1.0.0

 * Initial release — URL pattern scanner, bulk delete, WordPress blocklist integration,
   preset shortlink patterns, spam domain analyser

## Meta

 *  Version **1.6.2**
 *  Last updated **1 month ago**
 *  Active installations **20+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/aos-comment-spam-cleanup/), [German](https://de.wordpress.org/plugins/aos-comment-spam-cleanup/),
   and [Spanish (Spain)](https://es.wordpress.org/plugins/aos-comment-spam-cleanup/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/aos-comment-spam-cleanup)
 * Tags
 * [comment moderation](https://brx.wordpress.org/plugins/tags/comment-moderation/)
   [comment spam](https://brx.wordpress.org/plugins/tags/comment-spam/)[delete comments](https://brx.wordpress.org/plugins/tags/delete-comments/)
   [honeypot](https://brx.wordpress.org/plugins/tags/honeypot/)[spam filter](https://brx.wordpress.org/plugins/tags/spam-filter/)
 *  [Advanced View](https://brx.wordpress.org/plugins/aos-comment-spam-cleanup/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/reviews/)

## Contributors

 *   [ AOS Digital ](https://profiles.wordpress.org/aosdigital/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/aos-comment-spam-cleanup/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://ko-fi.com/aosdigital)