WordPress.org Needs to Make Uninstall Options Compulsory

One of the biggest announcements at WordCamp Europe this year was the release of the page builder Gutenberg (other important issues, such as WooCommerce doubling their renewal fees, were not brought up).

Gutenberg represents a step forward for WordPress and helps it tackle other platforms such as Medium, Wix, and SquareSpace. Whilst I appreciate the importance of this plugin to WordPress, I feel there is an important issue that is not being discussed. The problem relates to how there is are rules on what theme and plugin developers add to your website database when you install their product.

Every time you active a WordPress theme or plugin on your website, you are adding data to the WordPress database. The problem is that the vast majority of themes and plugins do not remove the data they add once you have deleted them from your website.

This is an issue that I have been raising again and again in my reviews of WordPress products and it is a problem that needs more exposure.

Too Much Garbage in WordPress Databases

For any WordPress theme or plugin to work correctly, it needs to add data to the WordPress database.

Simple solutions might add a few rows to an existing WordPress table, whilst more advanced solutions will add additional tables to your database.

Unfortunately, very few WordPress products provide a way of removing all of the data that is added to your database. Web Dorado is one of the few companies that ensures all of their themes and plugins contain an option to completely remove all data from your website; however they are the exception, not the rule.

Most companies do not provide any way of uninstalling their product fully and many who do provide a removal tool do not do it correctly.

A good example of this was in my recent review of WP File Download. In the settings area of the plugin there is an option to remove all of the files you had uploaded. This did remove any files that had been uploaded via the plugin, but it left all data in the database. This meant that when you installed the plugin again, all settings and file categories remained.

The Problem with Leftover Tables and Rows

Leaving a few rows or tables in your WordPress database does not seem like a big problem, but over time it can be. Every time you install a WordPress plugin or theme it is adding at least a couple of rows to your database and sometimes it adds multiple new tables.

If your WordPress website has been active for many years, this could result in there being leftover data from hundreds or possibly even thousands of plugins and themes. It makes your WordPress database larger and unnecessarily cluttered.

A solution such as Plugins Garbage Collector can help deal with this, but it cannot remove everything.

What Plugins Garbage Collector does is highlight any tables that are not associated with installed plugins and then gives you an option to delete those tables. It works really well.

Its main limitation is that it only find tables that are no longer being used. WordPress plugins and themes add a lot of rows to core WordPress tables such as wp_options and wp_posts and Plugins Garbage Collector does not search within required tables.

What WordPress Needs to Do

WordPress has to start enforcing theme and plugin developers to add an option to completely remove any data that has been installed to the database. This will help de-clutter WordPress database’s, keep the database size manageable, and ensure that they do not contain unnecessary data.

Guidelines can be provided to developers to help them add an uninstallation feature and the theme and plugin review teams at WordPress.org could enforce the new rule.

Many WordPress products are freely available outside of WordPress.org, be it on Github, the developer’s website, or marketplaces such as ThemeForest. WordPress obviously have no control over the products released outside of WordPress.org, but they could perhaps add some code to the WordPress Core that displays a warning such as “Warning: This WordPress theme/plugin does not contain any uninstall tool” (or something to that effect).

We are living in a time where every website owner knows the importance of website performance, so it is surprising that this has not been made a priority before.

What’s your thoughts on this subject? Please let me know in the comment area below.

Kevin

10 thoughts on “WordPress.org Needs to Make Uninstall Options Compulsory”

  1. Hi Alec.

    I am not suggesting removing all data when a plugin is deactivated and deleted.

    Web Dorado, for example, has it as an extra feature. You need to manually request for data to be deleted and you then get a warning about how serious that is.

    There would have to be a warning to novice users who did not understand the consequences.

    Kevin

  2. Hi Kevin. Deleting all the data is a two-way sword.

    For example fully configuring our video player is a lot of work (not our fault, online video is complex). Of course it works out of the box but there are a lot of extra features.

    If someone decided to delete the plugin and reinstall, having to configure all of those settings manually again would be a very poor user experience. So for this “delete data and settings” to work for users and not against them, WordPress.org would have to agree to include a process for deleting plugins with choices:

    * keep data and settings
    * delete data and keep settings
    * delete data and settings (full delete)

    As WordPress.org plugin support team seeks primitive solutions these days (the target audiences seems to be completely non-technical simpletons who have no business trying to manage a self-hosted CMS of any kind), Otto and Mika have decided that plugins should delete all data and settings all the time. As I mentioned above, that’s a colossal simplification and really user unfriendly. Until that changes, there is no good solution. If you want to protect a plugin’s settings while uninstalling it for awhile, the only safe way is to delete the plugin via FTP.

    Too much simplicity sucks. Too much simplicity is for simpletons.

  3. Very thoughtful post Kevin, being a WordPress support and maintenance company we receive a lot of request on website speed optimizations and database optimizations. We used to speak a lot on removing unwanted files but never thought of mentioning why that occurs. Really useful post, thanks man

  4. Sometimes deleting an add-on sends our site hell. WordPress is nice but deleting add-ons creates frustrating situations. You have touched a beautiful spot.

  5. Yeah I definitely think this is a change that needs to come from the top. Plugins and themes leave a lot of garbage behind when you stop using them. It needs to stop.

  6. Hi Kevin, This is a good point. There are a few plugins that have an option to “remove all of the data associated with this plugin,” but those are an exception. Perhaps an addition to the Codex on how to do this would be a good start.

  7. Great comment Toni. I am glad I am not the only one who is concerned about the amount of garbage being left by WordPress themes and plugins.

    Sounds like you will suffer from plugin bloat more than others if you are installing so many plugins. I’m surprised you haven’t learned how to install WordPress yet. It’s not that difficult. If you ever struggle with that and need a point in the right direction, drop by Rise Forums and I’ll walk you through the process. :)

  8. Great! Absolutely critical, of central import, to the core of WordPress functionality. Plugins make WordPress powerful and wildly attractive, but to use plugins is to play with fire. For non-programmers and those who fear to touch the database, this is an absolute given. The database residuals from plugins are timebombs and landmines that will eventually explode or trigger a subtle cascading chain of fatal events individually or when the plugin trash reaches a cumulative threshold.

    Eliminating plugin garbage would dramatically reduce the WP Support Forum load. (It would decrease my visits.)

    The most basic argument for complete plugin removal in WordPress is due to people like me: the dangerously adventurous or particular “developer”, amatuer, that is comfortably literate solely with the front-end of WordPress. One camp loves to try new things, the other wants to do something specific and has to try several similar plugins to find the right one. I belong to both camps. Even worse, both camps rely on plugins to do everything, even coding and database management, blindly thru the admin interface.

    I’m extreme. I use an obscene amount of plugins in MultiSites. I even use MultiSites to put active plugins into smaller groups to reduce the workload and plug-in conflicts. I’ve done this for years. In the past I accepted that my entire set-up would eventually explode or disintegrate. All I can do is rebuild. As if infected with a virus, backups are not useful. I’ve mastered the game pretty well, with help I’ve keep the same installs for years now. But now I face the necessity of a clean reinstall to eliminate the garbage – I have no knowledge of installing WP, even with paid WP support and fierce desire to learn, it’s looks like a learning curve I don’t have a solid block of mental time for.

    Plugins dominate my WP experience. Make it and break it. Empowering, so epic, and devastating, soul crushing.

Leave a comment

Share This