I know this forum is mostly for system admins and not sure if there is any coders here but still I'm sharing my findings here in hope it will help others one way or another. Some Background: I've been using centminmod for years now and initially I used to use ngx_pagespeed. But after using it for almost 7-8 months I saw many problems with it. One of the major problem was it increases overall server response time and TTFB. Also implementing CDN with pagespeed or any other custom things was not easy at all. So, after 7-8 months I thought to switch from ngx_pagespeed to redis object caching + redis server level caching + opcache along with PHP 7 & CentOS 7 (I've been using them from the beginning). Now it is very true that the percentage of breaking your website with ngx_pagespeed is very low (unless you do some insane config) but after I started using redis at nginx level I've started seeing some very weird issues. Like often time some part of my site doesn't load at all whereas the rest part loads fine. But again the speed with redis at nginx level is far better than using ngx_pagespeed. Now after seeing those wired issues I was 200% sure that it was happening due to caching (as it gets automatically fixed when I purge) but I was unable to find the reason behind it. So I dig even deeper until I find the reason. Things you should not do in your coding if you are using Redis at nginx level caching: One thing I understand after digging too much is that though redis is a super fast caching system but by default it keeps one single cache and not provide different cache for PC, Tablet and smartphones. Now this is a huge problem for some themes plugins or custom codes. In short if you are using wp_is_mobile() function in any part of your code or using mobble plugin to stuffs like: is_iphone(); is_ipad(); is_ipod(); is_android(); is_blackberry(); is_opera_mobile(); is_palm(); is_symbian(); is_windows_mobile(); is_motorola(); is_samsung(); is_samsung_tablet(); is_sony_ericsson(); is_nintendo(); then you are going to be in very big problem. Because when these pages gets hit too many times via tablet or phones, redis will cache that version only and then when the same page will be called from a PC, redis will return the cache page with those function outputs. How should you code then? If you are using redis at nginx level caching then the only option you have is to do your device specific things with the help of CSS3 media queries no matter how complicated it is. Thats the only way. Don't use php level device detection or you will be screwed. If your project must need php level device detection, then don't use redis at nginx level caching. Hope this helps one way or another.