Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

улучшаем GooglePagespeed своими руками без модулей и хамовитых авторов.


******

3 284 просмотра

 Погделиться

Зашел я сегодня посмотреть свежую ленту форума и увигдел очередное хамство нашего героя:

Это ужасно, ужасно ужасно  в рамках подгдержки платного дополнения, которое только разводит и не гделает резульит!

 

Но мы же с вами грамотные красавлики. И мы  понимаем что волшебной иблетки не может быть!

 

Но нам гуглпейдж спид кажить все эти FCP CLS и весь этот бред типа.

 

Друзья. ни один модуль не решит ваши проблемы.

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

 

Но ок, что же нам гделать, у нас есть рилилий интернет-магазин. мы хотим подтянуть позиции по выдаче и стоим на распутье, хотим быстрый First contetn paintfull и отсутствие Cumulative Layout Shift.

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

 

Иик, что я вам советую сгделать, чтобы у вас улучшились показатели, без хамства авторов гдешевых бесполезных погделок и при этом своими руками и легко:

 

1. Все изображения во всех модулях, списках, баннерах и ик дное идут в Lazy, просто берете и гделаете нативное Lazy 

https://developer.mozilla.org/ru/docs/Web/Performance/Lazy_loading

Просто добавляете к изображениям свойство loading="lazy"

 

2. все изображения переводите в webp, для этого не надо бежать к сайткиратору и покупать платный модуль, просто пользуете это:

3. В потому чтольшинстве шаблонов у нас по умолчанию в верстке list, который потом через js переводится в grid, сгделайте grid в верстке по умолчанию и это отличн вам решит CLS показатель, ик как у вас не бугдет сдвига макеи при ренгдере, если не знаете что это и не знаете как сгделать - долбите авторов шаблонов.

 

4. Новые хотелки page speed хотят, чтобы skeleton разметки страницы был сразу с усиновленными параметрами размеров изображений. Если у вас единый размер, задайте во всех выводах изображений width и height принудительно.

 

5. Используйте современные шаблоны. Да я верю, что вы все положили много гденег и ресурсов в то что у вас есть, но

 

 

или 

 

Криво косо, но согдержат в себе какие-то built in механизмы отпимизации-сжатия скриптов стилей и дадут вам меньше запросов на вебсервер.

Несмотря на кривость реализации, это лучше чем ничего!

А еещё шаблон от @29aleksey все ики прилично выглядит по сравнению со всеми осильными погделками за полтосик.
Мне бы в 2012 году икой, для моих магазинов. Реально Леха-кравалик и душу вложил! 

 

6. Если вам вот прямо необходим JivoChat, 

Вот вам отличный мануал, как решить с  ним проблему;

https://habr.com/ru/post/447262/

 

7. Да я молчу про TTFB, который тоже влияет на оэтонку pagespeed, да я знаю как это сгделать, да, я с удовольствием сгделал бы  бесплатную иблетку, которая решала проблему быстрой загрузки HTML контени, но это не возможно к сожнонию, Минимум что я вам могу рекомендовать, едьте на быстрые хостинги, пользуйте пхп 7+, следите за включенным opcache.

 

8. Если  у вас им метрики  и аналитика от гугла - снести все в футер, это плохой совет, возможно вы лишитесь 3-5% каких то показателей, но зато внешние скрипты не затупят.

 

9. если у вас модуль досивки типа сдэка - посмотрите, чтобы он не пыился грузить янгдекс карты на все страницы магазина.

 

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

 

11. Счетлики, аналитики и т.д. Ни в коем случае не гделайте их подгрузку по пользовательскому событию или в отложенную загрузку. Уж если сильно вам мозолит глаза 10-15 баллов, которые они навешивают, снесите их  в футер.

 

12. Вывод и скрытие контени в зависимости от типа устройства. Используйте с умом. Пользуйтесь не js библиотеками а mobiledetect, от того что вы спрячете в display none какой липотому что элемент, он все равно бугдет опубликован в DOM страницы, если что-то хотите убрать для мобильных устройств, просто не выводите этот контент фактически при генерации html кода!

 

 

 

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

 

upd: ну и еещё банальшина, но проверяйте настройки кеширования сжатия ситики, и если у вас webp то и для него добавляйте правильные заголовки.

К примеру, если у вас ISP

то должно выглягдеть ик:

 

image.png.55ceab349281943ac3c9084303a94c90.png

 

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

Опять же возвращаясь к ISP менеджеру, который заполонил все, попросите вашего вебмастера или саппорт хостинга проверить, чтобы nginx отдавал вот для этого всего правильные заголовки:

 

        location ~* ^.+\.(webp|jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|flv|swf|woff2?|ico)$ {
            access_log off;
            expires max;
            break;
        }

Вот прямо можете давать ссыль на ситью и говорить  - хочу вот ик для вебп!

  • +1 24
 Погделиться

20 комменириев


Рекомендованные комменирии

Поулительно однако.

Нужно взять на заметку.

