Hey there! Is your WordPress site cluttered with old posts, revisions, or content that no longer fits your brand? I know how frustrating it can be to manage a bloated WordPress site.
As your site grows and evolves, it‘s important to periodically clean things up to keep your content fresh, optimized, and aligned with your current strategy. But deleting posts one-by-one is tedious and time-consuming, especially if you have hundreds or thousands of posts!
Fortunately, bulk deleting WordPress posts is easy with the right tools and techniques. In this expert guide, I‘ll show you two simple methods to quickly mass delete any number of posts from your WordPress website.
Whether you‘re a beginner looking to declutter your blog or a developer needing to purge thousands of old posts, you‘ll learn how to safely bulk delete your WordPress posts in minutes.
Let‘s get started!
Why Bulk Delete WordPress Posts? 3 Key Benefits
So why bother bulk deleting old WordPress posts? Here are three key benefits:
Improve website performance – The more posts and revisions you have, the larger your WordPress database grows. This can slow down your website‘s back-end and front-end. Bulk deleting unused posts frees up database space and improves loading speed.
Enhance content quality – Over time, older posts can become outdated, irrelevant, or off-brand. Pruning them keeps your site lean and focused on your best, most current content. This improves user experience and engagement.
Simplify content management – Too many pages of old posts clog up your WordPress admin and make it harder to manage your site. Bulk deleting them streamlines your dashboard so you can work more efficiently.
Did you know that over 70 million new WordPress posts are published every month? That‘s a staggering 2.3 million posts per day! (Source)
With so much content being produced, it‘s no wonder that bulk post deletion is a common need for WordPress site owners. But don‘t worry, I‘ve got you covered with two easy solutions below.
Method 1: Bulk Delete WordPress Posts Using the Bulk Actions Feature (No Plugin Required!)
The quickest way to bulk delete posts in WordPress is by using the built-in Bulk Actions feature. This option is perfect for beginners because it doesn‘t require installing any extra plugins.
Here‘s how to do it:
- In your WordPress dashboard, go to Posts > All Posts.
- Select the checkbox at the top of the posts table to select all posts on the current page.
- Click the Bulk Actions dropdown above the table and choose Move to Trash.
- Click Apply to delete the selected posts.

By default, WordPress displays 20 posts per page. To bulk delete more posts at once:
- Click Screen Options at the top right of the Posts page.
- Change the Number of items per page to a higher number like 100 or 200.
- Click Apply.
Now you can trash more posts at a time. Easy peasy!
A Warning About Bulk Deleting Posts Directly
I recommend first moving posts to the trash instead of deleting them permanently. This gives you a chance to restore the posts if you change your mind or delete the wrong ones by accident.
To permanently delete trashed posts:
- Go to Posts > Trash in your WordPress dashboard.
- Select the posts you want to delete forever.
- Choose Delete Permanently from the Bulk Actions menu.
- Click Apply.

Be careful, there‘s no undo button for permanent deletions! I always recommend backing up your WordPress site before bulk deleting, just in case.
Method 2: Bulk Delete Old Posts in WordPress Using the Bulk Delete Plugin
For more advanced bulk deletion options, you‘ll need a plugin. I recommend the free Bulk Delete plugin, which makes it easy to mass delete posts and other content based on specific criteria.
Here are some of the powerful bulk deletion options it provides:
- Delete posts by category, tag, custom taxonomy, post type, or status
- Delete posts created before or after a certain date
- Delete posts with zero comments
- Delete sticky posts
- Delete old post revisions
- Move posts to trash or delete permanently
- Schedule auto post deletions
To get started, install and activate the free Bulk Delete plugin from the WordPress.org plugin directory.
Then go to Bulk WP > Bulk Delete Posts to access the plugin‘s settings:

