Skip to main content
multitalented_Captaina927
Level 2
Nov 9, 2026 7:58 AM UTC
Question

AD0-E117: AEM Dispatcher vs. CDN caching, why is published content still stale?

I’m preparing for the Adobe Experience Manager Sites Architect Master exam (AD0-E117) and reviewing caching in AEM as a Cloud Service. I’m using Adobe’s official exam prep guide and the AEM caching documentation, alongside CertsPrime Practice Material.

Here’s a scenario I’m trying to understand: an updated page is available on AEM Publish, but some visitors still see the older version.

How would you determine whether the Dispatcher or CDN cache is responsible, and how would you balance cache expiration and invalidation against performance?

For anyone who has worked with AEM, what would you check first?

2 replies

AMANATH_ULLAH
Community Advisor
Community Advisor
Nov 9, 2026 8:48 AM UTC

​@multitalented_Captaina927 

I would check below

  1. Verify the latest version on Publish.

  2. Inspect response headers and compare responses across the delivery layers.

  3. Identify whether the stale response originates from Dispatcher, CDN, or browser.

  4. Fix the relevant invalidation or TTL configuration.

Also check the following response headers:

  • Age: Indicates how long a response has been cached by an intermediary cache, where supported.
  • Cache-Control: Indicates browser/shared cache expiration directives.
  • Surrogate-Control: Can control CDN caching independently of browser caching.
  • Expires: Provides an expiration date for the response.
  • X-Cache or equivalent CDN-specific headers: May indicate HIT, MISS or other cache status, depending on the CDN provider.
Translate
Amanath Ullah
Raja_Reddy
Community Advisor
Community Advisor
Nov 9, 2026 8:57 AM UTC

Hi ​@multitalented_Captaina927 
 

There are three cache layers to consider, not two: Dispatcher, CDN, and the browser. Their invalidation logic needs to be aligned, so I’d check in this order:

1. Find which layer is serving the stale copy
Compare response headers (Cache-Control and the CDN’s cache status header) from an affected client against a request that bypasses the cache, for example a cache-busting query string if your Dispatcher config doesn’t ignore parameters. If the fresh content only shows up on the bypass, a cached copy is the problem. Check the browser’s max-age as well.

2. Know what invalidates what
AEM already flushes the Dispatcher cache automatically on publish, but the CDN is mainly managed by TTL. The CDN’s caching of responses is controlled by the origin’s Cache-Control, Surrogate-Control or Expires headers. So “fresh on Publish but stale for some visitors” usually means the CDN is still inside its TTL (different edge nodes can also hold different copies). Also check whether the page depends on content that wasn’t activated, such as a listing or navigation component.
3. Balancing freshness and performance

  • Rely on the automatic Dispatcher invalidation, use TTL for the CDN, and use API-based purging only where it’s needed.
  • Set TTLs per content type: short for HTML, long for versioned clientlibs and images, instead of one global value.
  • For urgent changes, use the CDN purge API rather than lowering TTLs everywhere. It can purge a specific resource, a group of resources (via surrogate key) or the whole cache, so prefer targeted purges to a full one, which sends all traffic back to the origin.
  • Keep Dispatcher and CDN TTLs consistent so one layer doesn’t hold content much longer than intended.
Translate