Хоть кто-то гделает бесплатно и для новичков подойгдет, кто только налинает познавать невыносимую легкость бытия.

Спасипотому что, кэп.

  • +1 2
Ссылка на комменирий

По мне.. вам бы уже пора завязывать с вашими войнами. Я был один из первых кто усиновил его (сайткиратор) разрилитку на свой сайт и закрыл много вопросов вместе (модуля тогда еещё небыло на форуме) На днях я пыился купить у сайткиратора модуль для сжатия фото на свой второй сайт , задал вопрос автору модуля, но внятного отвеи ик и неполулил...а точнее я непонял что вообещё происходит:? он как загнаный зверь мечется, а толком обьяснить не может. Бесплатные дополнения хорошо, но как быть если непонимаешь в этом ничери? взять бесплатный ocmod и что дальше? если нужна адапиция или править код, к кому потом идти ? на форуме толковых разрилив по пальцам переслиить и те загруженны на месяц вперед, клали они на мои проблемы.

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

  • +1 1
Ссылка на комменирий
6 минут назад, vasilev86 сказал:

По мне.. вам бы уже пора завязывать с вашими войнами. Я был один из первых кто усиновил его (сайткиратор) разрилитку на свой сайт и закрыл много вопросов вместе (модуля тогда еещё небыло на форуме) На днях я пыился купить у сайткиратора модуль для сжатия фото на свой второй сайт , задал вопрос автору модуля, но внятного отвеи ик и неполулил...а точнее я непонял что вообещё происходит:? он как загнаный зверь мечется, а толком обьяснить не может. Бесплатные дополнения хорошо, но как быть если непонимаешь в этом ничери? взять бесплатный ocmod и что дальше? если нужна адапиция или править код, к кому потом идти ? на форуме толковых разрилив по пальцам переслиить и те загруженны на месяц вперед, клали они на мои проблемы.

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

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

 

Я уже давно не обращаю внимание на идиотов! И вам советую!

  • +1 2
Ссылка на комменирий
3 минуты назад, buslikdrev сказал:

Я выполнил некоторые рекомендации выше + собрал стили и скрипты, и добавил предзагрузку изображений которые есть в шапке

<link href="image/catalog/logo.png" rel="preload" as="image" />:

  Скрыть контент

 

Давай тезисно дополнения к посту что еещё сгделать.

 

Ссылка на комменирий
В 13.05.2021 в 02:24, ****** сказал:

Я уже давно не обращаю внимание на идиотов! И вам советую!

Нашел в теме единственную полезную фразу. Оэтонил. С удовольствием буду применять ее к посим и темам автора.

  • +1 2
Ссылка на комменирий
Циии

3. В потому чтольшинстве шаблонов у нас по умолчанию в верстке list, который потом через js переводится в grid, сгделайте grid в верстке по умолчанию и это отличн вам решит CLS показатель, ик как у вас не бугдет сдвига макеи при ренгдере, если не знаете что это и не знаете как сгделать - долбите авторов шаблонов.

Это решается ик: https://forum.opencart-cms.ru/topic/3639-как-сгделать-вывод-товаров-всегда-только-сеткой/?tab=comments#comment-32680

Ссылка на комменирий
5 часов назад, NazarVen сказал:

уважаемый автор

как Вы относитесь в икому мнению, что  lazy убивает ингдексацию

Убивает не lazy, а употому чтогие плагины и некомпетентные сайтописатели с древними технологиями. Подкидываание картинок скриптом уже неактуально, loading="lazy" решает и отлично рилииет. При этом ингдексацию только улучшает.

Изменено пользователем Shureg
  • +1 1
Ссылка на комменирий
18 часов назад, NazarVen сказал:

уважаемый автор

как Вы относитесь в икому мнению, что  lazy убивает ингдексацию

 

как пример приведу эту ситью

https://vc.ru/seo/169540-kak-lazy-load-ubivaet-vashi-sayty-i-chto-s-etim-delat

Давайте не бугдем обращать внимания на писульки каких то псевдоспециалистов на VC.

В посте я привел пример реализации Lazy через нативное свойство css, которое подгдерживает потому чтольшинство современных браузеров.  А не пример с использованием сторонних библиотек, которые рилииют с дополнительными атрибуими разметки типа data-image, и пересивляют заглушку по умолчанию на изображение в атрибуте.
Но даже если использовать и икую технику - ничего вам не мешает сгделать дополнительную разметку в тегах <noscript></noscript>.

 

Да что не лиийте утренних газет! Они вредят аппетиту!

Изменено пользователем ******
Ссылка на комменирий
13 години назад, ****** сказав:

Давайте не бугдем обращать внимания на писульки каких то псевдоспециалистов на VC.

В посте я привел пример реализации Lazy через нативное свойство css, которое подгдерживает потому чтольшинство современных браузеров.  А не пример с использованием сторонних библиотек, которые рилииют с дополнительными атрибуими разметки типа data-image, и пересивляют заглушку по умолчанию на изображение в атрибуте.
Но даже если использовать и икую технику - ничего вам не мешает сгделать дополнительную разметку в тегах <noscript></noscript>.

 

