WooCommerce Subscriptions relies on WordPress cron (wp-cron) to process renewals, send reminder emails, and update subscription statuses. On shared hosting, wp-cron is triggered by site visits — meaning if nobody visits your site at renewal time, renewals don’t process.
The solution is server-level cron (a real scheduled task) that runs independently of site traffic. This ensures renewals process on schedule even at 3am when nobody is browsing. It sounds basic, but a shocking number of hosting providers don’t offer this.
Frequently Asked Questions
What hosting does WooCommerce Subscriptions require?
WooCommerce Subscriptions requires reliable server-level cron execution (not WordPress’s visitor-triggered wp-cron), adequate PHP workers to handle renewal processing alongside regular visitor traffic, Redis object caching (subscription queries involve complex relationship lookups), sufficient memory per PHP worker (Subscriptions adds significant processing overhead to WooCommerce’s already memory-intensive stack), and dependable scheduled task execution at precise times. Shared hosting frequently fails WooCommerce Subscriptions sites through unreliable cron execution and insufficient resource allocation.
What is the problem with wp-cron for WooCommerce Subscriptions?
WordPress’s built-in wp-cron is a pseudo-cron — it runs when someone visits your site, not on a true schedule. If no one visits your site at 3am when a batch of subscriptions are due for renewal, those renewals do not process. This causes missed charges, subscription status errors, and customer complaints. The solution is configuring a server-level cron job that calls wp-cron directly on a real schedule: */5 * * * * php /path/to/wp-cron.php as a crontab entry. On managed hosting, server-level cron is typically configured by default and does not require manual setup.
How do I handle large batches of WooCommerce subscription renewals?
WooCommerce Subscriptions uses WooCommerce’s Action Scheduler to batch renewal processing. By default, it processes renewals in batches to avoid server overload. Key configuration: ensure Action Scheduler is running on a real cron (not wp-cron), adjust batch sizes in WooCommerce Subscriptions settings to match your server capacity, monitor action queue depth in WooCommerce > Action Scheduler, and ensure renewal processing does not coincide with peak visitor traffic periods (scheduled peak renewal times at off-peak hours). On high-subscription-volume stores, background processing load from renewals can meaningfully compete with visitor-facing requests for PHP workers.
Can WooCommerce Subscriptions renewal emails be relied upon?
Renewal reminder and payment confirmation emails require both reliable cron execution and proper email deliverability infrastructure. If wp-cron is not running reliably (common on shared hosting), renewal emails are delayed or not sent at all. If email is sent via PHP’s mail() function on a shared IP, deliverability to major providers is poor. For subscription businesses where payment reminders and receipt emails are operationally critical, managed hosting with server-level cron and native Postfix on a dedicated IP is required. SMTP relay services (Sendgrid, Mailgun) are an alternative to native Postfix for email deliverability.
What is the difference between WooCommerce Subscriptions and WooCommerce Memberships?
WooCommerce Subscriptions manages recurring payment products — customers are billed on a schedule for continued access or delivery. WooCommerce Memberships manages access control — restricting content, products, or discounts to members. They are separate plugins that are commonly used together: Memberships defines what access members get; Subscriptions handles the recurring billing that maintains membership. Both add database and processing overhead. From a hosting perspective, Subscriptions creates more server load (recurring payment processing, Action Scheduler queues) while Memberships primarily adds query overhead on every page load to check access permissions.
Batch Renewal Processing
Batch renewal processing creates significant server load. If you have 500 subscriptions renewing on the 1st of the month, that’s 500 payment gateway API calls, 500 database updates, and 500 emails — all executing within minutes. Your hosting needs the headroom to handle this spike.
Failed Payment Retry Logic
WooCommerce Subscriptions retries failed payments on a schedule, creating recurring processing bursts. If your server is already under pressure from the initial renewal batch, retries compound the problem.
WP Pro Host handles subscription workloads with: server-level cron running every minute (not dependent on traffic), dedicated PHP workers for background processing, queue-based email delivery that doesn’t block payment processing, and monitoring that alerts you to renewal failures in real-time.