RunCache uses Cloudflare to store copies of your webpages on servers around the world. This allows visitors to load pages without sending every request back to your website’s server.
RunCloud provides two edge caching options, Cloudflare APO and Cloudflare Page Cache, although you can only run one edge cache provider at a time on any site.
This guide compares both caching options to help you decide which is best for your website.
Which Provider Should You Choose?
Your current Cloudflare subscription is the primary factor in choosing:
- Choose Cloudflare Page Cache if you use a Free Cloudflare plan. If you do not have an active APO subscription, Page Cache provides full-page edge caching at no additional monthly cost.
- Choose Cloudflare APO if you already pay for an APO subscription. Cloudflare APO is designed specifically for WordPress. When you select this provider, RunCache validates that you have both an active APO subscription and an active DNS proxy in Cloudflare before saving your credentials.
- Choose Cloudflare Page Cache if you have an Enterprise plan, or if your site requires custom cache keys. If your site requires custom cache keys, only Cloudflare Page Cache includes those cache key headers at the edge on Cloudflare Enterprise accounts.
The Comparison
| Feature | Cloudflare Page Cache | Cloudflare APO |
|---|---|---|
| Plugin Description | Caches and serves pages from Cloudflare’s global edge network using Cache Rules. | Caches and serves pages from Cloudflare’s global edge network using APO. |
| Cloudflare Plan Requirements | Works on all plans (Free, Pro, Business, Enterprise). | Requires a paid APO add-on ($5/month as of the current Cloudflare pricing) or an eligible plan. |
| Token Creation Route | Manage Account > Account API Tokens > Create Token > Create Custom Token | Account API tokens > Create Token > WordPress > Use template, then select the “WordPress” template |
| Required Permissions | • Zone – Zone – Read • Zone – Cache Purge – Purge • Zone – Cache Rules – Edit | Configured automatically by Cloudflare’s WordPress template |
| Changes Made at Cloudflare | Adds an automated rule inside your zone’s Cache Ruleset | Enables the zone’s APO toggle and registers your hostnames |
| Response Headers Sent | X-RunCache-Status, Cache-Control, Cloudflare-CDN-Cache-Control, CDN-Cache-Control | cf-edge-cache |
Understanding Token Permissions
Both providers communicate with Cloudflare through the Cloudflare API, but they require different permission levels:
- Cloudflare Page Cache uses custom permissions. It requires read access to your zone, purge capabilities to clear outdated pages, and edit permissions for Cache Rules.
- Cloudflare APO does not require manual permission selection because it uses Cloudflare’s pre-built WordPress template. This template automatically bundles read access for analytics, DNS, and zone settings along with write access for caching and purge routines.
If you prefer to build a custom token manually for APO, ensure your token supports the endpoints RunCache contacts: listing and reading zones, reading DNS records, updating APO settings, and issuing purge requests. You can review the full list of template permissions in Cloudflare’s API token documentation and learn more about purge commands in the Cloudflare cache API reference.
Testing and Verifying Cache Headers
Both caching options use different Cloudflare features and return different HTTP response headers. To check your caching status, open a terminal and run the following command, replacing example.com with your website’s domain:
curl -s -o /dev/null -D - -H "Accept: text/html" https://example.com/ | grep -i -e x-runcache -e cf-edge-cache -e cf-cache-status -e cf-apo-viaInterpreting the Results
- Cloudflare Page Cache: Returns the custom status headers sent by RunCache. A working request displays:
X-RunCache-Type: PHP
X-RunCache-Status: HIT- Cloudflare APO: Uses Cloudflare-specific response headers rather than RunCache’s edge cache headers. The
cf-edge-cacheheader indicates that APO caching is configured, whileCF-Cache-Status: HITconfirms that Cloudflare served the requested page from its cache. A successful cache hit may return headers similar to these:
cf-cache-status: HIT
cf-apo-via: cache
cf-edge-cache: cache,platform=wordpress- Empty Result: If the command returns no matching headers, you cannot confirm the caching status from this test. Check your Cloudflare configuration and inspect the full HTTP response headers to investigate further.
Use GET requests when testing your cache configuration. Although Cloudflare supports HEAD requests for cacheable resources, GET requests provide a more reliable way to check how your website’s pages are served. Avoid relying on curl -I alone when diagnosing caching issues.
For more details on verifying origin and edge responses, read our guide on how to run a general header check, review every header RunCache sends, or consult the Cloudflare cache-control header reference.
Next Steps
Once you decide which provider fits your site:
- If you are using the standard Cloudflare plan or do not subscribe to APO, proceed to our guide on setting up the Cloudflare Cache Rules provider.
- If you have an active APO subscription on your domain, proceed to our guide on setting up the Cloudflare APO provider.