This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

How a renewal actually gets charged

WooCommerce's renewal documentation says that when a renewal is due, a scheduled payment event (woocommerce_scheduled_subscription_payment) is triggered in Action Scheduler. Automatic renewals are charged through the gateway used at the original purchase. Manual renewals create a Pending payment order that the customer pays through normal checkout, and those pending renewal orders remain pending indefinitely.

If a payment fails, the default is to put the subscription on hold until the customer logs in and pays; an optional retry system can retry the charge and email the customer. Both paths need the scheduler to run on time and the customer's account and checkout pages to work for a logged-in user.

Why cron reliability is a hosting decision

Action Scheduler's FAQ says its queue is initiated by WP-Cron and the shutdown hook on admin requests, that it has no hard dependency on WP-Cron, and that it can also be run through WP-CLI. WordPress's developer documentation says WP-Cron only fires on page load: a task due at 2:00 PM can wait until 5:00 PM if nobody visits. WP Engine's support article names low-traffic sites as the most common cause of missed events.

Worked example: a course with 300 monthly subscribers renewing on the 1st sees few visits overnight. With traffic-triggered cron, the 300 renewal actions start whenever the first visitor arrives, and they compete with that visitor for PHP. With a server cron every few minutes, they start on schedule and in a predictable window. Action Scheduler also notes that several past-due actions more than a day old may indicate a problem, which is a useful daily check under WooCommerce, Status, Scheduled Actions.

HostDocumented scheduler optionInterval
WP EngineAlternate Cron toggle in User Portal, Utilities; requires WP-Cron disabledChecks for due events every minute
SiteGroundDisable WP-Cron, add a cron job in Site Tools, Devs, Cron Jobs30 minutes suggested as fine for most sites
KinstaAdd your own crontab entry over SSH, or ask supportMinimum 5 minutes
Liquid WebNot documented on the plan page we readAsk before buying

Keep checkout, cart and My Account uncached

WooCommerce's caching guide says Cart, My Account and Checkout must be excluded from caching because they show information specific to the current customer. It lists cookies to exclude: woocommerce_cart_hash, woocommerce_items_in_cart, wp_woocommerce_session_ and woocommerce_recently_viewed, and suggests excluding _wc_session_ from database caching if your system offers it. It warns that some hosts with server-side caching may cache the account page; if password resets loop back to the login screen, ask the host to exclude it.

For a subscription store this matters twice: failed-payment customers must reach My Account to pay, and the gateway's webhook endpoint must reach PHP. Test both with a real logged-in customer account on staging.

Staging that cannot charge your customers

WooCommerce documents that Subscriptions records the URL where it is first activated and treats that as the live site. On a copy with a different URL it runs in staging mode: automatic payments and subscription emails are disabled, all subscriptions use manual renewal, and a red Staging badge appears beside the Subscriptions menu. If you first activate Subscriptions on a staging site, that site is treated as live, so activate on production and then clone. Staging mode does not stop WordPress or other plugins from sending email.

That makes host staging genuinely useful for a subscription store: SiteGround, Kinsta, WP Engine and Liquid Web all list staging on the plans in this guide. Our WooCommerce staging guide walks through checking the mode before testing.

Requirements to check before you buy

ComponentPublished requirementSource
WooCommerce 10.8+WordPress 6.9+, PHP 8.3+ (tested to 8.4), MySQL 8.0+ or MariaDB 10.6+, 256 MB WordPress memory limit, HTTPSWooCommerce server requirements
WooCommerce SubscriptionsPHP 7.4+, WordPress 7.0+, WooCommerce 11.0+; compatible with HPOS and checkout blocksSubscriptions product page
Subscriptions price$279 for 1 year, or $446.40 for 2 years; 30-day money-back guaranteeSubscriptions product page
Kinsta per-thread memory256 MB per thread on Single 35k to Single 750kKinsta PHP docs

Which tier fits your store

Prices are list prices read on 29 October 2026. Store sizes are planning bands, not tested capacities.

Store stageSensible starting pointPublished basisUpgrade when
Launching, under a few hundred subscribersSiteGround GrowBig with a Site Tools cron$4.99/mo first invoice, $29.99/mo renewal; staging, daily backupsRenewal runs take long enough to slow the site, or checkout errors appear at peak
Growing, renewals clustered on set datesKinsta Single 65k or WP Engine EssentialKinsta: 4 threads, $50/mo; WP Engine: $28/mo first year, Alternate CronPHP threads saturate during renewal windows or launches
Large or high-ticketKinsta Single 125k and up, or a quoted Liquid Web planKinsta: 6+ threads; Liquid Web: 14 or 30 day backups, Object Cache ProYou need longer backup retention, isolation or an SLA

