Performance Tuning
Cyclone Static’s default settings are conservative — designed to work reliably on the most resource-constrained shared hosting environments without ever impacting live visitor traffic. If you have more server capacity available, there’s significant room to speed up cache generation.
Understanding the Defaults
- Batch Size: 2 — two pages fetched per cron run
- Throttle Delay: 500ms — half-second pause between each fetch in a batch
- Cron Interval: 30 seconds — batch runs every 30 seconds
At these defaults, Cyclone generates roughly 4 pages per minute, or about 240 pages per hour. A 500-page site takes roughly 2 hours for initial generation. A 5,000-page site takes around 20 hours.
That pace is intentional for initial deployment. Aggressive cache generation consumes PHP workers, which are a shared resource on most hosting plans. If all PHP workers are busy fetching pages, visitors trying to reach WordPress directly (logged-in users, POST requests, uncached URLs) experience slowdowns or timeouts.
Hosting Tiers and Recommended Settings
Shared Hosting (GoDaddy, Bluehost, HostGator, SiteGround Economy)
Shared hosts typically allocate 2–4 PHP workers per account. Keep settings conservative:
- Batch Size: 2–3
- Throttle Delay: 500–1000ms
- Cron Interval: 30–60 seconds
At batch size 2 and 500ms throttle, each cron run holds 1 PHP worker for about 1–2 seconds total. The other workers remain available for live traffic throughout.
Managed WordPress Hosting (WP Engine, Kinsta, Cloudways, Pressable)
Managed hosts allocate more workers and are optimized for WordPress PHP performance. Page renders are typically faster, meaning each fetch completes sooner:
- Batch Size: 5–10
- Throttle Delay: 200–500ms
- Cron Interval: 15–30 seconds
Monitor your host’s resource dashboard during initial generation to confirm you’re not hitting CPU or memory limits.
VPS (DigitalOcean, Linode, Vultr — 2–4 GB RAM)
A typical LEMP or LAMP stack VPS with PHP-FPM running 8–16 workers:
- Batch Size: 5–10
- Throttle Delay: 100–300ms
- Cron Interval: 15–30 seconds
Dedicated Server or Large VPS (8+ cores, 8+ GB RAM)
With 50+ PHP workers available, you can push generation as fast as your disk I/O and database can handle:
- Batch Size: 10–20 (Pro plan maximum)
- Throttle Delay: 0–100ms
- Cron Interval: 10–15 seconds
How to Test Your Settings
- Set your target Batch Size and Throttle Delay.
- Go to the Dashboard and note the Queue Depth.
- Click Process Now a few times to trigger immediate batches.
- While processing, load your site’s homepage in a browser (as a logged-out visitor). It should load quickly.
- Also load a page that isn’t yet cached (one not in the cache directory) — this is the true test. If that page loads in under 2 seconds, your settings are safe.
- Check your server’s CPU usage during generation. Sustained CPU above 80% on a shared or small VPS is a sign to increase the throttle delay or reduce batch size.
Real Cron vs WP-Cron
WP-Cron fires when someone visits your site. On low-traffic sites (especially during off-peak hours), this means cron may run infrequently and the queue drains slowly.
To ensure consistent processing, set up a real cron job on your server to call WP-Cron on a fixed schedule:
*/5 * * * * /usr/bin/php /path/to/wordpress/wp-cron.php > /dev/null 2>&1
This runs WP-Cron every 5 minutes regardless of traffic. Replace /path/to/wordpress/ with your actual WordPress root path (e.g. /home/username/public_html/).
On cPanel, set this up under Cron Jobs. On Plesk, under Scheduled Tasks. On a server with SSH access, edit the crontab with crontab -e.
With a real cron firing every 5 minutes and a batch size of 10, you can generate 120 pages per hour — 2,400 pages in 20 hours — with minimal impact on live traffic.
Initial Generation Strategy
For a large site doing its first full cache generation, consider this approach:
- Schedule generation for off-peak hours. If your site peaks between 8am–10pm, queue the initial generation overnight. Visitors during off-peak hours are fewer, so higher batch sizes are safer.
- Use Discover from Sitemap rather than Generate All. It discovers every URL your sitemap exposes, including archives and pagination, ensuring complete coverage.
- Temporarily increase batch size and reduce throttle for faster generation overnight, then return to conservative settings after the cache is built.
- Monitor with Process Now. Click it a few times on the first night to confirm generation is actually proceeding. The Queue Depth number should be decreasing.
Cache Warming After Major Changes
After a theme update, plugin update, or any change affecting site-wide output (new global CSS, new header, new footer), you’ll want to regenerate the entire cache. Use Clear All Cache followed by Discover from Sitemap. Your site remains fully functional during regeneration — visitors receive live WordPress for uncached pages, and static files for pages already regenerated.
If you’re concerned about the live WordPress load during regeneration, lower the batch size temporarily. This extends generation time but ensures live visitors are never impacted.
