How to succeed with WooCommerce Subscriptions: Technical Tips Learned from 15,000 Stores

You’ve decided to take the leap. You or your client is going to start an online business.

You’ve chosen WooCommerce and WordPress to power your store. You’re planning to include a subscriptions component to sell more with less work.

You’ve made some great decisions already, but that doesn’t mean it’s going to be easy!

WooCommerce Subscriptions now powers recurring payments for more than 15,000 stores. Over the last five years, as part of the team developing the software, I’ve learned a lot about subscriptions from a technical perspective and want to share these lessons.

Taking 10 minutes to read this article, then acting on its recommendations could give you a return of weeks and thousands of dollars in savings.

I’m going to focus on three important areas:

  • Choosing a host
  • Choosing a payment gateway and extension
  • Being discerning with code you run on your site

Let’s first look at why this information matters.

The greater responsibility required by open-source subscription software

With WooCommerce Subscriptions, you have almost complete ownership and control over your billing. Recurring payments data is stored and executed from within your WooCommerce store. The store’s database and application are within your control.

Compared to closed-source SaaS billing software, this level of control makes WooCommerce Subscriptions unique. Even other open-source options pass responsibility for processing scheduled payments to the payment gateway.

This design gives power and flexibility to you and your store more than any other subscription software solution. If all goes well, your business will be running for many years, and subscribers who sign up today will still be actively subscribed to your store in 10 or even 20 years. That’s one of the great things about owning your data and using open-source software – everything you have now is yours as long as you need it.

With that power comes responsibility. Making the right choices at the start will pay dividends and keep your subscriptions running smoothly. Bad decisions can cost you money for fixes and in lost subscribers.

Allow the points below to guide decisions for your subscription store in the immediate future and years to come.

Choosing a Host for WooCommerce Subscriptions

Hosting is your real estate. Choose great real estate, and your business will flourish. It’s the single most important choice to get right at the start.

With WooCommerce Subscriptions, you control your billing data and application. That’s why hosting is critical. Your hosting is responsible for your payments.

WooCommerce Subscriptions Hosting Recommendations: Pagely, Pressable, and Pantheon

After working with thousands of support tickets, I’ve consistently seen Pagely perform best with folks we’ve recommended to them.

We’ve also seen many stores find success with Pressable and Pantheon after having trouble with other hosts.

LiquidWeb is a new entrant and investing more than anyone to create an excellent platform for WooCommerce. For example, a visual comparison for automatic updates. At the time of writing, I can’t recommend them based on personal testing but encourage you to check them out.

Pocket watch on coins as a metaphor for time being money
Time is money when it comes to subscriptions. A 60-second timeout can cost you recurring payments.

Choosing a host for WooCommerce Subscriptions isn’t as simple as finding a good WordPress host. Your store is more than just a WordPress site. It’s a recurring billing application. Look for a host suited to running a web application, not just a blog.

WP Engine is a good choice for hosting a blog or simple store, but not for running WooCommerce Subscriptions at scale. Why? They enforce 60-second timeouts and WooCommerce Subscriptions needs to be allowed to run processes for longer. WP Engine’s timeout will become troublesome when your store grows, especially if you are synchronizing recurring payments.

It is a time-consuming and costly process to change hosts, so it’s worth picking the right one up front that can grow with you.

Sidenote: We haven’t done formal or extensive testing of WooCommerce Subscriptions performance on most hosts. If an official hosting guide would be helpful to you, please let us know.

Payments for WooCommerce Subscriptions

The next important decisions you make are around payments.

When customers create subscriptions with your store, the payment gateway saves their payment data. To switch, you need to:

  • Migrate all payment data to the new payment gateway, then sync it with your database in WooCommerce. Migration is only possible with some payment gateways that offer payment data portability.
  • Cancel all automatic payments in the existing gateway, and ask customers sign up again with the new gateway.

These are both time consuming and expensive options you can avoid by starting out with a future-proof payment gateway.

online payment via credit card

1. Choosing a Payment Gateway

In my experience, the best payment gateway for WooCommerce Subscriptions is Stripe. I’ve seen thousands of small and large stores use it with great success.

Braintree via PayPal and CIM are also excellent options.

All three payment gateways have user-friendly dashboards and modern APIs. Plus there are dependable WooCommerce extensions to connect them with your store.

What if those three gateways don’t work in your region?

Not all merchants can access these payment gateways. Your store may be in a country they do not support. Your product catalog may see you classified as a prohibited business.