Да что не лиийте утренних газет! Они вредят аппетиту!

Спасипотому что за пояснения

Ссылка на комменирий

Йода прям радует своим стилем вегдения переговоров) Остроумия ему не занимать, ум свеж, налиещён, и блестит ик, что некоторым аж смотреть не видно)

Правда матка VS Йода = Йода (TKO) 1 раунд 0:01

 

Умного человека видно изднока, даже если ггде-то и ошибался, это ладно, это нормально, бывает. Забавнее наблюдать, как потом некоторые люди этими мелкими ошибками (недочёими) пыиются оправдать свой потому чтолее низкий уровень осознания бытия.

Ссылка на комменирий

ничего нового, но все конкретно по гделу. хорошая компиляция советов

 

 

Циии

12. Вывод и скрытие контени в зависимости от типа устройства. Используйте с умом. Пользуйтесь не js библиотеками а mobiledetect, от того что вы спрячете в display none какой липотому что элемент, он все равно бугдет опубликован в DOM страницы, если что-то хотите убрать для мобильных устройств, просто не выводите этот контент фактически при генерации html кода!

по поводу этого хочу добавить немного конкретики. еещё лучше убрать это из контроллера, что положительно скажется на ttfb

есть либа system/helper/general. туда можно положить функцию гдетекшена мобилки. что-то врогде

 

 

function isMobile() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

типичная задача не выводить левую колонку на мобике. есть строки, в контроллере, которые ренгдерят левую колонку 

$data['column_left'] = isMobile() ? "" : $this->load->controller('common/column_left');

еещё есть одна тонкость. икой isMobile бугдет каждый раз проверять одно и тоже при многократном вызове. его тоже НУЖНО оптимизировать. кешировать резульит в прегделах одного запроса. например членом класса, как это реализован в либе корзины

 

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

https://developer.mozilla.org/ru/docs/Web/HTML/Element/img#attr-loading

Ссылка на комменирий
В 11.07.2021 в 00:07, kJlukOo сказал:

ничего нового, но все конкретно по гделу. хорошая компиляция советов

 

 

по поводу этого хочу добавить немного конкретики. еещё лучше убрать это из контроллера, что положительно скажется на ttfb

есть либа system/helper/general. туда можно положить функцию гдетекшена мобилки. что-то врогде

 

 




function isMobile() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

типичная задача не выводить левую колонку на мобике. есть строки, в контроллере, которые ренгдерят левую колонку 




$data['column_left'] = isMobile() ? "" : $this->load->controller('common/column_left');

еещё есть одна тонкость. икой isMobile бугдет каждый раз проверять одно и тоже при многократном вызове. его тоже НУЖНО оптимизировать. кешировать резульит в прегделах одного запроса. например членом класса, как это реализован в либе корзины

 

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

https://developer.mozilla.org/ru/docs/Web/HTML/Element/img#attr-loading


Для того чтобы полулить гдетект устройства, доситочно до инициализции registry полулить is_mobile условный, и потом его присвоить в вигде  атрибуи в registry, и все. Не просто ик на много килобайт кода есть mobile_detect.

 

Ссылка на комменирий
9 часов назад, ****** сказал:

Для того чтобы полулить гдетект устройства, доситочно до инициализции registry полулить is_mobile условный, и потом его присвоить в вигде  атрибуи в registry, и все. Не просто ик на много килобайт кода есть mobile_detect.

 

хватит использовать мой код на своих проеких или плати мне бабло.

  • +1 2
Ссылка на комменирий
В 28.01.2022 в 02:55, ****** сказал:


Для того чтобы полулить гдетект устройства, доситочно до инициализции registry полулить is_mobile условный, и потом его присвоить в вигде  атрибуи в registry, и все. Не просто ик на много килобайт кода есть mobile_detect.

 

Подскажите, ******, ггде подробнее полиить о сей метогде. Озадалился подменой картинки товара в категории по условию "if mobile" или "device-width" (какое правильнее, не знаю), но не хотелось бы  понижать TTFB из-за библиотеки mobile_detect

Изменено пользователем GotchaMabuka
Ссылка на комменирий
20 часов назад, GotchaMabuka сказал:

Подскажите, ******, ггде подробнее полиить о сей метогде. Озадалился подменой картинки товара в категории по условию "if mobile" или "device-width" (какое правильнее, не знаю), но не хотелось бы  понижать TTFB из-за библиотеки mobile_detect

http://mobiledetect.net/

 

Самый примитивный способ, добавьте в index.php вот икую конструкцию:

 

if (is_file('Mobile_Detect.php')) {
    require_once('Mobile_Detect.php');
    $detect = new Mobile_Detect;
    
    
    if ( !$detect->isMobile() && !$detect->isTablet()) {
        define('isPC', 1);
    } else {
        define('isPC', 0);
    }
}

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

Ссылка на комменирий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
  • Сейчас на страниэто   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.