Unplug Plugins

Posted by | · · · · · · · · · · · | Content · Local · Mobile · Optimization · Page · Performance Measurement · Server · Site · Social · User Experience | Comments Off on Unplug Plugins

Plugins Unplugged

Pull the plug on plugins. Especially the free ones. Plugins are software components that bolt onto a website to extend the functionality of the site’s Content Management System (CMS) like WordPress, Joomla, Drupal or Magento without changing the site’s underlying structure. It’s like using Lego: you clip on more and more blocks. But plugins being software, the blocks don’t always fit together precisely (because the free ones come with lots of pre-coded, bolt-on components and modules, which means lots of extra unwanted code). They end up degrading the site’s performance.

You can visualize the cumulative impact on your site’s performance of adding plugin after plugin as an Exponential Decay function. For mathematicians, that means y = C e-kt, k > 0. For website owners, that means the site becomes slower, clunkier, and more conflict-prone. Website performance degrades.

Plugins degrade website performance like exponential decay

Plugins degrde website performance


To a search engine and a browser, the result can look like a Heath Robinson contraption instead of lean minimalist code that simplifies crawling, fetching and rendering.

Plugins are loaded by folder and triggered by being “called” onto a page (aka “events”). Depending on your CMS, a single file such as index.php loads the components, triggers the plugins and renders a page with the modules that make it work. All this activity:

  • requires multiple http requests
  • requires multiple database queries
  • loads, parses, and executes php files that activate the plugin
  • loads, parses, and executes the plugin’s own JS and CSS files.

Problems with plugins are that they:

  • are bloated with redundant, inefficient code
  • cause conflicts with the CMS
  • cause conflicts with the template
  • cause conflicts with other plugins
  • are often out of date for the latest version of the CMS (assuming the site owner has updated it)
  • are often out of date for the latest version of the template (assuming the developer has updated it)
  • are full of bugs (though premium plugins usually have less)
  • can produce any combination of the above problems. (Many are also insecure, but that depends on how they’re used so we’ll leave that aside for now.)

High quality code in a snippet and high quality code in a plugin will perform the same. The problem is that most free plugins are not high quality code. Plugins create many problems, from slowing a site down (which they almost always do) to making it inoperable (which they can do).

Typical reasons why plugins cause problems:

  • corruptions caused by traces of code left over in CSS files or database tables from plugins that have actually been removed. Like insect bites that leave a toxic stem after the insect has gone, the stem itself has to be physically removed in order to recover from the bite.
  • conflicts between plugins that perform some of the same functions but which get entangled when each plugin tries to do them. Like having too many cooks in a kitchen, all spoiling the broth, instead of under direction from one master chef.
  • loading a huge amount of code to perform a relatively straightforward task. Like using a sledgehammer to crack a nut.
  • the quirks of the plugin developer.

We offered some tips for dealing with plugins, especially the free ones, if you really must keep them. But your best bet is to unplug as many plugins as you can.

No Comments

Comments are closed.