Joomla: оптимизация быстродействия

Буду краток. Есть ресурс от гугла: developers.google.com/speed/pagespeed - он дает рекомендации по поводу того. что можно оптимизировать на вашем сайте в плане быстродействия. Кстати говоря, гугл ранжирует сайты учитывая скорость их работы, так что данную оптимизацию можно отнести к SEO-работам.

Дальше будут рассматриваться какие действия по оптимизации совершать исходя из замечаний по поводу быстродействия сайта.

Если вам советуют использовать кеш-браузера либо добавить заголовки о том, сколько хранить в кеше те или иные файлы, то следует сделать следующее:

При оптимизации на стороне клиента мы в основном фокусируемся на изображениях, css и javascript файлах, которые скачиваются каждый раз при посещении веб-страницы. Так как большинство этих файлов изменяются изредка, мы можем поручить клиенту кэшировать эти файлы. Для включения клиентского кэша, мы обновим файл .htaccess (находится в корневой директории Joomla).

Следующие директивы регламентируют, как клиент будет хранить файлы в кэше, вместо скачивания их при каждом посещении. Давайте добавим следующие строки в файл .htaccess:

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>
# NEVER CACHE
<FilesMatch "\.(html|htm|php|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

Каждая директива говорит клиенту хранить типы файлов в течении разного интервала времени. Данные директивы используют расширение Apache под названием mod_header. В качестве альтернативы вы можете использовать другое расширение - mod_expires. Для него необходимы другие директивы:

ExpiresActive On
ExpiresDefault A0

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A604800
</FilesMatch>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
ExpiresDefault A10800"
</FilesMatch>

Если вы не знаете, какое именно расширение установлено на вашем сервере, спросите у хостера.

Если вам советуют отложить синтаксический анализ javascript'а, то следует отредактировать файл /libraries/joomla/document/document.php. В нем найдите строку

 public function addScript($url, $type = "text/javascript", $defer = false, $async = false)

и поменяйте ее на

 public function addScript($url, $type = "text/javascript", $defer = true, $async = true)
Понравилось? =) Поделись с друзьями:

Обсуждение записи “Joomla: оптимизация быстродействия”

  1. pltvs (plutov.by) says:

    Спасибо. Про async и defer я писал в своем блоге: plutov.by/post/javascript_memory

  2. Евгений (sportodezhda.com) says:

    Поменял public function addScript($url, $type = «text/javascript», $defer = false, $async = false, на true , но перестала работать форма обратной связи, где-то на форуме читал про этот вариант, там пишут могут быть конфликты , если есть document write, может посоветуете как обойти????

  3. Владимир Демянович (elims.org.ua) says:

    Евгений, к сожалению ничего не могу посоветовать.

  4. Евгений (sportodezhda.com) says:

    ОК(((( Буду ковырять pwebcontact

Обсудить