[Помогите] Проблема с скоростью загрузки страницы.

Тема в разделе "OpenCart", создана пользователем five555, 26 мар 2015.

  1. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Добрый день!
    Сайт sfera.by
    Подскажите, как разобраться с проблемой.
    Google PageSpeed пишет:
    "Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение
    Количество блокирующих скриптов на странице: 7. Количество блокирующих ресурсов CSS на странице: 3. Они замедляют отображение контента.
    Все содержание верхней части страницы отображается только после загрузки указанных далее ресурсов. Попробуйте отложить загрузку этих ресурсов, загружать их асинхронно или встроить их самые важные компоненты непосредственно в код HTML."
    Помогите это сделать, пожалуйста!
     
  2. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    182
    Симпатии:
    23
    Добрый день!
    Попробуйте загружать их асинхронно.
    В файле header.tpl находите скрипты и дописывайте параметр "async". К примеру:
    <script async type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"></script>
    Пробуйте по одному, отслеживайте результаты, чтобы прибавка скорости загрузки не досталась ценой проблем с правильным отображением контента и срабатыванием скриптов на сайте.
     
  3. ГорМастер

    ГорМастер

    Регистрация:
    1 апр 2013
    Сообщения:
    115
    Симпатии:
    22
    Можно попробовать скачать эти скрипты себе на хостинг и вызывать их не со стороннего сайта, а у себя.
     
  4. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Пробую - перестают работать скрипты.
    --- Добавлено, 26 мар 2015 ---
    Они итак на хостинге кроме двух гугловских. Я вместо гугла на сайте их подключил - ещё медленнее стали страницы грузиться.
     
    Последнее редактирование: 26 мар 2015
  5. ГорМастер

    ГорМастер

    Регистрация:
    1 апр 2013
    Сообщения:
    115
    Симпатии:
    22
    Возможно, они подгружают ещё скрипты откуда-нибудь - посмотрите их код на наличие строк типа
    require("..........");
    И что говорит firebug (FireFox) или отладчик в Chrome (вкладка Network)? Там время загрузки всех элементов страницы весьма наглядно показано.
     
  6. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.155
    Симпатии:
    514
    five555, 87 из 100 норм показатель. Почему написали 7 джс и 3 цсс, их там намного больше:
    Количество блокирующих скриптов на странице: 23. Количество блокирующих ресурсов CSS на странице: 13.
     
  7. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Тогда было включено объединение и сжатие скриптов и CSS. Потом я отключил эту функцию. Скриптов и CSS стало естественно больше, но сайт стал быстрее загружаться в Pingdom Website Speed Test.
     
  8. Pelmen2

    Pelmen2

    Регистрация:
    26 янв 2015
    Сообщения:
    169
    Симпатии:
    14
    Даже чистейший сайт, гугл будет рекомендовать оптимизировать и самое оптимизированное изображение предложит ещё маленько сжать.
     
  9. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Я уже это понял. просто пытаюсь понять причину выдачи страниц в гугле в скрытых результатах. Вроде всё норм по сео. Решил разобраться с скоростью загрузки страниц. Больше ничего придумать не могу.
     
  10. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.155
    Симпатии:
    514
    five555, скорость загрузки может быть и не при чем, смотрите в сторону одинаковых тайтлов/текста на страницах, есть ли какие-то ошибки гугл вебмастерс?. Ну а вообще в сети очень много инфы про сопли гугла.
     
    five555 нравится это.
  11. ioh2007

    ioh2007

    Регистрация:
    7 окт 2013
    Сообщения:
    57
    Симпатии:
    3
    У меня была подобная проблема. Долго мучилась, спрашивала на форумах, выполняла предложенные советы. А потом мне подсказали посмотреть в торону хостеров. Я правда не сразу добилась от них результата, они мне про скрипты и оптимизацию рассказывали... Но мое упорство с расписыванием им что и как я сделала и ничего не изменилось дало свой результат. Гугл мне показывал до 4,5, а после вмешательства хостеров 0,68.
     
  12. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    Рекомендую переместить скрипты в подвал сайта, а стили объединить. Для перемещения скриптов вместе со всеми inline скриптами можете использовать вот этот код для класса response:
    PHP:
    public function output() {
        if (
    $this->output) {
            
    #start
            
    $_regex_scripts '/<script[^>]*>(.*?)<\/script>/s';
            
    $_regex_paste_position '/<\/body>/';
        
            
    preg_match_all($_regex_scripts$this->output$all_scriptsPREG_SET_ORDER);
            
    $this->output preg_replace($_regex_scripts''$this->output);
        
            
    $scripts '</body>';
            foreach (
    $all_scripts as $key => $value) {
                
    $scripts .= $value[0].PHP_EOL;
            }
            
    $this->output preg_replace($_regex_paste_position$scripts$this->output);
            
    #end
            
    if ($this->level) {
                
    $output $this->compress($this->output$this->level);
            } else {
                
    $output $this->output;
            }
            
            if (!
    headers_sent()) {
                foreach (
    $this->headers as $header) {
                    
    header($headertrue);
                }
            }
        
            echo 
    $output;
        }
    }
    Он ищет в ответе все скрипты (включая inline инклуды и функциональные, встроенные в страницу) затем вырезает их, находит окончание HTML тела и после него вставляет все то, что вырезал. Это модифицированный для вас код из моего модуля MCJ. Однако нет проверки IF DEF
     
    five555 и HPlus нравится это.
  13. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    А можно подробнее куда его прописать?
     
  14. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    Заменить функцию output к файле system/library/response.php. Рекомендую сделать бекап файла перед применением.
     
    HPlus и five555 нравится это.
  15. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    Сделал, вроде всё получилось. Есть два вопроса:
    1. "Однако нет проверки IF DEF" - это плохо или хорошо и чем чревато?
    2. Я раньше объединял CSS и скрипты с помощью модуля "Increase Page Speed", но при этом скорость загрузки сайта уменьшалась в разы (опираясь на данные Pingdom Website Speed Test). Стоит ли объединять CSS сейчас?
     
  16. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    1. Объявление стилей и скриптов IF DEF есть почти во всех шаблонах. Это проверка для браузера. Например,
    Код:
    <!--[if lt IE 7]> <style rel="stylesheet" href="catalog/view/stylesheet/internet_explorer.css" /> <![endif]-->
    С помощью таких условных комментариев можно сказать браузеру, что если браузер IE 7, то нужно загрузить стиль или скрипт. Если в таком комментарии загружается скрипт, то он будет из него вырезан и перемещен в подвал сайта вместе с остальными. Сами понимаете чем это черевато.
    2. ХЗ, попробуйте мой бесплатный модуль MCLite для сжатия стилей. Работает очень быстро, много минимизаторов, на выбор, куча настроек. MCJ от MCLite отличается лишь тем, что умеет сжимать скрипты, сжимает криво, подойдет не всем. Сразу скажу, что платный MCJ лучше не стоит покупать.

    Вот так потихоньку делаю MCJ бесплатным, только по частям т.к. деньги тоже нужны.
     
    dem03x нравится это.
  17. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    221
    Симпатии:
    147
    После этих изменений перестала работать кнопка оформления заказа. Работает только если перезагрузить страницу.
    Подскажите, есть ли решение этой проблемы?
     
  18. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    Нет, проблема может быть в чем угодно.