Буду краток. Есть ресурс от гугла: 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)
Спасибо. Про async и defer я писал в своем блоге: plutov.by/post/javascript_memory
Поменял public function addScript($url, $type = «text/javascript», $defer = false, $async = false, на true , но перестала работать форма обратной связи, где-то на форуме читал про этот вариант, там пишут могут быть конфликты , если есть document write, может посоветуете как обойти????
Евгений, к сожалению ничего не могу посоветовать.
ОК(((( Буду ковырять pwebcontact