Reducing plugin use in WordPress
Fighting WordPress is a lot of fun. As I’ve mentioned before, I’m reluctant to move 1000 posts and 23,000 comments to another system, and also sitting on the fence about whether discussion (for my old posts in particular) is important to keep.
I have spent more of the last year trying to de-bloat WordPress than figure out a better setup, and I’ll be honest – it actually is fun and it doesn’t bother me at all. Rather than talk too much in numbers or technical jargon, I’m going to give a quick run-down on what I have done so far to reduce plugin use in WordPress.
Why use plugins?
Plugins are good for the extra bits and bobs that you can’t do yourself, they are good for connecting to social media, allowing your blog to communicate with other channels, etc. There are so many plugins out there for almost any purpose… it’s like Apple’s ‘there’s an app for that’ – WordPress has its own ‘there’s a plugin for that’.
Why should you not use plugins?
I suppose it is more evident as a developer, but, some plugins:
- require more database queries,
- require more JavaScript calls,
- add extra CSS files to your page load,
- load images and other source files,
- add new tables to your database that are not deleted when you delete the plugin,
- run in the background every time a page loads, even though you don’t need the plugin.
It’s mainly a performance issue, and it can be hard to pick up if you have no idea how. Most modern browsers have developer tools available – right-click, Inspect Element will often fire it up if you have it enabled, otherwise just do a search on the internet! – and these tools can give you an insight into how your webpage loads, what is being loaded, and how large it is.
Plugins that I gave the kick, and why
I try to use as few plugins as possible. I try to have my WordPress theme run all the functions it needs, without the use of plugins. I obviously need anti-spam plugins such as Akismet, but other than that, I have tried to minimise greatly.
Acronyms
I’ve yet to write a detailed post about acronyms (and this plugin), but let’s face it – everyone knows what WTF, LOL and BRB are. Not to mention – they are not acronyms. They are initialisms or abbreviations. This plugin was not needed because I eventually stopped using initialisms or abbreviations. Half the time, I saw people using it to give tooltips on who someone they mention in their blog. This is not the proper use of the abbr
element, and I’ll be writing about that another time.
External Links
After writing my post on external link icons and hyperlink cues, I thought about user behaviour. We’re in an era where people will often peek at an anchor text’s destination using their browser, or even use the damn peek + pop shit on the new iPhone 6s. Yeah, I have one, and I use it, admittedly. People also open links in new windows as they wish. An icon for external links isn’t really necessary anymore.
Feed Statistics
I’m not even entirely sure why I used this in the first place.
Homepage Excerpts
I used this to have an easy way of truncating all posts in my post listing. This plugin allowed for some exceptions, such as displaying the first post in full. Eventually, I took the plugin’s PHP and adapted it into my theme along with other WordPress functions to get my posts displaying exactly how I wanted them to.
Old Post Notifier
I used this to put a message on posts published at least a year ago, notifying the visitor that the content may be irrelevant and outdated. I’ve been considering going through and revising the content of some of my better, less time-constricted posts, so I didn’t want to use this plugin anymore. I also thought it brought unneeded attention to the message itself, rather than the post.
Revive Old Post
I stopped tweeting posts from my archives because I didn’t want this plugin tweeting random posts that I didn’t want it to promote. I would rather do this manually, and although I haven’t done it until recently, I find that having control over that is important. If you want to promote old posts, you pick them as you go and make an effort to do it regularly! I don’t really want to rely on a plugin to post anything for me. It makes me feel a bit uncomfortable.
I also started tweeting my new post updates manually, because I can enrich the tweet with photos and emoji and mention people and use hashtags if I wish. A plugin does not allow for that much customisation.
Simple Spoiler Enhanced
This plugin allowed you to show a ‘spoiler’ in your post, which was hidden until a user clicked. It proved useful a while ago, typical show/hide content with JavaScript kind of stuff, but now there are less reasons to use it. I don’t really write spoilers but I see why this would be useful for someone who writes reviews about movies, music or books. You can also hide spoiler text another way though.
TanTanNoodles Simple Spam Filter
I don’t think this was doing the job – it is an old plugin and it’s simple so it is sort of effective, but I think it was also rejecting some legitimate comments. :( It sucks because Akismet does a shit job of completely blocking spam (it still comes up in Spam), while this plugin does an amazing job, but both still capture real comments sometimes.
Theme Preview
This is only needed if you want to preview a theme on your server without actually changing it. Since I use a local server on my MacBook now, I don’t need to use this for testing purposes.
Tweetable
See Revive Old Post.
WordPress Importer
I only really needed this if I was importing posts and pages from elsewhere.
WP-Optimise
I heard that this plugin was pretty detrimental so I deleted it in favour of WP-Sweep, which apparently knows what it’s doing.
Where am I at now?
There are a couple of plugins that I wrote myself to apply Twitter and Facebook OpenGraph tags. Now that I don’t really use image thumbnails for my posts anymore, I need to tweak my Featured Image functionality and rewrite the PHP. Not to mention it would be best if I wrote it into my theme, too! Some plugins do this OpenGraph stuff already but I remember writing the plugins when it was still a new thing.
I also have two plugins for a Lightbox photo viewer and a responsive gallery grid for large images. They both take a while to load and I am only using them on several older pages that have a lot of photos. I will definitely delete the plugins once I get all the photos optimised and the pages and posts cleaned up. I think that for large galleries a Lightbox is nice, but recently I have just been putting photos straight in the post and that seems to be fine. I’ll have to think about this.
The current emoticons I am using are also from a plugin that I butchered. I am also thinking that it’s best to include it in my theme files somehow.
I’m using FD Footnotes which makes footnotes awesome and easy, but I don’t use them often. I was thinking of deleting the plugin but there are some old posts and pages which still use them. I wouldn’t mind hard-coding those footnotes in, since I don’t like the way they are implemented, but that may take some time.
I have also installed the Broken Link Checker, which has totally polluted my database with tables. I do have a lot of comments and posts, and thus a lot of links across my whole website. This plugin tracks broken images, too, which is great. I just think that it would be nice to come to a point where I don’t need a plugin to poke around at links. I’m not sure if there is a better option.
I am definitely keeping the Comment Reply Notification. When I comment on people’s blog posts I don’t get an email when someone replies, unless I opt-in. I know people prefer to opt-in, but getting an email is nice and I am glad that this plugin does that. I edited it a lot to get the email more personalised. :)
I hate how bloated WordPress’ Jetpack plugin is, but I like some of the features. :( There are some tricks and hacks to disable some Jetpack files and stop them from loading on your webpage though. :D
I back up my files with a plugin called WordPress Backup to Dropbox. I have a lot of space on Dropbox so it’s no real issue.
Conclusion
Though this post was very WordPress-heavy, I’m keen to hear your thoughts on performance or some of the major things you do to improve performance on your website.
If you have any WordPress-specific tips or solutions, I’d love to hear those too.
Comments on this post
Tara
I am trying to de-bloat my plugins, too. So thank you for this post! I use WP-Optimise, but I didn’t know it was . . . bad. I’m looking into WP-Sweep now!
Thanks for this post! I find it helpful and interesting to know what plugins others recommend :3
Arwen
There’s a whole lot of stuff that I used to use plugins for (namely a contact form) that Jetpack covers now, which is super handy because now I don’t have to worry about keeping my plugins up to date, etc.
Kristine
Didn’t realize WP-Optimise wasn’t good for the CMS, looks like I will be deleting this plugin!
It’s been awhile since I’ve cleaned up my plugins page. I know there are a few that I rely on like WP-Ban, FD Footnotes, Akismet, and Comment Reply Notification. Other than that, I forgot what other plugins I have that would be considered necessary.
Liquid
I also have the basics like Jetpack and Akismet. But I use a bunch of other ones as well for SEO purposes and security protection. I currently use about 15 WP plugins. How many do you have now after the cleanse? I find that getting rid of some ads helped make my site more responsive too.
Georgie
I have 15 too, including the two that I wrote myself that I’m hoping to pull into my theme. There is a plugin called P3 (Plugin Performance Profiler) that I use. I forgot to mention it, but it can scan your website and find out your plugins’ impact on your website’s loading time.
adastra
This is exactly what I did with my latest theme – deactivated pretty much everything that seems useless! On top of that, I built the actual theme from scratch (with bootstrap) to keep things simple. Even the most basic WordPress themes (likes Bones or Tiny Framework) are always so ridiculously bloated.
BTW, do you have any recommendations on how to optimize Jetpack? I use it pretty much only for the Social Media features, so some un-bloating could be useful there as well…
Georgie
I agree! I guess I have coded all my themes myself (not a fan of frameworks, haha sorry) so I do that by default.
I used this CSS-Tricks article to help me. It gives you a handful of functions to put in your functions file to disable some of the annoying Jetpack CSS. I suspect there are similar articles out there that can ‘disable’ Jetpack files from loading on your site, you could try searching for something like that.
If you are really only using the social media stuff from Jetpack though, then maybe it might be worth finding one plugin that does what you need there, and removing Jetpack? Sounds like you’re in a good place already. ;)
Liz
WordPress really is bloated, and I feel like the new gallery/portfolio options added to the settings recently only cloud it more. I’ve considered switching to Ghost, but the many times I have installed it haven’t gone well, and there is little support for it in terms of choosing to self-host. It’s also, in some ways, equally flawed…I just really like it simply for the ability to have a lighter software for my blog.
I considered making my own, as I did with Flight, but that requires more, as well as consistent, time to maintain everything and watch for security breaches and all that mess, and I don’t want to deal with it.
I’m greatly considering deactivating and deleting the Acronyms plugin… the “acronyms” change for different things. For example, I have a post in drafts about using my name-to-be as a DBA to allow myself to take advantage of a more solid reason for a name change, but the plugin defines it as “Dabatase administrator” instead of “Doing Business As”. I am also one of those people using it for names on my blog. :p But at this point, who certain people are is common knowledge to the point that it’s redundant for me to have to define it anymore, and again, it defines certain acronyms/abbreviations as one thing only. If I really need to use it, I can just manually code it in. Right now, it’s just a plugin fueling my laziness.
Do you have tips for having excerpts displaying the way you want them to? I’d be very much interested in this, as I’ve tried many different plugins but still cannot sort out something I like without hating it as well. :/
I still have the spoiler plugin, but I’ve not used it in at least two years…probably time to remove it. XD I actually totally forgot all about it. I also still have the Theme Preview plugin, which I have always liked just for kicks? I need to clean 6birds so much; I used to clean it out every spring, but I haven’t been able to the previous two.
I like the idea of manually coding in the OpenGraph tags. c: Other plugins leave footprints or mess with other features, unfortunately. :( I found a tutorial from Elegant Themes I’m going to be trying soon… Not sure if it helps you?
I didn’t know certain JetPack files could be deleted. I like it for its contact form… I don’t like Contact Form 7, because every single hack I have had came and happened because of that one plugin. I also like a few other features… I just wish there was a way to choose from a download screen which parts I wanted to use (like check boxes) and only download the files for the selected check boxes… but no.
On the emoticons… I always add custom shortcodes to my
functions.php
files—one, for example, displays my email in a way spam cannot read it—and I wonder if having emoticons display via the theme would work similarly to the way shortcodes do? Just thinking about it gives me a headache, though. :/I’ve noticed using WP-cache has helped decrease the loading time for 6birds and my cousin’s blog. The only downside to this is that frequent readers may see the site’s content when/if the website is down (for whatever reason, e.g. a server reboot) instead of the site’s actual status; however, I’ve yet to hear of any issues.
Do you use anything for security? I’ve been using iThemes Security, but it’s mega-bloated and bulky, and it’s always running. I’ve learned to do many of the practices on my own, though, so I’m aiming to delete it, but…it leaves footprints. :l I’m not sure what to do. The plugin makes the site, even the dashboard, run tremendously slow, however. It’s utterly annoying and clogs the database with thousands of rows. Because it keeps logs…which can’t be turned off, but the logs can be deleted…it just takes forever… because thousands of rows, because it keeps logs. (Repeat times infinity..)
Georgie
I can probably write something about the excerpts, but I don’t really have any tips. The way I do mine is that I make use of the post excerpt field, and if that doesn’t exist then I just grab the first hundred words or so. I have been doing manual post excerpts for a while. I agree that it’s not that neat.
Nah I don’t think I need that, but thank you anyway. I already wrote I wrote the OpenGraph plugins myself. ;) I just need to move them from being a plugin to being directly in my theme. I have been too lazy to do it.
You don’t delete Jetpack files, you disable them. I would advise against deleting any, haha. Also, the Jetpack settings allow you to disable some features, which is an OK start, but I also wish you could just opt-in to what you want, too.
My emoticons currently use an icon font to modify the HTML every time a number of characters representing an emoticon is written. I think it could potentially work the same way.
No, I don’t use anything for security, though I have seen a lot of articles about making some back-end modifications yourself instead of using plugins. Because, as you have mentioned, they do annoying things to database tables.