Plugins Garbage Collector WordPress plugin

Plugins Garbage Collector

Plugins Garbage Collector

Plugins Garbage Collector

Plugins Garbage Collector

This plugin scans your WordPress database and shows the tables which not belong to the core WordPress installation.
Some WordPress plugins create and use its own database tables. Those tables (small and large) are left in your database after plugin deactivation and deletion often. If your blog is more than 1 day old you have some plugins garbage in your WordPress database probably. With the help of this plugin you can check your database and discover if it is clean or not. Plugin shows not WordPress tables list with quant of its records, size they occupy in Kb. Plugin name and plugin state are shown too if those data are available.
Changes made to the core WordPress database tables (columns added) could be discovered too.

The latest version: 0.10.1. Click the Download button below if you wish to try it.
Quant of downloads: 60599
Attention! Starting from version 0.9.2 plugin works with WordPress 3.0 and higher only. For earlier WordPress versions use plugin version 0.9.1 from here.

Quick Links


Look at “Plugins Garbage Collector” plugin in action screenshot:

Plugins Garbage Collector in action
  • Red color rows with high probability show old deleted plugins forgotten tables, so-called plugins garbage, which can be deleted from your WordPress database with the help of Delete Tables button or some of your favorite database tools, e.g. phpMyAdmin.
  • Blue color rows show tables which belong to deactivated plugins. Those tables are probably candidates for deletion after you decide to delete theirs parent plugins.
  • Green color rows show tables which belong to active plugins. Those tables are now in use. You do not need to touch them.

How Plugins Garbage Collector works? It selects all table names from your WordPress database, excludes core WordPress installation tables, then scans your plugins directory .php files text for table names and shows you the result as written above.

Delete Tables button appears if you have red color rows in the scan results table only. You need to turn on checkbox near the table name if you decided to drop it before click the Delete Tables button.
Attention! Delete table operation can not be rolled back. Please double think what are you doing before use Delete Tables button.
Plugins Garbage Collector is the decision support tool only and its conclusion about table usage can be wrong in some (I hope rare) cases. For example, if plugin developer uses some sophisticated scheme to assign names for his tables, not puts simple text into source code e.g. ‘my_plugin_table_name’, but calculates it with some algorithm e.g. ‘my’.’_’.’plugin’.’_’.’table’, etc… Final decision is for you – blog owner.

It is highly recommended to make database backup before apply any actions to your WordPress database.

Do you have a suggestion what useful feature we can add to this plugin? Please, left your comments.


Dear plugin User,
if you wish to help me with this plugin translation I very appreciate it. Please contact me via Contact form and I will answer you by email. Do not forget include your site link in order I can show it with greetings for the translation help at, plugin settings page and in this readme.txt file. If you have better translation for some phrases send it to me. You are welcome!

Special Thanks to

  • alx359 – for contribution to the source code which fixed AJAX empty response for WordPress multi-site with subdomains and other stuff.

You are welcome! Help me in the bug hunting, share with me new ideas about plugin further development, contribute to the source code and link to your site will appear here.


0.10.1 [2015-11-16]

  • Fix: Wrong "Scan" link under plugin row at the "Plugins" page was updated.

