О плагине "Иконка, изображение и баннер для категории"


Занялся оптимизации скорости загрузки сайта (скорость загрузки недопустимо большая, ресурсов хостинга постоянно не хватает, ... тормозит сайт).
Выяснилось, что тормозит из за плагина "Иконка, изображение и баннер для категории" https://www.webasyst.ru/store/plugin/shop/wmimagei....
Он на любой странице грузит иконки из всех подкатегорий, которые есть. Если этих подкатегорий сотни, то получается что грузит все иконки, которые есть на сайте (их сотни), а не только те, которые должны выводиться на данной странице.
У меня отключение этого плагина увеличило скорость загрузки раза в 2, количество запросов к серверу хостинга уменьшилось в 5 раз.

Так что - не советую использовать этот плагин, особенно, если у вас большое количество иконок подкатегорий.

Теперь стоит вопрос, как вывести иконки категорий не используя этот плагин ?
Не могу найти решения.
М.б. есть какое простое решение, типа недокументированый параметр в "Дополнительные параметры" категории ?

p/s/ при удалении этого плагина у меня слетает верстка главной страницы. Так что поосторожнее - отключайте сначала в настройках темы, потом в инсталлере сам плагин, Удалять совсем не рекомендую.

4 ответа
  • Владимир Сергеев
    Разработчик
    Решение
    28 сентября 2017 21:30

    По моему, это логично. Если вы включили плагин для отображения иконок в категориях, то для всех категорий нужно показать иконки.
    И если категорий очень много, вполне вероятно, что загрузка изображений может подтормаживать. Хотя там иконки 20х20px (на сколько мне не изменяет память).

    Андрей, к сожалению, недокументированных доп. параметров для вывода иконок в этой теме нет. =(
    Можете добавить свой доп. параметр.
    Откройте файл, начинающийся с top.nav...html, в зависимости от используемого режима меню, а также sidebar.shop_cats.html. Все файлы находятся в теме для Сайта.

    И найдите примерно такой код:

    {elseif $theme_settings.cat_img_menu == 'none'}	
       {if !empty($item.childs)}<i class="fa fa-bars"></i>{/if}
    {/if}

    И сразу после него добавьте код:

    {if !empty($item.params.cat_img)}
      <img src="{$item.params.cat_img}" alt="">
    {/if}

    Поздравляю! Вы только что добавили доп. параметр cat_img в код.
    Теперь добавляйте его в настройках категорий:

    cat_img=ссылка_на_изображение
    • Якубов Андрей
      28 сентября 2017 22:00

      Re: По моему, это логично. Если вы включили плагин для отображения иконок в категориях, то для всех категорий нужно показать иконки.
      - должны загружаться только те иконки, которые выводятся на данной странице, т.е. для главной страницы только иконки категорий 1-го уровня, а не все иконки, которые существуют во всех подкатегориях

      За методику обработки доп..параметров большое спасибо!
      Опробую в ближайшее время.

      • Владимир Сергеев
        Разработчик
        Решение
        28 сентября 2017 23:26
        должны загружаться только те иконки, которые выводятся на данной странице, т.е. для главной страницы только иконки категорий 1-го уровня, а не все иконки, которые существуют во всех подкатегориях

        Стоп. Мы же говорим о категориях товаров?


        Если так, то иконки для подкатегорий тоже нужно показать, когда юзер откроет подкатегорию в меню.
        А что мешает загрузить иконки только для тех категорий, которые находятся на первом уровне? А для других категорий просто не загружать изображения.

  • Якубов Андрей
    29 сентября 2017 10:30

    Да, мы говорим о иконках категорий и подкатегорий (у меня 36х36 png).

    re: Если так, то иконки для подкатегорий тоже нужно показать, когда юзер откроет подкатегорию в меню.
    Да, об этом я не подумал, что при наведении должны показываться подкатегории и иконки подчиненных подкатегорий нижнего уровня.

    re: А что мешает загрузить иконки только для тех категорий, которые находятся на первом уровне? А для других категорий просто не загружать изображения.

    Вот я об этом и говорил, - считал что не нужно загружать все иконки, всех уровней.

    Но факт, что у меня после отключения этого плагина, количество запросов к хостингу с более чем 500 сократилось до 125, соответственно скорость загрузки сайта значительно улучшилась, нагрузка на хостинг уменьшилась.

    Вывод: за "красивости" надо платить, иногда это выходит неоправдано дорого.

    Для себя решил, что иконок самого 1-го уровня будет достаточно.

  • Якубов Андрей
    29 сентября 2017 10:53

    Если кому интересно, то см. https://gtmetrix.com/compare/bPhKHQhl/s4xfnwK5

    1-ый - без иконок
    2-ой - с иконками

    Замечание: иконки, причем все иконки всех подкатегорий грузятся по 2 раза, т.к. используются в главном меню и в сайдбаре - плохо это.

    Замечание 2: PageSpeed Grade ухудшается с 69 до 29 - это очень плохо, очень - здорово влияет на ранжирование в поисковиках.

    • Михаил
      Решение
      12 октября 2017 03:26

      Так несмотря на нагрузку Вы продолжаете использовать плагин?

      Или это то самое cat_img=

  • Якубов Андрей
    12 октября 2017 11:20

    Да, пришлось оставить из за картинок-названий категорий в начале категорий. Их отсутствие негативно сказывается на поведении посетителей и в конечном итоге на "заказываемость".
    Иконки, кроме верхнего уровня, я поудалял - получился хороший эффект от этого:


    см. 1-ый (что было) и 3 (что стало) тест - очень приличные и приемлимые результаты.

    Отказываться от плагина совсем - планирую, работаю на тестовой копии сайта используя cat_img=

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

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