WooCommerce is not a separate system, just a plugin for WordPress that turns a site into a store on its own. Everything else, meaning payments, shipping, invoices and marketing, is more plugins stacked on top. And that very model, brilliant in its flexibility, is also where most stores fall over: not on a lack of features, but on a surplus of them.
This guide is about which WooCommerce plugins you actually need, which add real value, and which just clog the cart and pull in security risk. No “top 50” list, because that kind of list is a con. Instead, concrete classes of problem and how to solve them.
What a WooCommerce plugin actually is
It is worth separating two things that keep blurring together in conversation. WooCommerce is one plugin, maintained today by Automattic, that adds products, a cart, a checkout and orders to WordPress. A “WooCommerce plugin” in the second sense is an extension you bolt onto that engine: a payment gateway, a shipping calculator, an accounting integration.
That difference has practical consequences. A WooCommerce core update can break an extension that assumed the old shape of the cart. So with a serious store you do not ask “does this plugin work”, you ask “does the author keep up with core changes, and with what lag”. That is the first filter, and it cuts half the candidates from the directory.
How to check if a plugin is compatible with your WooCommerce version
WooCommerce gives extension authors two header lines for exactly this question. WC requires at least names the minimum WooCommerce version the plugin needs to work, and WC tested up to names the latest WooCommerce version the author has tested it with (WooCommerce developer docs). Both sit in the comment block at the top of the plugin’s main PHP file, so you can read them before installation by opening that file in the plugin ZIP.
The tested-up-to value matters more than it looks, because WooCommerce moves fast. Its release calendar says releases typically ship on a five-week cycle and that the version numbers make no distinction between major and minor releases (WooCommerce release calendar). On 15 October 2026 the current version in the WordPress.org directory was 11.2.1. An extension whose WC tested up to still reads several versions behind has not necessarily broken, but nobody has checked it against the code you are about to run. The header also switches on the warnings described in the next section: WooCommerce only checks feature compatibility for extensions that declare WC tested up to at all.
WordPress 6.5 added a second, more general mechanism: the Requires Plugins header. A plugin lists the WordPress.org slugs it depends on, separated by commas, for example Requires Plugins: woocommerce. WordPress then refuses to activate the dependent plugin until its dependencies are active, and refuses to deactivate or delete WooCommerce while a dependent is still active or installed (Make WordPress Core, 5 March 2024). Two limits are worth knowing before you rely on it. The header carries no version constraints, so it says that WooCommerce must be present, not which version. And a plugin hosted on WordPress.org can only declare dependencies that are also hosted there; an extension bought elsewhere can declare one, but WordPress shows no install link for it.
Are WooCommerce plugins compatible with HPOS and the block checkout
Two changes in the WooCommerce core in 2023 separate maintained extensions from abandoned ones faster than any star rating.
High-performance order storage (HPOS)
Since WooCommerce 8.2, released in October 2023, high-performance order storage is enabled by default on new installations. Orders no longer live in the generic posts and postmeta tables but in four dedicated ones: wc_orders, wc_order_addresses, wc_order_operational_data and wc_orders_meta, each with the database prefix in front (HPOS documentation). An extension that reads orders straight from postmeta sees an empty or stale picture on such a store.
An extension declares compatibility in its main file with a single call on the before_woocommerce_init hook:
add_action( 'before_woocommerce_init', function () {
if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
}
} );Passing false instead of true declares incompatibility. WooCommerce then warns an administrator who tries to enable HPOS while that extension is active, and shows a warning on the plugins screen (HPOS extension recipe book). A warning does not block anything, so it is easy to click past. A quick check before buying: search the plugin’s code for custom_order_tables. If the string is missing, the author has not addressed the change.
Cart and checkout blocks
WooCommerce 8.3, released on 14 November 2023, made the Cart and Checkout blocks the default for new stores, while existing stores keep the version they already use (WooCommerce developer blog). Extensions declare compatibility the same way, with the feature name cart_checkout_blocks. Payment plugins feel this most. A gateway has to register both on the server and in the block checkout front end, and WooCommerce treats a gateway missing from the front-end list as incompatible. An extension that declares nothing may not appear in the block checkout at all, or may break it. On a new store, the first test of any payment, shipping or checkout field plugin is therefore a test order through the block checkout, not through the classic shortcode page.
WooCommerce plugins for payments, shipping and invoices
Almost every store needs the same core set of extensions, regardless of industry.
Payments. Customers expect their familiar fast methods at checkout, not typing in a card number by hand. The standards here are gateways like Stripe, PayPal and Apple Pay. Each has an official WooCommerce plugin, but they differ in how they handle refunds, instalments, recurring payments and how cleanly they report transactions back into the dashboard. Choosing a gateway is a business decision about fees and cash flow, not just a technical one.
Shipping. Without a proper carrier and pickup-point integration, a store leaks conversion at the very last step. The major couriers offer their own plugins with rate calculation and label printing straight from the order, and broker tools let you compare carriers and generate labels from the order screen. This is one of those features where a good plugin genuinely shortens order handling and a bad one generates address errors and complaints.
Invoices. Automated, compliant invoicing is handled by integrations with accounting platforms such as QuickBooks or Xero. This is the area where free half-measures bite back fastest: issuing invoices by hand at a hundred orders a day is a full-time job, not a saving. Cross-border sellers also need the plugin to handle EU VAT OSS reporting and the e-invoicing mandates now rolling out across the EU, which a generic free plugin rarely keeps up with. If you sell into the Polish market, the free Polski for WooCommerce adds the NIP field with GUS company lookup and KSeF-ready invoice data at checkout, while Polski PRO generates PDF VAT invoices and files them to Poland’s KSeF e-invoicing system.
Only on top of that core do you add the rest: marketing, reviews, product variations, B2B. But if those three classes do not run cleanly, no marketing plugin will make up for it.
Do too many plugins slow down WooCommerce
The most common myth goes: “I have too many plugins, that is why the store is slow.” That is a simplification. What matters is not the count but the combined cost of executing code and running database queries on every request.
Two real cases from practice show the difference. A store with thirty plugins and a time to first byte of 1.8 seconds, where the culprit was one heavy page builder loading its own framework on every subpage. And another, on Elementor, that buckled under Black Friday traffic because the caching and image-optimization plugins were badly configured, not because there were many of them. In both cases the cure was not “delete half your plugins” but “find the two that cost the most”.
For diagnosis there is Query Monitor, which shows how many database queries and how much PHP time each plugin eats. With measurement instead of guesswork, optimizing WooCommerce store performance stops being fortune-telling. Page cache, object cache and sensible image handling usually give a bigger jump than any feature trimming.
WooCommerce plugin security and supply chain attacks
A WooCommerce plugin has full access to the database and the PHP environment. That means a single malicious or hijacked plugin reads customer data, modifies orders and injects code. In 2026 this stopped being theory.
Within a single month the WordPress.org directory closed several plugins with injected backdoors, in some cases after an author account was taken over or an abandoned project was bought out. That shows where the risk really lies: not in the number of plugins, but in who you trust to maintain that code.
The practical minimum of hygiene is simple and boring. Install plugins only from official sources, never from “nulled” packages. Check the date of the last update and the author’s response to reports. Keep a register of what you have installed and who is behind it, because in a compliance audit (for instance under DORA for regulated entities) the payment plugin vendor is formally a third party. Download updates only from the original vendor, not from the first link in a search engine.
What the WordPress.org plugin page tells you before you install
Every plugin in the directory exposes the same metadata through the public plugins API, and the plugin page shows the same fields. This is what the API returned on 15 October 2026 for four plugins that come up in almost every WooCommerce audit:
| Plugin | Author | Active installs | Requires WordPress | Requires PHP | Tested up to (WordPress) | Last updated | Requires Plugins |
|---|---|---|---|---|---|---|---|
| WooCommerce | Automattic | 7,000,000 | 7.0 | 7.4 | 7.1.3 | 9 October 2026 | none |
| WooPayments | WooCommerce | 800,000 | 6.0 | 7.4 | 7.1.3 | 8 October 2026 | woocommerce |
| WooCommerce PayPal Payments | WooCommerce | 800,000 | 6.5 | 7.4 | 7.1.3 | 9 September 2026 | woocommerce |
| Query Monitor | John Blackbourn | 200,000 | 6.2 | 7.4 | 7.0.7 | 20 June 2026 | none |
Three columns deserve a closer look. The last update date is the cheapest signal of maintenance, and it reads best against the five-week WooCommerce cycle. “Tested up to” refers to WordPress, not to WooCommerce; the WooCommerce equivalent is the WC tested up to header described above, which the directory does not display. And both payment plugins list woocommerce as a required plugin, so they already use the WordPress 6.5 dependency header. Active installs measure popularity, not quality: Query Monitor has a quarter of the installs of WooPayments and is still the standard tool for the performance diagnosis described earlier.
How to audit installed WooCommerce plugins with WP-CLI
The register of installed plugins from the security section does not have to be a spreadsheet maintained by hand. WP-CLI builds it on the server in one command:
wp plugin list --fields=name,status,version,update_version,auto_update,wporg_status,wporg_last_updated --format=csvThe wporg_status field shows whether each plugin is still available in the WordPress.org directory, wporg_last_updated shows when it was last updated there, and auto_update shows whether automatic updates are on. With --format=csv or --format=json the output becomes a file you can attach to an audit (WP-CLI documentation). A plugin closed in the directory is exactly the case from the supply chain section: the directory stops distributing it, but the copy on your server keeps running. Closures are not rare even among payment plugins: on 15 October 2026 the plugins API answered closed for the slug redsys-gateway-for-woocommerce. The directory does not publish the reason for a closure, so the status is a reason to investigate, not a verdict.
Should WooCommerce plugins update automatically
WordPress 5.5 added auto-update toggles for plugins and themes to the dashboard. They are off by default, so every plugin stays on manual updates until an administrator switches it on (Make WordPress Core, 15 July 2020). The auto_update_plugin filter can switch auto-updates on for all plugins at once, including ones installed later, and it overrides the settings in the dashboard without showing that in the interface. That is worth checking on any store you take over: if the toggles say off but plugins still update overnight, look for this filter in the theme or in a must-use plugin.
For a store, the split follows the rule from the next section. Plugins far from money and customer data, such as a gallery add-on or a dashboard widget, can update on their own. WooCommerce itself and the payment, shipping and invoicing extensions should go through a staging copy first, because a new WooCommerce release lands roughly every five weeks and each one can change what those extensions depend on. After every such update, a test order through the checkout is the minimum check before the change reaches customers.
Free vs paid WooCommerce plugins
A free plugin from the WordPress.org directory is enough to launch and for most non-critical features. The trap appears around two things: scale and accountability.
For revenue-dependent features, meaning payments, shipping and invoices, active support and regular, signed updates matter. A free plugin the author has abandoned becomes your technical debt: you have to patch it yourself, or migrate in a hurry when it breaks after a core update. A paid plugin with a contract shifts part of that responsibility to the vendor, and over a year it often works out cheaper than the cost of your own time firefighting.
If you are looking for proven, commercial extensions with a support guarantee, you can find ready-made WooCommerce plugins in specialist plugin shops where the code is maintained and updated. That is a sensible compromise between full bespoke development and the risk of an abandoned plugin from the free directory.
Rule of thumb: the closer a feature sits to money and customer data, the less worth it is to save on the plugin. The further away, for example a cosmetic gallery add-on, the more relaxed you can be about staying with the free one.
Free open source WooCommerce plugins
Full disclosure: these are my own plugins. I build and maintain a handful of small, single-purpose WooCommerce plugins, free and open source, aimed at the gaps a store runs into as it grows:
- Peek opens a product preview straight from the listing with no page reload, which shortens the path from category to cart in long catalogues.
- Reel adds gallery zoom and video to the product page, the thing usually missing where the buying decision is visual.
- Swift adds a buy now button that skips the cart and goes straight to checkout; since version 1.1.8 it conditionally loads stylesheets only on shop and buy-now views, keeping all other pages lightweight.
The same family also includes Migrator for backup and migration, Sieve for product filtering, Restock for back-in-stock alerts, Tiers for tiered and quantity pricing, Customs for EU import duty, Botelix for container and crate deposits (Kastenpfand), Pasporto for the Digital Product Passport (ESPR), and polski for Polish-market compliance (KSeF, Omnibus, GPSR). Each has a step-by-step guide in the plogins guides hub.
Update, . These are also my own plugins, free on WordPress.org, each matched to the shop problem it addresses:
| Shop problem | Plugin | What it does |
|---|---|---|
| Shoppers hesitate at the buy button | Badgevo | Shows secure-checkout badges after the add-to-cart button, and optionally on the checkout |
| The add-to-cart button scrolls out of view on long pages | Cartdock | A sticky bar with title, price and buy button appears once the shopper scrolls past the main button |
| The free-shipping threshold goes unnoticed | Shiplume | Shows how much more the cart needs for free shipping and updates as the cart changes |
| Shoppers want to save products for later | Shortlist | Wishlist button on listings and product pages; a guest list moves to the account at login |
| Variation dropdowns are hard to scan | Swatch | Replaces variation dropdowns with colour dots or label buttons |
| Shoppers cannot weigh similar products | Versus | Side-by-side comparison table with price, stock and attributes, differences highlighted |
| The product page offers no next step | Pair | Automatic “You may also like”, cart suggestions and recently viewed products |
| Carts left behind | Recover | Saves the cart and emails a one-click link that restores it, all on your own site |
| Prices are agreed per order | Quotlet | Swaps add to cart for add to quote and sends the request to the shop |
| Selling gift cards | Giftvane | Sells a gift card as a product and emails a store credit code when the order completes |
| Several products in one photo | Lookwick | Pins products to an image; each pin opens a product card with an add-to-cart link |
| Shoppers do not know which product fits | Elektilo | A short quiz maps the answers to one recommended product |
| The same text pasted into every product | Tabvera | Reusable product tabs, defined once and shown on every product |
| Listing physical shops | Lokilo | Store directory with addresses and opening hours, with no map and no Google Maps key |
| After-sale requests arrive by email | Redono | Customers open return, complaint or repair requests on an order from My Account |
| Extras chosen before add to cart | Aldono | Product options such as text, date, checkbox or select fields, each with an optional price |
| Sale or low stock is invisible on listings | Marks | Automatic badges such as Sale, New, Low stock and Bestseller, plus one manual badge per product |
| Consumer rules differ across EU countries | Shoplex | Tools for EU consumer-law information on the product page, cart, checkout and orders |
| Online withdrawal from a purchase | Withdraw | Records the customer’s withdrawal declaration and emails a confirmation; refunds stay in the WooCommerce order screen |
| Digital Product Passport (DPP) compliance | Pasporto | Displays the product passport link, GTIN identifier, and environmental metrics under ESPR Regulation (EU) 2024/1781 |
| Container and crate deposits | Botelix | Calculates single-use, refillable, and crate deposits (Kastenpfand) across 10 European deposit-return systems |
Which WooCommerce plugins to avoid
A few patterns repeat in every store that comes to me for an audit.
All-in-one plugins that promise marketing, SEO, caching and backups in one package. They usually do each of those things mediocrely and are hard to replace because they hook in everywhere. Better to pick one good tool for each job.
Abandoned plugins, meaning ones with no update for many months while WooCommerce core is actively developed. They are the first candidates for trouble after the next major update.
Page builders where they are not needed. On a product page that renders from a template anyway, a heavy builder adds a performance cost with no real benefit. If you need an unusual layout, a dedicated plugin or block written for the specific need is often cheaper to maintain than a universal behemoth.
Summary
A good WooCommerce plugin stack is not the longest list, just the shortest one that meets the store’s requirements. Start with the three critical classes for your market: payments, shipping, invoices. Measure the impact on performance instead of guessing. Treat every plugin as a vendor you are trusting with customer data, and choose maintained code over the cheapest option. The rest is tuning for a specific sales model, not a race on the number of installed plugins.
Last updated: 15 October 2026






