Custom Post Type Cleanup


Custom post type posts are left in the database if a post type is no longer registered (in use).

Plugins and themes can (without you knowing) use custom post types as a way to store data. These posts stay in the database forever if they’re not cleaned up by the plugin/theme itself upon deletion.

There are a lot of plugins that clean your database (by removing revisions, drafts etc.), but I haven’t found one that does a cleanup of unused post type posts.

This plugin provides an easy way to detect and remove posts from post types that are no longer in use. The settings page for this plugin is at wp-admin > Tools > Custom Post Type Cleanup.

Note: The proper WordPress delete function wp_delete_post is used instead of running a direct MySQL query to delete the posts. This way all associated post data (comments, post meta etc.) are also deleted from the database.

Since version 1.2.0 you can re-register unused custom post types for a limited period of time. This allows you to inspect and delete the posts like you would normally (in the wp-admin).


  • Plugin page
  • Plugin page after re-registering unused custom post types.
  • Plugin page after cleaning up all unused post type posts


Follow these instructions to install the plugin.

  1. In your WordPress admin panel, go to Plugins > New Plugin, search for “custom post type cleanup” and click “Install now”.
  2. Alternatively, download the plugin and upload the contents of to your plugins directory, which usually is /wp-content/plugins/.
  3. Activate the plugin
  4. Go to wp-admin > Tools > Custom Post Type Cleanup and see if there are unused custom post type posts in the database.


August 10, 2020
Simple plugin that works great. Does exactly what it says. Saved me a ton of time
July 26, 2020
Within minutes of installing this terrific plugin, I was able to quickly identify and remove hundreds of old posts in my database from several very old and no longer used custom post types, thereby helping me shrink and streamline a bloated database. Huge thanks to the developer for providing this great tool for free. <3
May 31, 2020
This does exactly what it says on the tin and does it very well. I love being able to re-register them for a short time just to be sure of what I'm about to do. Great stuff!
November 7, 2019
I have been looking for a plugin that can clean up these post types, but, most of the 'clean up' plugins only remove basic safe stuff like drafts... I can remove drafts myself! This one gets rid of those old post types that you created for a minute and never could get rid of in the backend. Thank you
Read all 22 reviews

Contributors & Developers

“Custom Post Type Cleanup” is open source software. The following people have contributed to this plugin.


“Custom Post Type Cleanup” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Custom Post Type Cleanup” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Add batch size option to admin form.


  • Add ability to re-register unused custom post types.