We store our images on S3 and our performance has been incredibly slow. This morning we turned on CloudFront in hopes that our performance would increase. When I analyze our performance with Google's Dev Tools or YSlow, our site is still slow. Both tools recommend I set expire times so browsers cache the images. I looked in our .htaccess file, mod_expires is turned on with the following rules:

<IfModule mod_expires.c>
 Media: images, video, audio

  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"

Why are our images not being cached by the browser?

  • 1
    What actual response headers are your server sending and what values is it setting them to? i.e. Cache-Conrol, Date, ETag, etc...... You can use a tool like Fiddler2 to help you capture that data.
    – Mike
    May 2, 2013 at 15:37
  • @Mike - I couldn't use Fiddler2 since I am on Mac but I did download Charles. This may sound crazy but the response header size was 0 bytes (the request header was 212bytes). Does this make sense?
    – hugo
    May 2, 2013 at 16:55
  • Install firebug to catch the headers response, works on mac just fine. May 3, 2013 at 19:41
  • 1
    Why are you editing an htaccess file on your server when the images are all stored on S3? May 22, 2013 at 15:34

1 Answer 1


You'll need to add the cache control headers using the S3 console as your Apache .htaccess only affects locally stored files.

Within the S3 console, go to the Properties -> Metadata section for each file you want to change Add Cache-Control, Expires & Last-Modified headers with appropriate values

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.