1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Инфо Joomla - радикальная оптимизация скорости по PageSpeed Insights

Тема в разделе "Joomla", создана пользователем jabbaxatt, 29 сен 2015.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Модераторы: arman29, DMS, NightHunter
  1. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    896
    Симпатии:
    422
    Хочу рассмотреть оптимизацию скорости загрузки сайта на Joomla в соответствии с гугл сервисом - PageSpeed Insights

    Основные моменты требующие рассмотрения там следующие:

    1) Оптимизация изображений. Самое простое. По итогам созданной мною отдельной темы - Ищу программу для массовой оптимизации изображений остановился на Image Catalyst - https://github.com/lorents17/iCatalyst/ (хотя там есть ещё пара других интересных вариантов) Тут всё просто. Кинули папочку с сайтом на иконку, и все картинки с оптимизировались разом. Красота. Аж душа радуется.

    2) Кеширование в браузере. Тут по итогам всяческих проб и ошибок - я добавляю в локальный конфиг ngix строки
    Код:
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                        expires max;
    }
    И это похоже это оно, по крайней мере для картинок работает. Не знаю стоит ли кешировать так css и js. И можно ли\нужно так же кешировать flv ролики.

    Если статика обрабатывается не ngix а apache - то вы добавляете несколько строк в .htaccess - инструкций в сети море.

    Но в общем, тут могут быть уточнения от Вас - ибо в конфигурировании ngix и apache я нуб.

    3) Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение
    А тут начинается хардкор. Ибо мои скрипты и css в шаблоне - я могу тасовать как хочу.
    А вот 15+ скриптов и стилей Joomla и всяких плагинов выводимых замечательной строкой
    Код:
    <jdoc:include type="head" />
    уже не поддаются. И риск разных глюков с картинными галереями, слайдерами и т.д. сильно возрастает.
    Что с ними делать по уму?

    Про Wordpress - всё расписали на Хабре, а вот Joomla разобрать никто не озаботился.
    В общем - этот вопрос пока основной, по которому жду советов.

    4) Включите сжатие с помощью функций gzip или deflate
    На это я решил забить. Производительность моего сервера мне важнее небольшой экономии по трафику. Но прав ли я, или нет - не знаю. Если не прав - кинте ссылку на инструкцию, как включить\настроить.
     
    SkyViruS, igorenia и latteo нравится это.
  2. astass

    astass Постоялец

    Регистр.:
    6 июл 2011
    Сообщения:
    110
    Симпатии:
    62
    http://optimizilla.com неплохой онлайн сервис который сжимает картинки без потерь.
     
  3. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    896
    Симпатии:
    422
    По картинкам оптимальное решение найдено. А сей сервис не способен в один клик оптимизировать все 100500 картинок сайта раскиданных в 1050 разных папок с сохранением имён и структуры. А без этого - любой сервис тлен - ибо время.
     
  4. astass

    astass Постоялец

    Регистр.:
    6 июл 2011
    Сообщения:
    110
    Симпатии:
    62
    Именно по этому я сначала оптимизирую картинки, и только потом ставлю их. По поводу остальных советов от гоши по скорости можно не заморачиваться. Максимум что полезно это сжимать картинки и CSS. Если скорость в пределах 60 уже норм.
     
  5. Genk0

    Genk0

    Регистр.:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    12
    Очень много экспериментов было с оптимизацией.
    Гугл после теста кстати сам дает урезанные картинки, css, js файлы. которые можно СКАЧАТЬ и ЗАМЕНИТЬ
    В конце списка рекомендаций ест строка
    Скачать оптимизированные изображения, ресурсы JavaScript и CSS для этой страницы
    GZIP дает и прирост бала в спид тесте и иногда даже помогает отдавать быстрее страницу
    Например проверяю параллельно еще тут http://tools.pingdom.com/fpt/ хороший аналог который скажет кто подтормаживает загрузку
    В настройки сервера я не влажу из-за отсутствия знаний и иногда даже потому что у клиента самый обычный хостинг.

    Вот пример с пары сайтов файла htaccess
    <IfModule mod_deflate.c>
    #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
    AddOutputFilterByType DEFLATE text/javascript
    <IfModule mod_setenvif.c>
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    </IfModule>
    </IfModule>
    Header set Cache-Control "max-age=43200"
    # 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=604800"
    </FilesMatch>
    # NEVER CACHE
    <FilesMatch "\.(html|htm|php|cgi|pl)$">
    Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
    </FilesMatch>
    # использование кеша браузеров
    # Enable expiration control
    # Default expiration: 1 hour after request
    ExpiresDefault "access plus 1 year"
    # CSS and JS expiration: 1 week after request
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 year"

    # Image files expiration: 1 month after request
    ExpiresByType image/bmp "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/jp2 "access plus 1 month"
    ExpiresByType image/pipeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresByType image/tiff "access plus 1 month"
    ExpiresByType image/vnd.microsoft.icon "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 month"
    ExpiresByType image/ico "access plus 1 month"
    ExpiresByType image/icon "access plus 1 month"
    ExpiresByType text/ico "access plus 1 month"
    ExpiresByType application/ico "access plus 1 month"
    ExpiresByType image/vnd.wap.wbmp "access plus 1 month"
    ExpiresByType application/vnd.wap.wbxml "access plus 1 month"

    # Включаем кэш в браузерах посетителей
    <FilesMatch "\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$">
    Header set Cache-Control "max-age=2592000, must-revalidate"
    </FilesMatch>

    <IfModule mod_setenvif.c>
    BrowserMatch "MSIE" force-no-vary
    BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
    </IfModule>
    Готовилось все методом тыка мата и многА пива. Просто без знаний особенностей настройки, но это дало свои отличные результаты.
     
    sasha_tuba, Гузель и astass нравится это.
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.549
    Симпатии:
    1.433
    expires max; стоит ставить для всего потенциально статичного и пользователь и ваш сервер от этого только выиграет.
    Изменения js/css очень желательно разруливать через версионирование, например подставляя GET параметр: *.css?ver=0.01
     
  7. kolio

    kolio Постоялец

    Регистр.:
    21 фев 2012
    Сообщения:
    108
    Симпатии:
    39
    по поводу JS и CSS:

    смотрю какие JS и CSS подрубаются из компонентов и модулей
    нужно пробежать по всем компонентам сайта, чтобы собрать максимальную картину какие JS и CSS подключатся в целом

    потом беру эти JS (модулей и компонентов) и вкидываю в JS(в конце файла) шаблона. как правило шаблоны хоть какой-то но JS подрубают
    ну а если не подрубает - то просто создаю его и потом подключаю в шаблоне. а из компонентов и модулей удаляют их вставку

    аналонично с CSS. ну и CSS можно немного минимизировать
    хотя бы чтобы каждый селектор начинался с новой строки, а то вообще потом править полностью минифицированный CSS не особо удобно

    в итоге получается, что до 15 CSS и 15 JS файлов превращаются в 2 файла
    основная проблема остается только с системными JS которые касаются ядра joomla - я их не трогаю

    эффект сразу виден - сайт грузится быстрее так как запросов к серверу гораздо меньше

    ну и часто бывает такое, что общий CSS в итоге содержит повторения, так как многие ссвременные компоненты любят компилить less и в него добавляют бустрап, а он зачастую уже подрублен самой joomla. так что итоговый файл CSS потом еще и урезается от повторений
     
    jabbaxatt нравится это.
  8. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    896
    Симпатии:
    422
    Из за обновлений? или по каким - то другим причинам?
     
  9. kolio

    kolio Постоялец

    Регистр.:
    21 фев 2012
    Сообщения:
    108
    Симпатии:
    39
    Генко, у меня вопрос по поводу спойлера 2

    # использование кеша браузеров
    # Enable expiration control
    # Default expiration: 1 hour after request
    ExpiresDefault "access plus 1 year"

    насколько я понял: для всего по умолчанию ставится кеш в 1 год, но как быть с самой страницей (допустим главная)?
    я так понял она тоже закешируется и не будет тянуться ровно год?
    так как ниже идут уменьшения кеширования до 1 недели для медийных и некоторых статических файлов

    просто у тебя в спойлерах ничего не сказано про Content-Type text/html

    от части это версионность ядра joomla
    а в остальном потому, что админка тоже подргружает иногда эти файлы и зачастую все они ей не нужны
    а искать по всем компонентам админки где каждый из них подрубается - не охота

    и зачастую js и css не подрубается именно через addScript или addStylesheet, а через через вот такие хрени:
    JHtml::_('behavior.formvalidator');
    JHtml::_('formbehavior.chosen', 'select');

    в общем потом очень тяжело на модифицированный движок натягивать новые обновления
    иногда приходится сравнивать уже готовый сайт с распакованным апдейтом чтобы найти свои правки + применить их изменения
    это удобно делать в araxis merge
     
    Последнее редактирование модератором: 30 сен 2015
    jabbaxatt нравится это.
  10. Genk0

    Genk0

    Регистр.:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    12
    а я хз, гуглил все подряд, честно проблем никаких не возникало, это кэш не на серве, а в браузере, если что можно сделать ctrl+f5, и по идее если браузер видит что на странице что то радикально сменилось он сам заменяет кэш