Sooner or later, a plugin your site relies on stops being maintained. The developer moves on, the last update was two years ago, and a new WordPress release is coming. You have three real options: replace it, fork it or rebuild it. The right one depends on how much the plugin matters and how much of it you actually use.
How to tell a plugin is abandoned
Abandonment rarely comes with an announcement. It shows up as a pattern, and it is worth checking your plugin list for it once or twice a year.
- Last updated date. On the plugin’s WordPress.org page, look at “Last updated” and “Tested up to”. A plugin that hasn’t been touched in a year or more, and is tested only against an old WordPress version, deserves a closer look.
- Closed listings. If WordPress.org closes a plugin, its page says so and it stops getting updates. Sometimes that’s for a security issue that was never fixed. Treat a closed plugin as urgent.
- Unanswered support threads. Open the support forum. A wall of unanswered posts about PHP errors or broken features tells you nobody is home.
- Commercial plugins. For paid plugins, check the changelog on the vendor’s site and whether your license still delivers updates. Vendors get acquired and products get quietly retired.
- Warnings in your logs. Deprecation notices that name the plugin’s files, especially after a PHP upgrade, are often the first sign it’s falling behind.
Once you’ve confirmed a plugin is abandoned, make a short inventory before choosing a path: what the plugin does on your site, which pages or flows depend on it, and where it stores data. Plugins usually keep settings in the wp_options table, content in post meta, and sometimes their own custom database tables. That inventory drives the decision and the effort estimate.
Option 1: Replace it
If a well-maintained plugin does the same job, switching is usually the cheapest long-term answer. Someone else carries the maintenance, and you get security fixes for free.
The work is rarely just “install the new one”. Budget for:
- Migrating settings and data. Some replacement plugins ship importers for popular competitors. Many don’t, and the data has to be mapped and moved with a script.
- Replacing shortcodes and blocks. If the old plugin put shortcodes or custom blocks into page content, every one of those needs to change. Search the database for the shortcode tag before you start so you know the count.
- Testing every touchpoint. Forms, emails, user roles, front-end templates and any integration that reads the plugin’s data.
For a simple plugin, like a slider or a contact form, a replacement is often a few hours to a day. For something with years of stored data, plan for more and do it on a staging site first.
Option 2: Fork it
When nothing else does the job, or switching would mean rebuilding a lot of the site, you can take over the code yourself. Forking means:
- Renaming it properly. Copy the plugin into a new folder, change the plugin name in the header, and add an
Update URIheader so WordPress.org updates can’t overwrite your changes if the original ever comes back to life. - Fixing compatibility. Run the code against your current PHP version and WordPress release. Tools like the PHPCompatibility ruleset for PHP_CodeSniffer catch a lot of this quickly, but real testing on staging is still required.
- Reviewing for security. Nobody else is watching anymore, so you have to. Look for form handlers without nonce checks, admin actions without capability checks, user input written to the database without sanitizing, and SQL queries built without
$wpdb->prepare(). - Putting it in version control. The fork lives in your repository, with a changelog, so the next developer knows what changed and why.
- Taking responsibility for it. Every future WordPress and PHP release is now your problem.
A common mistake is forking and then patching the live site directly, with no record of the changes. Six months later nobody remembers what was fixed, and the next person to touch it has to start over.
A fork is a good stopgap. It keeps the site running while you plan something better. Getting a mid-sized plugin compatible and reviewed is often a few days of work, though a large or messy codebase can take longer.
Option 3: Rebuild it
If the plugin is central to how your site works, like a checkout flow or membership logic, the best long-term answer is often a small custom plugin that does exactly what you use.
Old plugins tend to do far more than you need. A plugin with forty settings screens might be doing two things on your site. A rebuild drops the extra weight, removes code paths that nobody tests, and gives you something you fully understand.
A rebuild done well looks like this:
- Document what the old plugin actually does on your site, not what its feature list says. Watch the real flows, read the templates, and check the data it writes.
- Design the data model so the new plugin can read existing records, or plan a one-time migration script with a dry-run mode.
- Build to current standards, using WordPress hooks, the REST API and the block editor where they fit, so the code ages well.
- Run old and new side by side on staging, comparing results for real scenarios before switching over.
- Keep the old plugin’s data until you’re sure. Don’t drop tables on launch day.
Rebuilds cost more up front than a fork. The payoff is fewer surprises and lower maintenance over the following years.
How we decide
We look at three things: how critical the feature is, how much of the plugin you actually use, and whether a maintained alternative exists.
- Low criticality, good alternative: replace it.
- High criticality, no alternative, little time: fork it now, then decide.
- High criticality, you use a small slice of a big plugin: rebuild it, often after a fork buys the time to do it right.
A contact form widget gets replaced. A membership checkout that ties into member profiles usually gets forked first, then rebuilt on a schedule that makes sense for the business.
The one option we never recommend is doing nothing. Abandoned plugins are one of the most common ways WordPress sites get hacked, and they tend to break at the worst time: right after a PHP upgrade your host applies on its own schedule.
When to bring us in
If the abandoned plugin is a simple widget, you can probably handle the swap in-house with a staging site and a careful test pass. When it touches checkout, memberships, user data or integrations with other systems, a second set of eyes helps. We can audit what the plugin does, give you an honest comparison of the three paths, and handle the fork or rebuild. See our custom plugin development work, or get in touch with the plugin name and what it does for you.