Deleting posts in WordPress can be cumbersome if you are trying to delete a large number of posts. The most practical method is to click on the screen options menu at the top of your admin area and increase the number of posts that are displayed on every page.
This works really well if you have a few hundred of posts, however you will experience timeouts if you try to delete too many at a time.
There are many reasons why you may need to delete a large number of posts in bulk. For example, you may be deleting many old news posts and revamping your blog. Or perhaps you imported posts incorrectly and need to remove them, but are unavailable to revert to a backup.
I recently had to delete a huge number of posts from one of my websites. I had installed an auto posting WordPress plugin that published related YouTube videos every hour. The idea was to generate traffic naturally from Facebook followers. The system worked…at first. However, traffic dropped off once Facebook cleaned up their act and stopped people trying to game the home page.
The other day, I finally got round to removing all the video posts I had added. There were over 15,000 posts that had to be deleted. Due to timeouts, deleting all of these posts would have taken an age using the screen options method.
I therefore turned to a free WordPress plugin called Bulk Delete. It is a fantastic tool that allows you to manage bulk deletes more intelligently. It lets you filter items for deletion in a number of ways.
The first option is post status. This lets you delete posts with a specific status, such as draft, scheduled, or pending.
A number of options are available for deletion. You can restrict deletion to posts that are older than a specific date. Alternatively, you can delete the first X amount of posts. If you are deleting thousands of posts, I recommend limiting post deletions to 500 posts or less so that you do not experience any time outs.
The default selection is to move all items to WordPress trash. Be aware that if you leave this selected, the items will be kept in your trash until it is emptied. The default number of days that items are stored in your trash is 30, however you can alter this by adding define( ‘EMPTY_TRASH_DAYS’, 5 ); to your website wp-config.php configuration file.
When I am deleting a lot of posts, I normally select the option to delete the posts permanently so that they are removed from my website database right away.
The plugin also lets you delete posts by category. This is particularly useful if you are removing a specific section from your website.
Posts can also be deleted by tags. There is an option at the bottom of your list to select all tags or deselect all tags. This is useful if you have a large number of tags.
Posts can also be deleted by URL. In my opinion, this is one of the plugin’s best features, as search engine optimization software frequently outputs a list of URLs that you should alter or delete. All you would have to do is enter these URLs into the URL box and then delete then.
Post revisions can also be deleted in this section. This is a quick way of reducing the size of your database by removing unnecessary post drafts.
It is not just posts that Bulk Delete can delete. The plugin also lets you delete pages, custom post types, and custom taxonomies.
A number of additional add ons are available from the developer’s website. These include delete posts by custom field and delete posts by title. Many other add ons are available that will help you schedule the deletion of posts according to certain factors. All of these add ons retail at $15 each (except the delete posts by custom field add on – that costs $30).
If you find yourself in a situation where you need to delete a large number of posts or pages, or simply need a better way to filter the content that is being deleted, then I recommend using Bulk Delete. I have used it on a few occasions and have always found it has saved me a huge amount of time.