Cache and CDN Considerations

NotedWP is designed to coexist with caching plugins and CDNs. In most setups, everything works without extra configuration. This page explains the few cases where you may need to adjust your caching rules.

How NotedWP Loads

The overlay JavaScript and CSS only load when the ?noted parameter is present in the URL (or when a guest token is active). Regular visitors never receive NotedWP scripts. WordPress uses wp_enqueue_script with the defer strategy to load the overlay assets, so they do not block page rendering.

This design means your cached pages, the ones served to the public, are completely unaffected by NotedWP.

Full-Page Caching

Full-page caching plugins (WP Super Cache, W3 Total Cache, WP Rocket, LiteSpeed Cache, and others) store a static HTML snapshot of each page and serve it to subsequent visitors without running PHP.

The potential problem. If your caching plugin caches a page request that includes ?noted, the cached version will contain a stale wp_rest nonce. When you or a guest loads that cached page later, API calls will fail because the nonce has expired.

The fix. Exclude URLs containing ?noted from your full-page cache. Most caching plugins let you add query string exclusions.

  • WP Rocket: Go to Settings > WP Rocket > Advanced Rules. Add noted to the “Never Cache Query Strings” list.
  • LiteSpeed Cache: Go to LiteSpeed Cache > Cache > Do Not Cache Query Strings. Add noted.
  • W3 Total Cache: Go to Performance > Page Cache > Rejected Query Strings. Add noted.
  • WP Super Cache: Go to Settings > WP Super Cache > Rejected URL Strings. Add ?noted.
  • Other plugins: Look for a “query string exclusion” or “do not cache” setting and add noted.

If your plugin does not support query string exclusions, you can add ?noted as a full URL pattern exclusion (e.g., .?.noted.*).

CDN Configuration

NotedWP serves its JavaScript and CSS assets from your domain, not from an external CDN. REST API calls also go directly to your domain. This means most CDN configurations work without changes.

Query parameter stripping. Some CDNs strip query parameters from URLs to improve cache hit rates. If your CDN removes the ?noted parameter, the overlay will not load. Check your CDN settings and ensure noted is preserved as a query parameter, or add it to an allowlist.

Cloudflare. NotedWP works with Cloudflare out of the box. Cloudflare does not strip query parameters by default. If you use Cloudflare Page Rules or Cache Rules that normalize query strings, add an exception for the noted parameter.

Object Caching

NotedWP stores two pieces of data as WordPress transients:

  • noted_license_check (cached for 12 hours). Holds the result of the most recent license validation.
  • noted_update_data (cached for 6 hours). Holds the latest plugin version info for the update checker.

These transients use the standard WordPress Transients API, which means they work automatically with any object cache backend (Redis, Memcached, or the default database). You do not need to configure anything.

If you ever need to force a fresh license check or update check, you can delete these transients manually via WP-CLI:

wp transient delete noted_license_check
wp transient delete noted_update_data

Server-Level Caching (Varnish, Nginx FastCGI Cache)

If your hosting provider uses server-level caching (Varnish, Nginx FastCGI cache, or similar), the same principle applies. Ensure requests with the ?noted query parameter bypass the cache so that WordPress generates a fresh response with a valid nonce.

Most managed WordPress hosts (Kinsta, WP Engine, Flywheel, Cloudways) allow you to add cache exclusion rules through their dashboard or support team. Ask them to exclude URLs containing ?noted from their full-page cache.

Quick Checklist

  • Exclude ?noted from full-page cache (plugin or server level).
  • Confirm your CDN does not strip the noted query parameter.
  • No action needed for object caching. Transients work with any backend.
  • No action needed for browser caching. NotedWP assets use standard WordPress versioning.