A WooCommerce shop usually starts life with ten plugins. Two years later it has forty. Each one went in for a good reason: a newsletter popup, a slider, a coupon tool, a second SEO plugin "just to try". None of them ever came out. The result: a slow admin, a slow storefront, updates you're afraid to click, and more places for a security hole to hide.
The issue isn't the number itself. A site with 30 well-written, necessary plugins can be fast. A site with 12 bad ones can crawl. The issue is knowing what each one does and whether it's worth its cost.
What a plugin costs
- Front-end speed: CSS and JavaScript that often load on every page, even where they aren't needed.
- Server speed: database queries, background jobs, autoloaded options pulled in on every request.
- Security: every plugin is third-party code. Abandoned plugins are one of the most common ways into WordPress sites.
- Maintenance: more updates, more possible conflicts, more licences to renew.
Step 1: a full inventory
Before cutting anything, make a list (a simple spreadsheet is fine) of every plugin with these columns:
- What it does, in your own words.
- Who asked for it / why it was added.
- Where it's used (whole site, checkout only, admin only).
- Last update from the developer. Over a year ago? Be careful.
- Free or paid, and when the licence expires.
- Does another plugin do the same thing?
You'll be surprised: we almost always find at least one plugin nobody remembers the reason for.
Step 2: spot the obvious ones
These usually go without much debate:
- Deactivated plugins. If they've been off for months, delete them. Even inactive, their files stay on the server.
- Duplicate functionality. Two SEO plugins, two caching plugins, three "social sharing" plugins. Keep one.
- Plugins for one tiny tweak that a few lines in a child theme could handle (changing a string, hiding a field).
- Abandoned plugins with no updates for a long time, or removed from the WordPress repository.
- Features you no longer use: last year's campaign popup, the sale countdown, the import plugin used once.
Step 3: measure the cost of the rest
For what remains, measure what each one costs:
- Query Monitor (a free developer plugin): shows queries, timings and which plugin caused them, per page. Install it on staging, or deactivate it after the audit.
- Your browser's Network tab: open the homepage, a category and a product. Which CSS/JS files load, and which plugin do they come from? The path tells you (
/wp-content/plugins/name/). - PageSpeed Insights: the unused JavaScript and CSS sections often point straight at plugins loading unnecessary files.
- Autoloaded options: some plugins store large blobs loaded on every request. A developer can check this in the database quickly.
- Cron / Action Scheduler: under WooCommerce → Status → Scheduled Actions, check for thousands of pending or failed jobs from a single plugin.
Step 4: removing plugins safely
Never remove plugins directly on the live shop at peak time.
- Full backup (files and database), and make sure you know how to restore it.
- A staging copy of the site, if your host supports it.
- Deactivate one at a time on staging, checking after each change.
- Test the purchase flow: category → product → cart → checkout with every payment method → confirmation email.
- Test feeds and integrations: Skroutz/BestPrice feed, invoicing, courier.
- Apply to live at a quiet time, again one at a time.
- Delete (not just deactivate) after a few problem-free days.
Note: some plugins leave tables and settings behind in the database. Check whether they offer a "remove all data" option.
Step 5: load only where needed
For plugins that stay but load assets everywhere, there's conditional loading: the contact form script only on the contact page, the payment gateway script only at checkout. It takes a bit of code or a dedicated tool. The gain in INP and overall page weight is often substantial; see our article on Core Web Vitals.
A policy for the future
A clean-up is pointless if you're back in the same place a year later. A few rules:
- No new plugin without a written reason. What problem does it solve, who asked for it?
- Test on staging first.
- Prefer plugins with active development, good reviews and a clear support model.
- Quarterly review of the list: what's no longer used?
- One plugin per job. "All-in-one" plugins that do twenty things often load all twenty when you need two.
Checklist
- [ ] Inventory every plugin with purpose and last update date.
- [ ] Delete deactivated plugins.
- [ ] Remove duplicate functionality.
- [ ] Replace abandoned plugins.
- [ ] Measure cost with Query Monitor and the Network tab.
- [ ] Remove on staging, with a full purchase test.
- [ ] Conditional loading for the ones that stay.
- [ ] A policy for new plugins.
Bottom line
A lean WooCommerce install is faster, safer and easier to update. And updates you're not afraid to click are, in the long run, the best protection your shop has.
If you'd like us to run the audit and clean-up, or take over the monthly care of your site, see our maintenance and support service or get in touch.