Title: Zarin Comment Spam Cleaner
Author: zneugebauer
Published: <strong>September 16, 2026</strong>
Last modified: September 16, 2026

---

Search plugins

![](https://ps.w.org/zarin-comment-spam-cleaner/assets/banner-772x250.png?rev=3699210)

![](https://ps.w.org/zarin-comment-spam-cleaner/assets/icon-256x256.png?rev=3699210)

# Zarin Comment Spam Cleaner

 By [zneugebauer](https://profiles.wordpress.org/zneugebauer/)

[Download](https://downloads.wordpress.org/plugin/zarin-comment-spam-cleaner.1.1.1.zip)

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

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

## Description

Zarin Comment Spam Cleaner gives site moderators a focused cleanup screen under 
Tools > Comment Spam Cleaner.

It can find comments and product reviews that match any of these filters:

 * Russian/Cyrillic characters in the comment text or commenter name.
 * A keyword or phrase in the comment text.
 * A minimum number of links in the comment text.
 * The commenter’s email domain.
 * A selected comment date range.
 * Exact commenter names or registered WordPress usernames.

Every filter is optional and a comment is selected when it matches any single enabled
filter — you only need to turn on the ones you want. A whitelist lets you protect
specific commenters (by name, username, or email) from ever being matched, even 
if they trip another filter.

The plugin shows a preview before changing anything, and the full matching set can
be exported to CSV for your own records before you confirm a cleanup. Moving matches
to the WordPress Trash is the default action. Permanent deletion is available only
after choosing it explicitly and confirming the preview.

Cleanup runs in batches of up to 100 comments to reduce timeout risk on sites with
large comment tables. The preview is frozen at the newest comment ID that existed
when it was created, expires after 24 hours, and does not unexpectedly include newer
comments.

The plugin does not send comment data to an external service and does not run automatic
background deletion.

### Privacy

This plugin does not collect, transmit, or share personal data. It reads existing
local comment and user records only when an authorized moderator runs a preview 
or cleanup.

## Screenshots

[⌊Choose Russian/Cyrillic, date-range, and exact commenter-name filters, then select
the safer Trash action or permanent deletion.⌉⌊Choose Russian/Cyrillic, date-range,
and exact commenter-name filters, then select the safer Trash action or permanent
deletion.⌉[

Choose Russian/Cyrillic, date-range, and exact commenter-name filters, then select
the safer Trash action or permanent deletion.

[⌊Review the match count and sample comments before confirming each batched cleanup
action.⌉⌊Review the match count and sample comments before confirming each batched
cleanup action.⌉[

Review the match count and sample comments before confirming each batched cleanup
action.

## Installation

 1. Upload `zarin-comment-spam-cleaner.zip` through Plugins > Add New > Upload Plugin.
 2. Activate Zarin Comment Spam Cleaner.
 3. Go to Tools > Comment Spam Cleaner.
 4. Choose one or more filters and select whether matches should go to Trash or be 
    permanently deleted.
 5. Preview the matches and review the sample comments.
 6. Confirm and process the cleanup batches until no matches remain.

## FAQ

### Does the Russian-text filter detect only Russian?

It detects Cyrillic characters commonly used in Russian. Because other languages
also use Cyrillic, review the preview before removing comments.

### How are multiple filters combined?

They use an “any” rule. A comment is selected if it contains Cyrillic text, falls
within the chosen date range, or matches one of the exact commenter names/usernames.

### What does the username filter match?

It matches the comment’s exact author name. For comments from registered users, 
it also matches the user’s exact WordPress login username.

### What comment types are included?

Standard WordPress comments and product reviews are included. Pingbacks, trackbacks,
WooCommerce order notes, and other internal comment types are excluded.

### Can a commenter be protected from every filter?

Yes. Add their exact name, username, or email to the whitelist field. They are skipped
even if they match a filter above.

### Can I see everything before it’s removed?

Yes. Beyond the on-screen preview sample, you can export the full matching set to
a CSV file before confirming a cleanup batch.

### Can I undo a cleanup?

Comments moved to Trash can be restored through the normal WordPress Comments screen.
Permanently deleted comments cannot be restored unless you have a database backup.

### Does the plugin automatically delete future comments?

No. Cleanup happens only when an authorized moderator creates a preview, confirms
it, and processes a batch.

### Does comment data leave the site?

No. All matching and cleanup happen inside the site’s WordPress database. The plugin
has no external service or tracking connection.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ zneugebauer ](https://profiles.wordpress.org/zneugebauer/)

[Translate “Zarin Comment Spam Cleaner” into your language.](https://translate.wordpress.org/projects/wp-plugins/zarin-comment-spam-cleaner)

### Interested in development?

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

## Changelog

#### 1.1.1

 * Restructured comment-matching SQL so every dynamic value is bound via its own
   wpdb::prepare() call at the point it’s introduced, instead of being collected
   into a separate array applied later. Same query behavior, easier to audit.

#### 1.1.0

 * Added keyword/phrase, link-count, and email-domain filters.
 * Added a whitelist to exclude specific commenters from every filter.
 * Added CSV export of the full matching set from the preview screen.
 * Clarified that every filter is optional throughout the filter screen.
 * The browser tab title now distinguishes the filter step from the review step.
 * Review-table comment links now open in a new tab so the preview isn’t lost.

#### 1.0.0

 * Initial release with Cyrillic-text, date-range, and commenter-name filters.
 * Added preview samples, Trash and permanent-delete modes, and batched processing.

## Meta

 *  Version **1.1.1**
 *  Last updated **1 week ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [bulk delete](https://wordpress.org/plugins/tags/bulk-delete/)[cleanup](https://wordpress.org/plugins/tags/cleanup/)
   [comments](https://wordpress.org/plugins/tags/comments/)[moderation](https://wordpress.org/plugins/tags/moderation/)
   [spam](https://wordpress.org/plugins/tags/spam/)
 *  [Advanced View](https://wordpress.org/plugins/zarin-comment-spam-cleaner/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

 *   [ zneugebauer ](https://profiles.wordpress.org/zneugebauer/)

## Support

Got something to say? Need help?

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