0.10 [2015-10-29]

  • use WordPress AJAX API and JSON for data exchange
  • move some logic to the client and split the whole task for the smaller parts to exclude server time limit PHP error for the sites with large quant of plugins installed.
  • use jQuery UI progress bar
  • restructure code
  • escape translated text


  • 01.12.2014
  • Fix for fatal error during activation with fresh install of WordPress 4.0 (missed WPLANG constant caused plugin to stop execution). Unfortunately it worked fine under WP 4.0 with wp-config.php from previous version with WPLANG defined.


  • 30.06.2014
  • Polish translation was updated. Thanks to Grzegorz Janoszka.


  • 2.12.2012
  • Dutch - Nederlands translation was updated. Thanks to Harald Labout.
  • load_plugin_textdomain() call moved to the 'plugins_loaded' hook for higher compatibility with translation plugins.


  • 31.10.2012
  • In case other plugin had some uppercase letters at the DB table name PGC failed to define that plugin as table owner. It is fixed now.


  • 22.08.2012
  • Minor code cleanup and unused piece of code removing


  • 16.07.2012
  • Polish translation is added, thanks to Esej Konrad Łącki.


  • 15.04.2012
  • Lithuanian translation is added, thanks to Vincent G.


  • 28.07.2011
  • AJAX empty response for WordPress multi-site with subdomains is fixed - thanks to alx359.
  • AJAX error processing is enhanced slightly.
  • Minor enhancements to plugin page CSS are made.


  • 16.01.2011
  • Chinese Simple translation is added.
  • Minor change to pgc-ajax.js errors processing is made.


  • 28.12.2010
  • Italian translation is updated.
  • Latin translation is added.
  • Thanks to Alessandro Mariani for these translations update.


  • 14.10.2010
  • Bug fix: database table names had been processed in the lowercase format and tables could not be deleted if have uppercase letters in it. It is fixed now. If database table has 'dbTableWithSomeData' name, you will see it as 'dbTableWithSomeData', not as 'dbtablewithsomedata'. Thanks to Deirdre who found this bug.


  • 27.09.2010
  • Technical update for WordPress 3.0 full compatibility. Staff deprecated since WordPress v.3.0 is excluded.
  • Italian translation update. Thanks to Alessandro Mariani.


  • 07.07.2010
  • options form layout problem is fixed. That was wrong pgc-admin.css file version issue.


  • 01.07.2010
  • You can mark tables which you do not wish to see as scan results as hidden.
  • You can search extra columns in the core WordPress tables, which could be added by plugins.
  • Czech translation is added


  • 25.05.2010
  • Dutch translation is updated.


  • 18.05.2010
  • Italian translation is updated


  • 14.05.2010
  • German translation is updated


  • 12.05.2010
  • Italian translation is added
  • Lost translation domain inserted into a few places in the source code. Translators are welcome to update their work :).


  • 03.05.2010
  • "Delete Tables" button is added
  • General code cleanup


  • 02.05.2010
  • German, Japanese translations are added
  • Another text domain 'pgc' missing bug is fixed


  • 01.05.2010
  • French, Indonesian, Spanish translations are added
  • Text domain 'pgc' missing bug is fixed


  • 29.04.2010
  • 1st pre-release.


Coming soon. Just ask it. I will search the answer.


I am ready to answer on your questions about this plugin usage and help with possible problems. Use Plugins Garbage Collector plugin forum or this page comments and site contact form for that please.


Tags: ,

  • Vladimir Garagulya

    Some file permissions problem take place possibly.
    You may delete plugin folder via FTP. It will be deactivated by WordPress automatically then.

  • Łukasz Wenerski

    I did it, thansk a lot for quick answer. :)

  • Boris Osadciw

    Installed plugin on WP 4.3.1 PHP 5.3 and run the plugin. It runs a few sec’s and then gives and error – “Internal server error” . I have no idea how to fix this issue or what is causing it. Can you please explain or offer a fix for it ?? Thank you

  • Vladimir Garagulya

    Try to activate PHP errors output, to get more information about a possible problem:

  • Эдуард Манятовский

    Hi, I got an error

  • Vladimir Garagulya

    Open JavaScript console at your browser – “Tools -> JavaScript console” at Google Chrome and find at the “Network” tab the server answer which was caused the error: may be in red color or definitely differs from the correct server answer (look at screenshot). Show it me please.

  • Эдуард Манятовский

    It here

  • Эдуард Манятовский

    it here

  • Vladimir Garagulya

    I wished to look on the server response for the last request for pgc-ajax.php.
    2nd, try to deactivate all other plugins. Will the error repeat? If error will go away with plugins deactivated, reactivate theme one by one to find a plugin, with which PGC produces conflict.
    I will try to reproduce the issue then.

  • Эдуард Манятовский

    I disabled all plugins, but the error has remained

  • Эдуард Манятовский

    do so normal?

  • Эдуард Манятовский

    last request for pgc-ajax.php

  • Эдуард Манятовский

    two pop-up windows error

  • Vladimir Garagulya

    Thanks. There is not enough information at screenshots. Please click the latest request from pgc-ajax.php and select the Response tab for it, in order I may see what data server sent in its answer.

  • Эдуард Манятовский


  • Vladimir Garagulya

    Strange things. It’s a correct answer, which should not produce an error.
    OK. I will rewrite plugin to use a true JSON instead of own custom format. I hope it will help. I will publish an update this week.
    Thanks for your help.

  • Vladimir Garagulya

    Try development version 0.10. It is available here:

  • Эдуард Манятовский

    All OK! Thank you!

  • Vladimir Garagulya

    Thanks for your help.

  • Roeland Mighawry

    Hi, just installed your plugin but after I click ‘scan’ a message appears saying ‘you do not have sufficient rights’. Which is awkward as I’m logged in as admin. Any ideas? Thanks.

  • Vladimir Garagulya

    Hi Roeland,

    I suppose that you clicked ‘Scan’ link just under plugin row at the Plugins list. It contains invalid link which was fixed at the development version already. Open plugin page via “Tools->Plugins Garbage Collector” menu. Then click ‘Scan’.

  • Roeland Mighawry

    Yeah exactly, that’s what happened. Thanks, your solution indeed worked.