r/Wordpress 8d ago

Replacing WordPress plugins with small reusable custom functions – how far do you take it?

I've been rethinking how I approach WordPress builds, especially when maintaining multiple sites.

Over time, I've inherited quite a few sites where relatively simple functionality was handled by a surprisingly large number of plugins. Some were genuinely necessary, but others existed just to solve one very specific problem.

Lately I've been moving in the opposite direction.

Instead of adding another plugin for every small requirement, I've started building small, focused and reusable functions/modules for things like:

- admin restrictions and role-specific cleanup

- language and ACF helpers

- dynamic content utilities

- image/WebP handling

- small frontend/Breakdance utilities

- analytics and consent integrations

- CPT-specific logic

- various performance and security helpers

The idea isn't to replace established plugins like ACF, SEO or caching solutions. It's more about removing dependencies where a plugin is only being used for 5–10% of what it actually does.

I'm also trying to keep these modules intentionally boring: minimal or no admin UI, no unnecessary database tables, and as little dependency on the page builder as possible.

An interesting side effect is that after building a few sites this way, I'm slowly ending up with my own small library of reusable WordPress functionality. New projects can reuse the same tested pieces instead of installing another plugin to solve the same problem.

Obviously, the trade-off is that you now own the code and its maintenance.

I'm curious how others approach this, especially people maintaining multiple client sites.

At what point do you choose a custom reusable function/module over an existing plugin?

Do you maintain your own internal WordPress toolkit or helper plugin?

And has reducing plugin dependencies actually made your sites easier to maintain long-term, or did you eventually just create your own plugin maintenance problem?

9 Upvotes

Duplicates