• Skip to primary navigation
  • Skip to main content
Logos Creative

Logos Creative

Products Made for People, Built in Atlanta

  • Content Library
  • About
  • Contact

Bulk Remove Spam Comments in WordPress

Sometimes, sites can get overloaded with spam comments—thousands per day. Whether this is the case, or you’ve just never emptied out your spam comments on a big site, you can end up with too many to trash. This is due to some restrictions to the amount of data that can be sent along with a request.

You can clean things up with some simple SQL queries—it’s much more efficient than trying to use the WordPress admin area when you need to remove spam comments in bulk.

Before you do anything, get a full backup of your database. Seriously.

Querying the Database

Depending on your hosting environment and your level of expertise, you’ll run these queries

  • using phpMyAdmin, in the SQL tab
  • using a database management GUI, like Sequel Pro
  • using the MySQL command-line tool

To check the output of any of these queries before actually deleting anything, replace DELETE FROM with SELECT * FROM. You’ll see all the rows that will be deleted when you run the real query.

As well, note that these queries assume your database table prefix is wp_. You might need to change it.

Spam Removal Queries

To delete all comments marked as spam, run:

DELETE FROM wp_comments WHERE comment_approved = 'spam';

That should clear out your spam comments area in the admin. You should see about as many rows affected as you had spam comments.

Meta Data Cleanup

Even after you delete all those comments, you’ll still be left with all their metadata cluttering your database.

If you use Akismet, you can run this to get rid of everything:

DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';

This query will attempt to delete any comment that no longer exists. It’s a little more complex, so double check the output before deleting—hopefully, the previous query will do the hard work first.

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);

After all is said and done, optimize both the wp_comments and wp_commentmeta tables.

Now, go figure out how to stop that spam from ever getting to you in the first place. 🙂

July 9, 2014 By Cliff Seal Filed Under: Development, Resources, WordPress

Content Library

Readings on a wide range of topics for small businesses and nonprofits.

 

See Articles

Copyright © 2020 Logos Creative