Save Bandwidth – Enable GZip Compression In PHP

Want to help support this blog? Try out Oh Dear, the best all-in-one monitoring tool for your entire website, co-founded by me (the guy that wrote this blogpost). Start with a 10-day trial, no strings attached.

We offer uptime monitoring, SSL checks, broken links checking, performance & cronjob monitoring, branded status pages & so much more. Try us out today!

Profile image of Mattias Geniar

Mattias Geniar, December 22, 2008

Follow me on Twitter as @mattiasgeniar

GZip is a formidable way to save up on bandwidth, without hindering your users. It allows any script to pass its content by the compression tool first, before being sent out. The receiver will then receive the compressed file, and unpack it to show its content.

Browsers that don’t support GZip will automatically fall back to the normal way of sending out content: unzipped.

It’s a win-win situation. You save bandwidth, and don’t bother your users. So, let’s enable it.

The easiest is way is by using a .htaccess file. Add the following line to it.

php_value output_handler ob_gzhandler

That simple line will reduce the bandwidth used by plain text files (html, css, javascript, rss, …) by as much as 80%. It doesn’t do much for images (JPG/PNG is a formidable compression on its own, and can’t be compressed much further), but it’s a saver for anything that isn’t image/video.

Since not every host allows .htaccess to overwrite certain system settings, you can also define this in your PHP pages itself, as described on the following page: Other Methods to Enable GZip Compression.

You can quickly test the result of your compression, at the following website: compression / deflate / gzip test tool.

There ‘s a (relatively) small downside to this: it requires a bit of CPU power from your webserver to compress the page, and a bit of CPU power from your visitor to decompress the page. This probably won’t be an issue, unless you have a very busy server.



Want to subscribe to the cron.weekly newsletter?

I write a weekly-ish newsletter on Linux, open source & webdevelopment called cron.weekly.

It features the latest news, guides & tutorials and new open source projects. You can sign up via email below.

No spam. Just some good, practical Linux & open source content.