In these cases, you still have many good options. And there are also many you should avoid.

To choose a payment gateway you can depend on, look for:

  • Data portability for your payment tokens, e.g., Credit card numbers
  • Support for automatic recurring payments with your customer’s preferred payment methods
  • A modern payment method, not just a popular one

Portability for Recurring Payment Data

Some payment gateways allow you to port your payment data, such as credit card numbers, to a different payment gateway if you choose to switch. That means you can change gateways without requiring your subscribers to sign up again.

If a payment gateway offers data portability, it’s a signal of how the business intends to compete in future. It demonstrates an intent to keep fees, functionality, and customer service competitive.

If a payment gateway locks in your data, it may be a tactic to keep you even if their offering falls behind the competition.

Automatic Recurring Payments with your Customer’s Preferred Payment Methods

Many payment gateways offer support for different payment methods such as credit cards, direct debit, or ACH. This doesn’t mean they are able to perform automatic recurring payments.

For example, a payment gateway may offer direct debit for one-off payments, but no API to automatically pull direct debits in the future.

In most cases, you need a “token” for a WooCommerce extension to be able to process automatic recurring payments. Find out if tokenization is supported for that payment method. If it is, then it should be possible to charge automatic recurring payments.

Modern Payment Methods

Payment technology has improved a lot in the last decade. Older, more established players sometimes carry the legacy of their early days.

This doesn’t mean you need to use a new entrant like Bolt. In my experience though, it does mean choosing a 5-10 year-old company will result in a better experience than using a 10-20 year-old company.

Image of the Kawaii Box homepage detailing their subscription options.
Kawaii Box relies on a “mystery box” subscription model, where subscribers receive a box stuffed full of goods each month.

2. Choosing an Extension

Once you’ve chosen a payment gateway, you also need to select a payment gateway extension for WooCommerce. There are three things to consider here:

  • Subscriptions feature support
  • Reputable extension developer
  • Automatic recurring payments for your customer’s preferred payment methods
Screenshot of payment gateway extensions catalog offers close to three dozen payment gateways for Subscriptions.

WooCommerce Subscriptions Feature Support

Choose a gateway that fully supports WooCommerce Subscriptions when possible. This helps you get the most out of your store. To see a breakdown of supported features, go to: Subscription Payment Methods & Gateways.

Features in that guide are also base functions for many others in Subscriptions. For example, support for recurring total modifications also unlocks the ability for:

  • Customers to upgrade their subscriptions
  • Store owners to modify future payment amounts
  • Subscriptions to automatically retry failed payments and capture additional revenue.

When an extension supports all features, it’s a good indication that the payment gateway provides modern APIs.

Reputable WooCommerce Extension Developer

Most payment gateways have more than one WooCommerce extension available. Even if the payment gateway is reliable, a poorly coded extension can affect your recurring payments – sometimes to the point of not processing.

Choose a WooCommerce extension from a well-reputed developer.

SkyVerge is the leader in the field here. If you see the SkyVerge name on a payment gateway, you can trust it is first class. Fortunately, they’ve built extensions for many payment gateways.

Support for automatic recurring payments with your preferred payment methods

An extension will sometimes not have support for recurring payments, and sometimes it’s not possible to add it.

If you can’t see whether a payment method supports automatic recurring payments, contact the developer and find out.

Cost Considerations for Choosing a Subscriptions Payment Gateway

Finally, when it comes to payment gateways, higher fees do not mean higher costs.

Some gateways have arduous configuration requirements that will cost you and your team time.

Paying $79/year for a premium payment gateway extension could end up saving you the cost of migrating from a cheaper or lower quality extension.

Payments are the fuel for your subscriptions. View fees as an investment in a smooth relationship, not as a cost.

Be Discerning with Code Added to Your Site

WooCommerce is an open system. That provides you with many advantages. It also means one weak link can take down other functions of your store.

In the case of WooCommerce Subscriptions, this can be serious.

If you add a plugin that introduces an error on the same day a few hundred recurring payments are processed, those payments may fail. It’s rare but possible and easily avoided.

To avoid nightmare scenarios like this:

  • Establish a good update and testing process for updates.
  • Be selective about code you add to your site.

Test Recurring Payments

Before updating plugins on your live site, update them on a staging site and test a recurring payment. This serves as a good indicator that your live site won’t experience interruptions to recurring payments once plugins are updated. Note: Subscriptions switches to ‘staging mode’ on staging sites, so won’t go through the full payment process.

