Одним из способов, позволяющим экономить трафик посетителей сайта является включение принудительного кеширования файлов на стороне клиента. Говоря простым языком, для объектов, которые не изменяются на сайте (фоновые изображения, скрипты, CSS-файлы) можно задать время, в течении которого они будут храниться на компьютере посетителя. Таким образом, при следующем посещении его браузер уже не будет скачивать изображения с сайта, а возьмет из своего кеша.
Для этого используются директивы ExpiresActive , ExpiresDefault и ExpiresByType. Перед их применением необходимо уточнить у службы поддержки хостера поддерживается ли модуль mod_expires вашим сервером.
Теперь перейдем к редактированию файла .htaccess (он находится в корне сайта). Следующие строки можно дописать в его конце.
1. Проверяем, работает ли модуль mod_expires:
...
2. Дальнейший код вписывается вместо троеточия. Активируем установку http- заголовков
ExpiresActive On
3. Далее задаем время хранения по умолчанию и для различных типов данных
ExpiresDefault "access plus 3600 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/jpg "access plus 2592000 seconds"
ExpiresByType image/ico "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 3600 seconds"
ExpiresByType application/xhtml+xml "access plus 3600 seconds"
4. Далее настраиваем Cache-Control:
Header set Cache-Control "max-age=2592000, public"
Header set Cache-Control "max-age=604800, public"
Header set Cache-Control "max-age=216000, private"
Header set Cache-Control "max-age=3600, private, must-revalidate"
# Выключаем ETags
FileETag None
Header set Cache-Control "max-age=290304000, public#
Удаляем заголовок Last-Modified"
Header unset Last-Modified
SetOutputFilter DEFLATE
5. Так же можно использовать GZip-сжатие. актуально только для сервера Apache2. Этот код необходимо написать перед тем,которые был написан на шаге 1. Этот код будет сжимать по алгоритму gzip все файлы со следующими расширениями *.css, *.js, *.html, *.html, *.xhtml, *.php.
SetOutputFilter DEFLATE
Можно скачать готовый файл .htaccess и скопировать его в корень сайта.