Can personalized or dynamic ecommerce pages be cached?
Yes, with the right architecture: cache the page shell, fetch truly dynamic fragments (cart, inventory) separately, and vary cached versions by segment rather than by individual.
The naive fear is that caching a dynamic page means serving stale prices or someone else's cart. Working implementations avoid this with three patterns: hole-punching (dynamic fragments load after the cached shell), event-driven invalidation (catalog changes purge exactly the affected pages), and segment-level variation instead of per-user pages.
The result: product and category pages serve from the edge at static-file speeds while cart and checkout stay live. Cache-hit ratio on HTML is the metric that tells you whether a vendor actually does this.