Скорость загрузки сайта


Очень большая проблема появилась со скоростью загрузки сайта. Главная страница (bison-media.ru) загружается примерно за 8-9 с (хотя на предыдущей теме загружалась за 3). Я понимаю, что тут много скриптов, элементов, но сама загрузка страницы какая-то неравномерная. Причем я смотрел скорость загрузки главной страницы демо-версии темы, там тоже ок. 6с.

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

А еще очень большая проблема с меню. Наблюдается такая проблема: если перейти в любую категорию и потом быстро (через 1-2 секунды после перехода) нажать на любую ссылку в хлебных крошках или же на подкатегорию, которые под хлебными крошками, то далее переход идет совсем не на ту ссылку на которую я кликнул. Происходит это до полной загрузки горизонтального меню. Такое ощущение, что там подставляются какие-то категории, но их не видно. Я-то понимаю, что надо подождать полной загрузки сайта, чтобы перейти в другую категорию, но клиенту же этого не объяснить. Это раздражает прямо очень сильно.

Собственно опять же вопрос, можно ли как-то оптимизировать скорость загрузки, может быть, чтобы сначала грузились фалй css и js и уже потом картинки.

3 ответа
  • Владимир Сергеев
    Разработчик
    Решение
    21 марта 2018 18:24

    Здравствуйте, Иван!

    Очень большая проблема появилась со скоростью загрузки сайта.

    Мы с гуглом проблем не видим.


    По моим субъективным ощущениям, у вас сайт, не смотря на обилие скриптов и картинок, грузится довольно быстро!
    Замерил скорость через инспектор в safari – 3.30 сек.


    Я понимаю, что тут много скриптов, элементов, но сама загрузка страницы какая-то неравномерная. Причем я смотрел скорость загрузки главной страницы демо-версии темы, там тоже ок. 6с.

    Это как раз из-за оптимизации.
    Чтобы посетитель не ждал пока загрузятся все стили и скрипты и видел страницу сразу.
    Можно сделать так, чтобы сначала загружались все стили и скрипты, а уже потом отображался сайт. Тогда не будет "неравномерной" загрузки.
    Но гуглу такой вариант может понравится меньше, и он снизит количество очков. Но визуально (субъективно) сайт будет "грузиться" быстрее за счёт того, что вы будете видеть сначала белый экаран (пок стили и скрипты не загрузились) а затем уже полностью отрендеренный сайт.

    Чтобы это сделать пройдите в настройки темы и выставьте позицию css файлов в теге <head>:


    А еще очень большая проблема с меню. Наблюдается такая проблема: если перейти в любую категорию и потом быстро (через 1-2 секунды после перехода) нажать на любую ссылку в хлебных крошках или же на подкатегорию, которые под хлебными крошками, то далее переход идет совсем не на ту ссылку на которую я кликнул. Происходит это до полной загрузки горизонтального меню. Такое ощущение, что там подставляются какие-то категории, но их не видно. Я-то понимаю, что надо подождать полной загрузки сайта, чтобы перейти в другую категорию, но клиенту же этого не объяснить. Это раздражает прямо очень сильно.

    Это вам клиенты говорят, что они быстро пытаются пройти по категориям и попадают не туда или это вы сами моделируете ситуацию.


    Собственно опять же вопрос, можно ли как-то оптимизировать скорость загрузки, может быть, чтобы сначала грузились фалй css и js и уже потом картинки.

    Вдобавок к моей рекомендации выше, в файле index.html перенесите строку:

    <script src="{$wa_theme_url}script.min.js?v{$wa_theme_version}"></script>

    Внутрь тега над строкой

    </head>

    Так будут грузиться сначала css, потом главный js темы (в нём обработчик меню), потом всё остальное.


  • Иван
    Решение
    22 марта 2018 08:46
    Чтобы это сделать пройдите в настройки темы и выставьте позицию css файлов в теге <head>:

    У меня почему-то после этой манипуляции часть css кода вылезла наружу :)


    • Владимир Сергеев
      Разработчик
      Решение
      22 марта 2018 17:54

      Проверьте, чтобы у вас строка

      {include file='head.options.html'}

      шла внутри тега <head>. Т.е. шла до закрывающего тега </head>

      • Иван
        Решение
        22 марта 2018 17:58

        находится внутри этого тега

      • Иван
        Решение
        22 марта 2018 18:05

        Я понял что это такое. Это блок prostore.user_css


        {strip}
        @media (min-width: 1361px) {
            /*ширина сайдбара*/
            .sidebar_offset {
                width: 18%;
            }
                
            /*ширина контента*/
            .header_offset {
                width: 82%;
            }
        }
        input[type=search] {
            border: 1px solid rgba(0, 0, 0, 0.6) !important;
        }
        #call-back-button{
            padding:5px 20px;background:#ff8100;color:#fff;font-size:120%;
        }
        {/strip}
        • Владимир Сергеев
          Разработчик
          Решение
          22 марта 2018 18:10

          Но он в файле head.options.html должен быть обёрнут в тег <style>.

          • Иван
            Решение
            22 марта 2018 18:16

            Ладно, с этим я разобрался. У меня есть отдельная таблица со стилями, где я вношу все свои изменения. Туда все и перенес.

            Другой вопрос. Я перенес <script src="{$wa_theme_url}script.min.js?v{$wa_theme_version}"></script> внутрь тега head. (сразу после скрипта jquery. Почему-то сайт перестал видеть скрипты.

            Меню вообще не загружается. Я проверил по коду - ссылка на файл есть, но меню не отображается (ни каталог, ни верхнее).

            Консоль вот что показывает.


            • Владимир Сергеев
              Разработчик
              Решение
              22 марта 2018 18:24

              А куда именно перенесли?
              Нужно чтобы jQuery была выше подключена.

              • Иван
                Решение
                22 марта 2018 18:26

                Правильно, я так и сделал.

                Сначала библиотека jquery и следом уже строка <script src="{$wa_theme_url}script.min.js?v{$wa_theme_version}"></script>

                • Владимир Сергеев
                  Разработчик
                  Решение
                  22 марта 2018 18:44

                  Значит перенесите обратно.
                  У себя тоже смоделировал подобную ситуацию.
                  Значит скрипту чего-то не хватает. Чего именно, у меня, к сожалению, нет времени разбираться. =(

                • Владимир Сергеев
                  Разработчик
                  Решение
                  22 марта 2018 18:45

                  Если найду в чём причина, напишу.

                • Владимир Сергеев
                  Разработчик
                  Решение
                  22 марта 2018 19:13

                  Нашёл в чём проблема.
                  В этом файле содержатся скрипты, отвечающие, как раз за обработку меню.
                  Они должны "видеть" меню в документе.
                  Если подключить скрипты раньше меню, то они "споткнуться" не увидев меню.
                  Поэтому максимальная "высота", на которую можно поднять этот скрипт, это ниже строки:

                  {/if}{*$show_header*}
                • Владимир Сергеев
                  Разработчик
                  Решение
                  22 марта 2018 19:23

                  Вообще, сам факт, что скрипты "спотыкаются" об это – не хорошо.
                  Поправил скрипт для будущей версии.
                  Но при переносе скрипта наверх, особого прироста в скорости обработки меню не увидел.
                  Такая плата за автосворачивание пунктов меню (в пункт Ещё) в случае, если они не влезают в блок по ширине сайта.

  • Рафаэль
    Решение
    26 ноября 2018 09:03

    Здравствуйте, Владимир.

    Почему то мобильная версия сайта стала очень медленной.

    Очень медленные показатели на мобильной версии. Что можно предпринять?

    • Владимир Сергеев
      Разработчик
      Решение
      26 ноября 2018 17:22

      Все показатели темы остались прежними, просто Google изменил критерии оценки скорости. 
      Теперь они жёстче. Большинство других тем теперь тоже показывают меньшие показатели.

Добавить ответ
Чтобы добавить комментарий, зарегистрируйтесь или войдите
Мы получаем и обрабатываем персональные данные посетителей нашего сайта в соответствии с официальной политикой.
Если Вы продолжите использовать сайт, мы будем считать, что Вас это устраивает.
Подписывайтесь и получайте скидки!

Узнавайте первым о скидках и специальных предложениях!