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.