A fair bit of my work is what I call website renovations: WordPress sites built by someone else that need a refresh, some major updates, or a replacement for plugins that are outdated or no longer supported.
WordPress websites are like classic LandCruisers, built to last if you look after them. I’m still looking after websites that were built more than ten years ago (needing nothing more than a bit of a spruce up from time to time), and I’ve renovated fairly complex sites that were built around that time – keeping a lot of their content and just painting the walls and changing the curtains.
Why WordPress
The reason someone would choose the WordPress ecosystem to build their website on, is that it offers more functionality than some of the subscription options like Wix or Squarespace, without needing a developer for every edit the way custom-coded sites do.
The thinking behind the way the software works, is that if you work with the settings rather than trying to overwrite all of them with custom code, a professional can set the site up in such a way that a non-professional can edit the content. That’s the whole reason that WordPress exists, and I’ll come back to why that matters shortly.
What a renovation turns up
When working on sites that other people have created, I’ve seen some pretty interesting things when I open the cupboard door and look inside and the most common one is plugins.
Plugins are add-ons that give a WordPress site extra abilities, like security, contact forms or SEO tools. Plugins are supposed to work like seasoning in cooking. You use a small core group of good ones, or in the case of plugins, a small group of stable, well-supported ones. Instead, I’ll find dozens of random plugins, each installed to do one tiny job. The most I’ve counted on a single site is 63 and considering that every one of them needs updating, and every one is something that can break the others, particularly if the plugin developer stops supporting it, you can see how that could get crazy really fast.
The next is sites that were copied from a template, or from another client’s site, with template images still sitting on the site and messy code underneath. None of it shows from the front and the site looks fine, right up until it’s someone else’s turn to look after it.
A messy build costs time and money, but a new developer can still get in and sort it out. The real problem is when nobody can get in at all, which is called lock-in.
Developers retire, move on, have a bad year or just get busy, and it’s rarely because anyone meant harm. What decides whether it’s an annoyance or a disaster is how the site was set up in the first place.
What lock-in actually looks like
Lock-in isn’t a clause in a contract, most of the time it’s four quiet things:
- The domain is registered in the developer’s name. If they disappear, so does your ability to prove the address is yours.
- Hosting sits in the developer’s account. You pay them, they pay the host, and you have no way in if they stop answering.
- You’ve never had an admin login which means you’re a guest on your own website.
- The site runs on a bunch of custom code, written for your site and nobody else’s.
The first three can be fixed with some phone calls and a bit of patience, but the fourth is the one that does the real damage.
Why custom code is the big one
Custom code is a bit like custom-built furniture. It can be exactly what you wanted, but the person who made it had a specific idea or logic in mind and they are the only ones who really know how it’s all joined together.
I’m talking about heaps of code written to change how a membership system works, or fonts, colours and formatting set in code instead of picked up from the theme, in what should have been a simple Elementor site. In both cases the site’s own settings stop doing what anyone would expect, so the next person changes a setting and nothing happens. A new developer has to read someone else’s work, work out how it hangs together, and quite often decides it’s cheaper to rebuild from scratch, which means you end up paying twice for the same website.
That doesn’t mean custom work is never justified, some projects genuinely need it. The questions are whether you realised it was happening, why, and what it means for handing the site on.
What standard WordPress changes
I build with off-the-shelf WordPress themes and plugins, and avoid custom code where possible unless discussed with you. In practice that means any competent WordPress developer can open the site and recognise what they’re looking at.
There’s one caveat. Premium plugins are still part of the picture, and they come with paid licences, but anyone can buy a licence and learn how a plugin works, which is a very different thing from relying on code that only one person understands.
Built so you can leave
I build sites so that my clients can walk away. If I’m not doing my job properly, I want clients to have the option of leaving and taking a working site with them.
In practice that means the domain is in your name, the hosting is in your account (or your IT department’s), you hold the admin logins from day one, and the site runs on standard, well-supported tools. For the councils and associations I work with, they host the site and hold admin control from launch. If you stay, I want it to be because the service is good, not because leaving is too hard.
Questions to ask before you hire a web developer
It’s worth asking these before you sign anything:
- Whose name will the domain, hosting and admin accounts be in?
- How much custom code will there be? If so, why, and who else could maintain it?
- What happens to my site if you retire or become unavailable for six months?
- Will I have every login at launch, including admin?
If the answers are vague, that’s an answer.
If this sounds like what you need
If you work for a local government team or association and have a project that needs its own website, have a look at what I offer for local government and association project sites.
If you’d rather have someone else keep your existing WordPress site healthy, the website care plans page explains how that works.