Pre-purchase checklist

  • Confirm in writing how to run WP-Cron from a real server scheduler on the plan you are buying.
  • Confirm cart, checkout and My Account are excluded from the host's page cache by default, and how to add your gateway's webhook path.
  • Confirm PHP 8.3 is available and the PHP memory limit is at least 256 MB.
  • Clone production to staging and verify the red Staging badge appears before testing anything.
  • Schedule a test renewal on staging with manual renewal, and on production with a low-value test product, then watch Scheduled Actions.
  • Check backup retention covers at least one full billing cycle so you can recover a bad renewal batch.

Questions before you decide

Will renewals still run if my site gets no visitors?

Action Scheduler is started by WP-Cron by default, and WP-Cron only runs on page load, so timing is not guaranteed. A server cron or WP Engine's Alternate Cron removes that dependence on traffic.

Can a staging copy charge my real subscribers?

WooCommerce documents that Subscriptions disables automatic payments and subscription emails when the site URL differs from where it was first activated. Activate on production first, then clone.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. WooCommerce: Subscriptions renewal process Accessed 29 Oct 2026
  2. Action Scheduler: FAQ Accessed 29 Oct 2026
  3. WordPress Developer Resources: Cron Accessed 29 Oct 2026
  4. WP Engine: WP-Cron and Alternate Cron Accessed 29 Oct 2026
  5. SiteGround: Replace the WordPress cron with a real cron job Accessed 29 Oct 2026
  6. Kinsta Docs: Cron jobs Accessed 29 Oct 2026
  7. WooCommerce Developer Docs: Configuring caching plugins Accessed 29 Oct 2026
  8. WooCommerce: How Subscriptions handles staging sites Accessed 29 Oct 2026
  9. WooCommerce: Server requirements Accessed 29 Oct 2026
  10. WooCommerce.com: WooCommerce Subscriptions product page Accessed 29 Oct 2026
  11. Kinsta Docs: PHP threads and memory by plan Accessed 29 Oct 2026
  12. Kinsta: Pricing Accessed 29 Oct 2026
  13. WP Engine: Plans Accessed 29 Oct 2026
  14. SiteGround: Shared hosting features and plan comparison Accessed 29 Oct 2026
  15. Liquid Web: Managed WordPress hosting plans Accessed 29 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.

Your decision at a glance

Compare the options

Full comparison

Documentation-based guidance. No tested ranking or performance score.

Hosting

Liquid Web

Consider it for
Use Liquid Web when the job is a defined managed-server responsibility and the quoted plan lists which server tasks they own versus yours.
Starting cost
Quote-dependent; VPS commonly $10–$100 and managed configurations can exceed $100 per Liquid Web's cost explainer (2026-09-15)
Before you choose
Not a fit until the failing component is identified. Management does not include application debugging unless the written scope says so.

Checked 15 Sep 2026 · Pricing source

View Liquid Web plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Managed WordPress

Kinsta

Consider it for
Use Kinsta Single 20GB, listed at $35/month, when a WordPress course site needs published PHP-capacity controls and a staging rehearsal.
Starting cost
Single 20GB listed $35/month on 2026-09-15; first-month promotions and annual billing change the cash invoice
Before you choose
Do not treat visitor allowances as class concurrency. No plan here is verified for a specific learner count.

Checked 15 Sep 2026 · Pricing source

View Kinsta plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Managed WordPress

WP Engine

Consider it for
Use WP Engine Essential when the quoted plan covers your plugin stack, membership cache rules, and an isolated staging copy.
Starting cost
Essential 1-site card displayed $336/year on 2026-09-15 with promotional first-year pricing; confirm undiscounted checkout
Before you choose
Skip if you cannot rehearse membership access and payments at the destination. No measured speed advantage is claimed.

Checked 15 Sep 2026 · Pricing source

View WP Engine plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Shared hosting

SiteGround

Consider it for
Use SiteGround StartUp, advertised at $2.99/month for a prepaid first 12 months then $17.99/month, when one WordPress site needs shared hosting rather than a server you administer.
Starting cost
StartUp first-term $2.99/mo prepaid 12 months, renews $17.99/mo on 2026-09-15 (world page: ex. VAT); 1 website, 10GB, ~10,000 visits marketing estimate
Before you choose
Visit marketing estimates are not class concurrency. Renewal is $17.99/mo after the prepaid term. No course-capacity test is claimed.

Checked 15 Sep 2026 · Pricing source

View SiteGround plans

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure