Controlling Cache Expirations
Asked Answered
B

1

6

After running my webpage through Google Webmaster Tools' PageSpeed analyzer, it has reported to me that none of my resources are being cached. Below is the code in my .htaccess file taken directly from H5BP. Am I correct in assuming the below expirations are set correctly and something is wrong in my implementation or do I have to set explicit expirations for each file name and not broad generalizations?

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------

# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
#   www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week".

<IfModule mod_expires.c>
  ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
  ExpiresDefault                          "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
  ExpiresByType text/cache-manifest       "access plus 0 seconds"

# Your document html
  ExpiresByType text/html                 "access plus 0 seconds"

# Data
  ExpiresByType application/json          "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType text/xml                  "access plus 0 seconds"

# Feed
  ExpiresByType application/atom+xml      "access plus 1 hour"
  ExpiresByType application/rss+xml       "access plus 1 hour"

# Favicon (cannot be renamed)
  ExpiresByType image/x-icon              "access plus 1 week"

# Media: images, video, audio
  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"

# HTC files  (css3pie)
  ExpiresByType text/x-component          "access plus 1 month"

# Webfonts
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
  ExpiresByType application/x-font-ttf    "access plus 1 month"
  ExpiresByType application/x-font-woff   "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"

# CSS and JavaScript
  ExpiresByType application/javascript    "access plus 1 year"
  ExpiresByType text/css                  "access plus 1 year"

</IfModule>
Bobolink answered 25/2, 2013 at 13:7 Comment(0)
D
3

That looks good.

Either you don't have the mod_expires module installed (1 in a million don't) or some other .htaccess or httpd.conf directive is disabling these somewhere else. Please use the page speed tool to grab the actual headers sent by your files, and paste.

Dedication answered 26/2, 2013 at 11:56 Comment(2)
I am pretty sure there must be another htaccess file overriding it because I am sharing a test server with someone. I just wanted to make sure that what I had was good, though. Thank you!Bobolink
I have exactly the same .htaccess file (even including the comments. e.g. "Thanks Remy"). I too however get messages on seo analysis that browser caching isnt utilised. How can I check if a) i have mod_expires installed and b) have an override? thxGarv

© 2022 - 2024 — McMap. All rights reserved.