Diagnosing and Fixing Magento 2 Full Page Cache Failures on Production
A step‑by‑step diagnostic guide to identify, troubleshoot, and fix Magento 2 Full Page Cache failures on production sites, covering symptoms, root causes, systematic checks, fixes, and escalation points.
04 Feb 2026, 15:53 UTC

Recognizable Symptoms
When Full Page Cache (FPC) is not working as expected, you’ll notice:
- Pages load slowly or display un‑cached content.
- Browser dev tools show
X‑Magento‑Cache‑Status: MISSfor requests that should be cached. - Magento logs contain
Full Page Cache: Cache missentries. - Cache backend reports frequent
missentries or zero hit rate.
Root Cause Table
| Symptom | Possible Cause | Diagnostic Check | Immediate Fix |
|---|---|---|---|
| Cache miss on all pages | FPC disabled or mis‑configured | bin/magento cache:status – check full_page status. | Enable via bin/magento config:set catalog/frontend/seo/enable_fpc 1 or via Admin. |
| Cache hit rate < 5% | Inconsistent backend (file vs Redis) | Inspect app/etc/env.php cache backend section. | Align backend across all nodes and clear cache. |
| Cache entries not written | Permission issues on var/cache or Redis | Check ownership: ls -ld var/cache. | Set proper ownership: chown -R www-data:www-data var/cache. |
| Uncached content despite FPC enabled | Third‑party module rendering non‑cacheable output | Review module layout updates or observers that add Cacheable flag. | Mark output as cacheable or remove problematic observer. |
| FPC bypass on specific URLs | Cache exclusion in app/etc/config.xml or custom URL rewrites | Search for cache_excluded_urls entries. | Remove or adjust exclusions. |
| FPC not serving in Varnish/Redis mode | Varnish/Redis not reachable or mis‑configured | Ping Redis: redis-cli ping; curl Varnish: curl -I http://localhost:6081. | Fix network or configuration. |
Systematic Checks
- Verify FPC Status
ssh user@magento_host cd /path/to/magento sudo -u www-data bin/magento cache:statusLook for
full_page: enabled. Ifdisabled, enable it. - Inspect Cache Backend Configuration
cat app/etc/env.php | grep -A5 'cache'Ensure
backendis set toRedis(recommended) orFileconsistently. If switching, clear existing cache first. - Check Directory Permissions
ls -ld var/cache chown -R www-data:www-data var/cache chmod -R 770 var/cacheReplace
www-datawith your web server user. - Validate Backend Connectivity
# Redis redis-cli -h 127.0.0.1 -p 6379 ping # Varnish curl -I http://127.0.0.1:6081Successful responses confirm reachability.
- Review Logs for FPC Errors
tail -n 200 var/log/system.log | grep -i 'full page cache'Look for exceptions or warnings that hint at module conflicts.
- Confirm Cache Headers
Open a cached page in Chrome, go to Dev Tools → Network → click the request → Headers. The response header
X-Magento-Cache-Statusshould readHITafter the first load.
Corrective Actions
- Enable FPC
bin/magento config:set catalog/frontend/seo/enable_fpc 1 bin/magento cache:flush - Align Cache Backend
# Example for Redis bin/magento config:set system/full_page_cache/adapter redis_server 127.0.0.1 bin/magento config:set system/full_page_cache/adapter redis_port 6379 bin/magento cache:clean full_page - Adjust Permissions
sudo chown -R www-data:www-data var/cache var/page_cache sudo chmod -R 770 var/cache var/page_cache - Resolve Module Conflicts
Identify modules that add non‑cacheable blocks. Temporarily disable them:
bin/magento module:disable Vendor_Moduleand test. If the issue resolves, either update the module or add a cacheable tag to its output. - Remove Unnecessary Exclusions
In
app/etc/config.xmlor via Admin, clearcache_excluded_urlsthat match the problematic pages. - Re‑configure Varnish/Redis
For Varnish, ensure the
magento.conf.sampleis loaded. For Redis, verifyredis.confallows the Magento user. Restart services after changes.
Escalation Criteria
If, after following the above steps, pages still show MISS or performance does not improve, consider:
- Engaging the module vendor for a patch.
- Reviewing custom code that modifies layout handles or cache tags.
- Consulting a Magento performance specialist.
- Upgrading to the latest Magento 2 release, as newer releases include FPC improvements.
Practical Verification Checklist
- Run
bin/magento cache:status– should listfull_page: enabled. - Check Redis keys:
redis-cli keys "*magento_full_page_cache_*" | wc -l– a non‑zero count indicates cache entries. - Load a page, view
X-Magento-Cache-Status: HITheader; repeat to confirm consistency. - Monitor
var/log/system.logfor no FPC errors over the last 24h.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.