The plugin has six tabs with different bulk delete options:
- Bulk Delete Posts – Delete posts by post type, category, tag, post status, and more.
- Bulk Delete Post Meta Fields – Delete specific post meta keys and values.
- Bulk Delete Sticky Posts – Remove sticky posts.
- Bulk Delete Post Revisions – Clean up old post revisions.
- Bulk Delete Posts by Date & Time – Delete posts by month, year, or custom date range.
- General – Set default plugin behavior and access support links.
Each tab has different filters to dial in your bulk post deletion. I recommend testing your settings on a small batch of posts first to make sure you‘re deleting the right ones.
When you‘ve selected your desired options, click Bulk Delete to delete the posts. Depending on your settings, the plugin can delete thousands of posts at once, which is a huge time saver!
After bulk deleting your posts, I also suggest using the plugin‘s Bulk Delete Post Meta Fields and Bulk Delete Post Revisions options to clean up orphaned metadata and old revisions.
What About Bulk Deleting Pages and Other Content?
In addition to posts, the Bulk Delete plugin supports bulk deleting other WordPress content types like:
- Pages
- Media attachments
- Post revisions
- Comments
- Users
- Scheduled posts
To access these settings, go to the Bulk WP menu in your WordPress dashboard and choose the corresponding item.

Pretty handy, right? With the Bulk Delete plugin, you can clean up nearly every area of your WordPress site in just a few clicks.
Bulk Delete WordPress Posts Directly from the Database with SQL
For advanced users and developers, it‘s also possible to bulk delete WordPress posts by running SQL queries directly in your WordPress database.
Heads up: This method is risky and can break your site if done incorrectly. I only recommend it for users already comfortable with databases and SQL.
WordPress stores all your posts in the wp_posts database table. Each post has a unique ID and post_type, post_status, and other metadata.
Here‘s a sample of what the wp_posts table looks like:
| ID | post_type | post_status | post_title | post_name |
|---|---|---|---|---|
| 1 | post | publish | Hello world! | hello-world |
| 2 | page | publish | Sample Page | sample-page |
| 3 | post | draft | My draft post | my-draft-post |
| 4 | post | publish | Another published post | another-published-post |
To mass delete posts with SQL, you‘ll need to write a DELETE query that matches the posts you want to remove based on their IDs, status, type, or other conditions.
Here‘s a general template:
DELETE FROM wp_posts
WHERE post_type = ‘post‘
AND post_status = ‘publish‘
AND post_date < ‘2022-01-01‘;
This query would delete all published posts older than January 1, 2022. You can modify the WHERE conditions to match your specific needs.
To run the query:
- Backup your WordPress database first in case anything goes wrong.
- Log into your hosting account‘s phpMyAdmin tool.
- Select your WordPress database.
- Go to the SQL tab.
- Paste in your SQL query.
- Click Go to run the query.
After bulk deleting posts, you should also clean up related post metadata and term relationships with follow-up queries:
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;
DELETE tr FROM wp_term_relationships tr
LEFT JOIN wp_posts wp ON wp.ID = tr.object_id
WHERE wp.ID IS NULL;
Again, be extremely careful when running SQL queries directly on your live WordPress database. One wrong move can wipe out your entire site!
If you‘re not confident with SQL, I recommend sticking with the plugin method to safely bulk delete your WordPress posts.
Bulk Delete Posts in WordPress Programmatically
As a final option for developers, it‘s possible to bulk delete posts in WordPress programmatically via WP-CLI commands or by writing a custom PHP script.
This is handy if you need to automate bulk post deletions or integrate it into your development workflow. You‘ll need to be comfortable using the command line to go this route.
Here are a few examples of bulk deleting posts with WP-CLI:
wp post delete $(wp post list --post_status=trash --format=ids)
wp post delete $(wp post list --category_name=uncategorized --format=ids)
wp post delete $(wp post list --author=john --format=ids)
And here‘s a basic PHP function you can drop into your theme‘s functions.php file or a custom plugin to programmatically delete posts:
function bulk_delete_posts() {
$args = array(
‘post_type‘ => ‘post‘,
‘post_status‘ => ‘publish‘,
‘date_query‘ => array(
array(
‘before‘ => ‘2022-01-01‘
)
)
);
$posts = get_posts($args);
foreach($posts as $post) {
wp_delete_post($post->ID, true);
}}
add_action(‘admin_init‘, ‘bulk_delete_posts‘);
This code deletes all published posts older than January 1, 2022. Adjust the arguments in $args to match the criteria you want.
I recommend testing programmatic bulk deletions on a staging site before running them on your live site, just to be safe!
Best Practices for Bulk Deleting WordPress Posts
We‘ve covered a lot of ground! Let‘s review some best practices to follow when bulk deleting posts in WordPress:
- Always back up your WordPress site before mass deleting posts, just in case.
- If SEO is a priority, set up 301 redirects from deleted post URLs to relevant live pages to avoid 404 errors.
- Schedule bulk post deletions during off-peak traffic hours to minimize performance impact.
- Break up mass deletions into smaller batches of 100-500 posts at a time to avoid server overload.
- Use the "Move to Trash" option instead of deleting permanently right away as a safety net.
- Don‘t forget to clean up related post metadata, term relationships, and revisions afterwards.
- Test bulk deletions on a staging site first if you‘re using custom SQL queries or code.
Frequently Asked Questions About Bulk Deleting Posts in WordPress
Before we wrap up, let me address some common questions I get about bulk deleting WordPress posts:
What happens to URL slugs and traffic after bulk deleting posts?
When you delete a post in WordPress, its URL will return a 404 error because the content no longer exists. To avoid this, you can set up 301 redirects from the old post URLs to relevant live pages on your site. This has the added SEO benefit of preserving link equity.
Will bulk deleting posts speed up my WordPress site?
It can, but it depends on your specific situation. The WordPress database stores all your site‘s posts, so the more you have, the larger the database. Bulk deleting old, unused posts can reduce your database size and improve back-end performance. However, if your database is already well-optimized, you may not notice a huge speed boost after bulk deleting.
Is it better to delete posts or set them to draft?
It depends on your goals. If you want to remove the posts from your site but think you might want to restore them later, setting them to draft keeps them in your database but hides them from public view. This is a good option for seasonal content you want to unpublish temporarily. But if you want to permanently remove the posts and free up database space, deleting them is the way to go.
Can I bulk delete all posts from a specific category or tag?
Yes, both the Bulk Actions method and the Bulk Delete plugin allow you to delete posts by category or tag. It‘s a handy way to prune old content around a specific topic.
Is it safe to use the Bulk Delete plugin?
Yes, the Bulk Delete plugin is safe to use. It‘s been around since 2009, has over 100,000 active installs, and is regularly updated to fix bugs and add new features. Of course, I always recommend testing any new plugin on a staging site before using it on your live site, just to be cautious.
Will bulk deleting WordPress posts affect my SEO rankings?
It can if you‘re not careful. When you delete a post, any links pointing to that post‘s URL will break, which can hurt your SEO if the post was ranking well. To minimize the SEO impact, either set up 301 redirects from the deleted post URLs to relevant live pages, or only delete posts that have little traffic and no inbound links.
The Verdict: Two Easy Ways to Bulk Delete WordPress Posts
So there you have it, two easy methods to bulk delete WordPress posts quickly and safely:
- WordPress‘ built-in Bulk Actions feature (no plugin required)
- The free Bulk Delete plugin (for more advanced options)
Whether you need to delete a handful of old posts or purge thousands from your database, these tools make short work of cleaning up your WordPress blog or website.
Just remember to follow best practices like backing up your site first, setting up redirects for important pages, and thoroughly testing bulk deletions before applying them to a live site.
With smart content pruning, you can keep your WordPress site lean, fast, and focused on your best content. I hope this in-depth guide has given you the knowledge and confidence to bulk delete your WordPress posts like a pro!
Happy cleaning!
