Comment on SEO 2017 by SEO Dave.

Mobile PageSpeed Insights I see you’ve already gone the route of W3 Total Cache plugin for performance SEO (recommended plugin to use with Stallion Responsive), I guess after posting the comment as your mobile score is a respectable 84/100.

Respectable because you mostly have PageSpeed Insights Issues related to resources not under your direct control. Nothing you can do about Amazon, Facebook and other off site resources that have PageSpeed Insight issues.

Use AdSense Responsive ad code the responsive code is loaded asynchronously (which is better).

You are left with a few issues you can improve: currently no solution for the “Eliminate render-blocking JavaScript and CSS in above-the-fold content” related to the main CSS file. Only way to get rid of this is run only inline CSS, not a good solution (worse than the issue).

You have 5 Leverage browser caching issues on your site. The JS file and CSS file and the images don’t have an expiry date set.

I’ve had this issue with some sites (not all). I used to think W3 Total Cache could set all expiry dates for all resources, but I think it doesn’t work with all server setups.

These are the settings I use, they might not be best for you, different servers, basically everything listed below can be achieved by your server without using W3 Total Cache, so with some servers part of it is already done via your server settings (which are harder to manage than W3 Total Cache).

Check W3 Total Cache “Performance” >> “General Settings” : “Browser Cache: Enabled”.

W3 Total Cache “Performance” >> “Browser Cache”

I tick all options except

“Prevent caching of objects after settings change” (this option is listed 3 times, don’t tick any of them)
“Do not process 404 errors for static objects with WordPress”

Under
“General”, “CSS & JS” and “Media & Other Files”

I set:

"Expires header lifetime:" >> "31536000"
"Cache Control policy:" >> "cache with max-age ("public, max-age=EXPIRES_SECONDS")"

Under “HTML & XML”

"Expires header lifetime:" >> "43200"  (still testing the best value)
"Cache Control policy:" >> "cache with max-age ("public, max-age=EXPIRES_SECONDS")"

This should fix the css file, js file and image Leverage browser caching issue if the W3 total Cache options work with your server.

Remember when testing with the Google PageSpeed Issues Tool it caches the results, so if you check a page in the PageSpeed Insights tool, fix the issues via W3 total Cache or a via server settings and check again you might still get the same issue even though it’s fixed (you are seeing a cached result).

Easiest way to deal with this is check another webpage on your site, go to a post or a category and run the PageSpeed test on a fresh page.

Have a feeling the rest of this will loose you, so let’s hope W3 Total Cache options above works on your site.

If W3 Total Cache can’t set the expire headers it’s a server setting that because of all the different server configurations is hard to explain.

I used these options added to the main httpd.conf config file for the domains (virtualhosts) I had problems with

<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 year"
# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
# Favicon
ExpiresByType image/x-icon "access plus 1 week"
# HTML components (HTCs)
ExpiresByType text/x-component "access plus 1 month"
# HTML
ExpiresByType text/html "access plus 0 seconds"
# JavaScript
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
# Manifest files
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Media
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Web feeds
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
# Web fonts
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>

For example I didn’t need the above for this domain, but did need it for a sub-domain of this domain. Couldn’t get a CDN sub-domain to use the W3 Total Cache expire options (don’t know why, gave up and used the above), to get it working added the above rules to the sub-domains virtualhost.

You’d need to contact your host regarding the above IF you need to go this route.

David