Иногда, когда сайты хостятся на shared-хостинге или работа идет только с 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, оптимизировав работу сервера и скорость загрузки страниц.
Автор: krugvs