Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.
Всегда указываем кодировку. По умолчанию лучше выбирать utf-8.
Для SEO оптимизации, желательно, чтобы сайт был размещен только на одном домене. Если у вас несколько доменов ссылаются на один сайт, делаем редиректы на основной домен. Желательно, чтобы он начинался с www.
Сделаем это используя код 301
Большое время загрузки страницы отбирает загрузка статических ресурсов. Большинство из них никогда не меняются. Но броузер при каждом запросе проверяет не изменился ли ресурс на сервере. В ответе броузер получает код 304 — ресурс не изменился, и берет ресурс с кеша. То есть, даже если ресурс находится в кеше, броузер делает запрос. В общем это выливается в дополнительную нагрузку на сервер и в замедлении парсинга страницы.
Избавимся от этого. Для этого поставим время проверки обновления ресурса на несколько лет вперед, и отключим проверку ETag
Текствые файлы можно передавать броузеру в сжатом виде. Укажем необходимые директивы для этого.
Эти настройки подойдут большинству сайтов, которые работают с Apache, оптимизировав работу сервера и скорость загрузки страниц.
1. Кодировка
Всегда указываем кодировку. По умолчанию лучше выбирать utf-8.
AddDefaultCharset UTF-8
2. Редирект на один домен
Для SEO оптимизации, желательно, чтобы сайт был размещен только на одном домене. Если у вас несколько доменов ссылаются на один сайт, делаем редиректы на основной домен. Желательно, чтобы он начинался с www.
Сделаем это используя код 301
<IfModule mod_rewrite.c>
Options +Followsymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [OR]
RewriteCond %{HTTP_HOST} ^example2\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.example2\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</IfModule>
3. Кеширование статических ресурсов
Большое время загрузки страницы отбирает загрузка статических ресурсов. Большинство из них никогда не меняются. Но броузер при каждом запросе проверяет не изменился ли ресурс на сервере. В ответе броузер получает код 304 — ресурс не изменился, и берет ресурс с кеша. То есть, даже если ресурс находится в кеше, броузер делает запрос. В общем это выливается в дополнительную нагрузку на сервер и в замедлении парсинга страницы.
Избавимся от этого. Для этого поставим время проверки обновления ресурса на несколько лет вперед, и отключим проверку ETag
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "public"
Header set Expires "Fri, 21 Dec 2012 20:00:00 GMT" #Until the end of the world
FileETag None
</FilesMatch>
4. Сжатие текстовых файлов
Текствые файлы можно передавать броузеру в сжатом виде. Укажем необходимые директивы для этого.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
Выводы
Эти настройки подойдут большинству сайтов, которые работают с Apache, оптимизировав работу сервера и скорость загрузки страниц.