To overcome this, choose a workflow that separates your application code from your database, then:

  1. Create a development site.
  2. Import 100 test subscriptions from a CSV, with payments set to process in 10-15 minutes.
  3. Make sure payments all process with your updated plugins.

You need not to run this test for every plugin update. It’s best to run it once for the entire system with all plugins updated; in rare situations where something is wrong, work to isolate it.

An easier way to test recurring payments is to use Robot Ninja. We’re currently exploring how to have it run regular recurring payment tests similar to its live payment tests for checkout.

Testing recurring payments with WooCommerce Subscriptions
Testing recurring payments with WooCommerce Subscriptions.

Choose Good Quality Code

Code for your store comes from your theme, plugins, and custom code added by you or hired developers.

Every piece of code adds a new vector for failure. Be ruthlessly discerning in the code you add.

Choose a plugin or theme that has publicly available feedback, e.g., review system on extensions.

Ideally, also get in touch with existing customers to hear their experiences. You can do this via community channels, such as a local WooCommerce meetup or the WooCommerce Community Slack.

Remember, saving $50 on a plugin could cost you thousands in lost revenue from payment failures or time fixing issues. A lower price does not always mean a lower cost.

Find a developer with previous relevant experience. WooCommerce Subscriptions is a complex system. Developers with experience will create solutions more quickly and avoid common pitfalls.

Every piece of code adds a new vector for failure. Be ruthlessly discerning in the code you add.

Three agencies with deep Subscriptions experience are Saucal, Silicon Dales, and Mindsize. It’s wise to get references from clients they worked with for a year or more.

With subscriptions, time horizons matter. A plugin may start off fine, but problems may arise after the 100th renewal or 10,000th subscriber. An agency might get a job done on time and within budget, but six months later an undiscovered bug could cause issues.

A picture of a craft beers in a row in front of an Honest Brew box
Honest Brew sells craft beers with WooCommerce Subscriptions in the UK.

Custom Code and Missing Features

One last note on custom code.

We’ve released over 100 new versions of Subscriptions in the last half-decade, bringing new features and functionality. There are many different ways to sell and manage subscriptions, and there are more features to add for merchants to achieve that.

If your business doesn’t urgently need a feature, wait for WooCommerce Subscriptions to include it.

We publish what’s planned in an upcoming release on the Feature Roadmap, and we prioritize feature requests by the number of votes.

You get access to new features as long as your subscription with is active. Apart from being cheaper, it is almost always be more robust and future-proof than anything that’s custom built. When developing features, we apply arduous quality assurance to make sure code we ship is ready for use on 15,000 stores. This approach means we take time to ship new features, but you can rely on them once they’re available.

We do a release about once per year but sometimes beta versions are available six or more months in advance. If you want early access to a feature, contact Prospress support.

Wishing you Success with Subscriptions

Congratulations! You now know everything you need to succeed with WooCommerce Subscriptions.

To summarize my recommendations:

  • Hosting: Your store will be on solid ground with Pagely, Pressable or Pantheon.
  • Payment Gateway: Use Stripe, Braintree via PayPal or CIM, and your store will enjoy a good relationship for many years.
  • Custom Code: Saucal, Silicon Dales, and Mindsize are agencies with significant Subscriptions experience. Wait for features to be added to Subscriptions core when possible.

Good luck on your entrepreneurial journey!

If you’re moving towards subscriptions, following the guidance in this post means the technical side of things will be set up for success. If you do run into stormy weather, don’t hesitate to contact Prospress support.


Brent Shepherd thinks WooCommerce is the best thing to happen to the web since WordPress.

He’s been working with WooCommerce since 2011. In addition to being the original developer of WooCommerce Subscriptions, he is co-organizer of the WooCommerce San Francisco meetup, provided a technical review on the first WooCommerce book, and has given talks about WooCommerce on three continents.

On the heels of WooCommerce Subscriptions success, Brent founded Prospress with the mission to help people prosper with WordPress, using WooCommerce, of course. Prospress also produces Small Woorld and Robot Ninja.

Original article written by Brent Shepherd >

[wpseo_map width=”100%” height=”300″ zoom=”-1″ map_style=”roadmap” scrollable=”0″ draggable=”1″ show_route=”0″ show_state=”1″ show_url=”0″] [wpseo_address hide_address=”1″ show_state=”1″ show_country=”1″ show_phone=”1″ show_phone_2=”0″ show_fax=”0″ show_email=”1″ show_url=”1″ show_logo=”0″ show_opening_hours=”1″]