« Downloading Multiple Files with Curl SimultaneouslyWget Trick to Download from Restrictive Sites »
Speed Tips: Turn On Compression
Apache 2 uses mod_deflate to quickly and easily compress your static .css and .js files before you send them to a client. This speeds up your site like crazy!
FWIW, this is how I configure Apache to set the Expires header:
##################################################### # CONFIGURE media caching # Header unset ETag FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> Header unset Last-Modified Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "public, no-transform" </FilesMatch> # #####################################################The reason I remove and disable the ETag is because supposedly some browsers will ignore your Expires header when it’s present:
The reason I remove the Last-Modified header is for the same reason:
The reason I set the Cache-Control header to ‘public’ is so the browser will cache media over HTTPS (see tip #3):
The reason I set the Cache-Control header to ‘no-transform’ is to prevent proxies from modifying my content.
–Bil
Easy Apache Speed Tips Articles
This goes in your root .htaccess file but if you have access to httpd.conf that is better.
This code uses the FilesMatch directive and the SetOutputFilter DEFLATE directive to only target files ending in .js or .css
<IfModule mod_deflate.c> <FilesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule>
« Downloading Multiple Files with Curl Simultaneously
Wget Trick to Download from Restrictive Sites »
Tags: Cache, caching, etag, expires header
The love of liberty is the love of others; the love of power is the love of ourselves.
-- William Hazlitt
Please consider donating to support active development of the free software and articles here.![]()
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. Tim Berners-Lee
Hey
Thanks for sharing the information. I am using the same technique on one of my website to get benefits of compression.
Header set Expires "Mon, 20 Apr 2012 23:30:00 GMT" Header append Cache-Control "public"
I am writing this in .htaccess file in my website root. But when I am testing my website with google page speed it gives me this message.
Compressing the following resources with gzip could reduce their transfer size by about two thirds (~53.1kB).
List of all my css and JS files, but not the images file.
So I have doubt whether it work for CSS and js or not. Because its working for my images contents.
Can any one explain.
Thanks a lot in advance.
Roy
very helpful speed tips bud… thanks
I normally add php|html to my match for zlib compression, any reason why you haven’t? Is deflate better than zlib for some reason. Also with javascript if you’ve got minified files I imagine it’s not going to help much (if at all).
Will the server in this case send uncompressed content to client if the client didn’t send deflate in HTTP_ACCEPT_ENCODING?
I don’t see any changes in the page load speed AT ALL! I used this tool (Pingdom) to test my speeds. Any thoughts?
Thanks for your attention:
My .htaccess file:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
#12 Months
Header set Cache-Control "max-age=29030400, public"
Header unset ETag
FileETag None
# 2 HOURS
Header set Cache-Control "max-age=7200, must-revalidate"
SetOutputFilter DEFLATE
I am not getting an error. It is just not working with the css and js according to yslow. I was able to set a php.ini file to gzip the php. Although, I am not sure how to do the same thing for the css/js.
I am trying to add gzip compression for a friends site which is WP. I already set up compression for php files using php.ini. However, I can’t get the js|CSS to work. Any suggestions. The site is hosted with Godaddy, apache of course.
When I added the above code, I was given an internal server error. I am not sure why? Any suggestions?
Header set Cache-Control "max-age=29030400, public" Header unset ETag FileETag None SetOutputFilter MOD_DEFLATE
If you get an 500 internal server error, means that your server don’t have mod_expire.so and mod_headers.so loaded. Edit your httpd.conf and add these lines :
LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
Cheers
My site ALSO throws an Error 500.
I can’t see a problem with the code, so something has to be set at the server to accept this, right?
My site throws up a 500 error when I do this. Any suggestions?
It's very simple - you read the protocol and write the code. -Bill Joy
HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C | TLDP | WAI | DISA | ICSI | GIAC | SANS RR | GHOST | DEFCON | NIST | DHS CYBER | NIST | Phrack | GDB | IEEE | GIT | GNU LIBC
↑ TOPExcept where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The ASF is licensed. "Apache" is a trademark of The ASF. HTTPD based on NCSA HTTPd
thanks :)
I tried it ..and works flawlessly :)