Are your pages accessible via both HTTP and HTTPS?
Also, have you noticed any error in your browser’s Console tab when this happens?
The pages are only via https accessible because there is a redirect to https.
As soon as I get the issue again I’ll post the console messages.
Ok, today I had again two websites with the issue. Unfortuantelly they are important site which I had to get back running. So no further investigation is possible.
Things I saw:
When logged in (admin) I saw all content. As non logged user some pictures were missing. Also on one site the layout was a little bit disturbed. On the Browser console I got no error. After cleaning the cache, all looks good again.
The minimize option was disabled.
This happens on all my sites, which are hosted on two different servers (different webhosters).
Did you also try checking the Network tab to see if the missing images returned any sort of HTTP error code? We’ve seen a similar issue to this happen in the past however it ended up being due to mixed-content.
Today I had the issue again on two customer sites. On both I coudnt see the error, only the customer. He sent me a screenshot where the CSS was not loaded and only the html content was visible. I disabled the plugin now on both sites to prevent the customer to get angry.
Meanwhile I’ll try to reproduce it on one of my sites to better debug and do what you recommended.
Ok, now I have the problem on a site and I’ll leave it there for your analytics.
When opening https://www.spirit-plus.de/regionalgruppen/ with Chrome or IE I see the site without the CSS styles.
Looking in the console I got a lot of mixed content errors because all scripts are loaded from e.g. ‘http://www.spirit-plus.de/wp-includes/js/jquery/jquery.js?ver=1.12.4′
Looking with the firefox, the site is loaded normal and in the site source there are no http:// calls instead are there the right ones:
src=’https://www.spirit-plus.de/wp-includes/js/jquery/jquery.js?ver=1.12.4’></script>
Maybe you can have a look.
Thanks a lot.
Oh, btw. in the network console, there are no errors.
Thanks for the update. I tested your site in both Chrome and Firefox and was able to reproduce the issue in both. A couple of questions:
1. Are you using any sort of SSL plugin as others have mentioned (Really Simple SSL) for example?
2. Have you tried testing this with another caching plugin? If so, are you able to reproduce the issue?
No, I don’t use any SSL Plugin.
On another site I have been using the paid WPRocket for 2 years now. I never had any issues there. For testing 3 weeks ago I installed Cacheenabler on this site and end of last week I had the issue there. In this case the CSS was ok, but on some pages the pictures were only white.
The reason I ask is because a couple of users had a similar issue in the past and it was due to improper HTTPS redirect rules. Here is the thread: https://ww.wp.xz.cn/support/topic/enabling-cache-enabler-causes-mixed-content-over-https/page/2/
Setting the following rule in their .htaccess seem to have fixed the problem.
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=302,L]
Can you provide me with the redirect rule you have defined on your server?
Thanks, I’ll try your version.
I had this
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
The default configuration of .htaccess is
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Can these 2 lines
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=302,L]
be safely added after
RewriteRule . /index.php [L]
?
I would recommend adding them above, like this:
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=302,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress