Inicio - Documentación - POM Cache - 03 Static page cache - Which requests are excluded

Which requests are excluded

Exclusion protects both correctness and privacy. POM Cache applies some rules before looking for a file and other rules only after WordPress reveals the page type or final response.

Excluded before normal rendering

The early runtime does not serve shared HTML for:

  • WordPress administration and login;
  • cron, XML-RPC, CLI, and rejected WordPress PHP entry points;
  • authenticated, post-password, and comment-author cookies;
  • WooCommerce session, cart hash, or cart item cookies;
  • POST, PUT, and DELETE;
  • Customizer changesets;
  • meaningful query strings;
  • requests asking for JSON, ActivityPub JSON, or linked-data JSON;
  • requests already marked with DONOTCACHEPAGE;
  • a missing or unsafe POM Tweaks country-pricing universal HTML state.

GET and HEAD are the only static HTML read methods. A HEAD hit returns the same file metadata without the body.

Excluded after WordPress classifies the route

Phase two does not generate HTML files for:

  • REST and WooCommerce API responses;
  • POM Faceted Search refresh, fetch, and autocomplete responses;
  • country-price resolution and POM Composite discovery or quote responses;
  • WooCommerce Store API, wc-ajax, and WordPress AJAX traffic;
  • feeds and WordPress sitemaps;
  • robots.txt;
  • tracked redirects;
  • previews;
  • unknown/custom route types unless a developer explicitly extends the policy;
  • output negotiated as a non-HTML representation.

These requests may still work normally. They simply do not populate the shared page tree.

Excluded after output inspection

The storage step rejects:

  • empty output;
  • fatal PHP termination;
  • ordinary 404 responses under the default policy;
  • incomplete documents without a recognized ending;
  • a request where the runtime was disabled before publication;
  • a bypass cookie observed at the final gate.

If an earlier valid index.html already exists, a rejected new response does not intentionally replace it with the bad buffer.

Query-string nuance

POM Cache has a list of recognized campaign and referral parameters, including common UTM and click identifiers. In the PHP path, those names are removed from the internal request URI and $_GET.

Examples:

/about/?utm_source=newsletter
→ may use /about/ after normalization

/catalog/?color=blue
→ remains dynamic

/?s=cache
→ remains dynamic

If a tracking parameter actually changes page output on your site, it is not semantically “tracking only.” Adjust the integration before allowing canonical reuse.

Direct Apache delivery is stricter than this PHP normalization: the supplied HTML rule expects an empty query string. A campaign URL may therefore reach PHP even when the clean canonical URL is served directly by Apache.

Exclusion is not deletion

A bypassed request does not remove the anonymous page file. For example, logging in should cause the request to ignore index.html, while signed-out visitors can continue using that same safe file.

Similarly, disabling generation for a route does not purge a pre-existing file or an edge copy. When eligibility changes:

  1. update PHP integration logic;
  2. update direct web-server and CDN rules;
  3. delete the affected origin HTML;
  4. invalidate the edge;
  5. test both the excluded state and a clean anonymous state.

POM Cache performs the origin purge automatically when its persisted country-pricing safety state changes and when country zones or regional product prices change. A CDN remains a separate cache: invalidate its affected HTML paths after a country-pricing deployment, configuration change, or compatibility recovery.

Do not broaden the rule to fix a symptom

If an expected page is excluded, first identify the exact gate: cookie, method, query, route classification, representation, response status, completeness, or write permission. Removing several guards at once can convert a performance issue into a content leak.

See How cookies, query strings, and request methods affect caching for controlled tests and Pages are not cached for diagnostics.