Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Увеличиваем скорость загрузки страниц OpenCart


Recommended Posts

Учитывая, что проблема быстродействия в opencart стоит достаточно остро и подобные темы уже неоднократно поднимались на этом форуме, решил внести свою лепту.

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

Итак, что имеем на входе:

1. Вес главной страницы 2.5мб

2. Google PageSpeed Score of 76 (out of 100).

проверять тут: https://developers.google.com/speed/pagespeed/insights

3. Page Speed Grade и YSlow Grade около 60%(что сильно не оч.)

проверять тут: http://gtmetrix.com

4. В магазине 2500 товаров и штук 14 категорий.

5. Главная страница, да и все остальные грузятся долго.

Магия (step-by-step):

1. Деактивировать все неиспользуемые модули.

2. Установить Smart Optimizer

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

3. Настраиваем Cloudflare, в архиве инструкция что делать.

4. регистрируем аккаунт на cloudflare.com

Меняем NSы и врубаем CDN. В настройках CDN, включаем минификацию JS и CSS, метод кеширования- simplified. Защиту лучше отключить, если она вам не нужна.

Что получили(Та-дам):

1. Вес Главной страницы 1.4мб

2. Google PageSpeed Score of 92 (out of 100).

3. Page Speed Grade: А (91%) и YSlow Grade: C (71%)

4. Сайт летает (Даже после очистки всех кешей)

Надеюсь это вам поможет. Успехов!

  • +1 5
Надіслати
Поділитися на інших сайтах


mobily, молодец.

от себя добавлю, что один из мощных методов в комплексной терапии:

APC — ускоритель PHP. Это расширение самого PHP.

Значительно улучшает производительность.

но доступен не на всех хостингах. на выделенных серверах - без проблем.

Opencart с ним хорошо совместим. Но, правда, не имел возможности тестировать со всеми на свете модулями.

Имеет определенную несовместимость с некоторыми другими движками.

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

Надіслати
Поділитися на інших сайтах

Из своего опыта скажу, доступность серверов клоудфлейр где-то 97%, уже больше года использую эту cdn сеть для своих проектов, плюсов от их использования значительно больше чем минусов. Да и попал этот сервис в ту-ду лист не из-за минификатора, это CDN сеть, ее задача кешировать на своих серверах скрипты, картинки и стили с последующей раздачей посетителям с наиболее подходящей локации,тем самым снижая количество запросов к серверу и уменьшая потребление трафика..

Надіслати
Поділитися на інших сайтах


Из своего опыта скажу, доступность серверов клоудфлейр где-то 97%, уже больше года использую эту cdn сеть для своих проектов, плюсов от их использования значительно больше чем минусов. Да и попал этот сервис в ту-ду лист не из-за минификатора, это CDN сеть, ее задача кешировать на своих серверах скрипты, картинки и стили с последующей раздачей посетителям с наиболее подходящей локации,тем самым снижая количество запросов к серверу и уменьшая потребление трафика..

97% - это очень плохо

10 суток в году неработоспособен! Серьезные магазины позволить себе такого не могут.

  • +1 1
Надіслати
Поділитися на інших сайтах

Ни как не получается установить Smart Optimizer, подскажите, пожалуйста, люди добрый, как его установить?

Скачал, распаковал залил в корень сайта, изменил права на 777 у папки кеша и дописал в его .htaccess

<ifmodule mod_expires.c="">
  <filesmatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico)$"="">
  ExpiresActive On
  ExpiresDefault "access plus 10 years"
  </filesmatch>
</ifmodule>
<ifmodule mod_rewrite.c="">
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*\.(js|css))$ smartoptimizer/?$1

  <ifmodule mod_expires.c="">
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteRule ^(.*\.(js|css|html?|xml|txt))$ smartoptimizer/?$1
  </ifmodule>[/size][/color][/font]
[font="Arial, Verdana, sans-serif"][color="#000000"][size=3]   <ifmodule !mod_expires.c="">
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteRule ^(.*\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico))$ smartoptimizer/?$1
  </ifmodule>
</ifmodule>
<filesmatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico)$"="">
  FileETag none
</filesmatch>

Изменений ни каких нет, из чего сделал вывод, что не работает....

Змінено користувачем AE1
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

... ну что могу сказать после непродолжительного использования:

сайт лежал раз пять за все время ~ 2 мес

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

итог - снес.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Полностью согласен, google page speed, uphot.ru, http://gtmetrix.com это такие-же коммерческие структуры, которым нужно продавать свое дисковое пространство, облачные сервисы, эти цифры на их сайтах особо ничего не означают, opencart 1.5.4.1 изначально не тормоз,это мы добавляя в него кривые модули,которые писали люди не продумывая до конца как они будут друг с другом взаимодейсвовать, как модуль грузит сервер сайта или сервер базы данных, для создателя модуля главное "Мой модуль работает" остальное ваши проблеммы. Вот мой совет:

1.Установить модуль "1000 категорий аккордеон", реально удобный модуль и снижает заметно нагрузку на базу данных,сайт грузится быстрее чем со стандартными категориями.

2.Выключить подсчет товаров в категориях.

3.Убрать выпадающие категории.

4.Зайти в админку и поставить уровень сжатия на 6

5.Сжать все изображения на сервере до размера не более 50 килобайт. Если позволяет тематика сайта (но это не обязательно)

6.Убрать из футера ненужные ссылки,я выкинул все.

7.Кто рекомендует к одному товару другие советую исправить product.php (наберите в яндексе: Баг или фича "рекомендуемые товары")

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

Думаю что эти пункты ускорят загрузку вашего сайта процентов на 30...

  • +1 2
Надіслати
Поділитися на інших сайтах


  • 5 months later...

Ни как не получается установить Smart Optimizer, подскажите, пожалуйста, люди добрый, как его установить?

Скачал, распаковал залил в корень сайта, изменил права на 777 у папки кеша и дописал в его .htaccess

 

<ifmodule mod_expires.c="">
   <filesmatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico)$"="">
	  ExpiresActive On
	  ExpiresDefault "access plus 10 years"
   </filesmatch>
</ifmodule>
<ifmodule mod_rewrite.c="">
   RewriteEngine On

   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*\.(js|css))$ smartoptimizer/?$1

   <ifmodule mod_expires.c="">
	  RewriteCond %{REQUEST_FILENAME} -f
	  RewriteRule ^(.*\.(js|css|html?|xml|txt))$ smartoptimizer/?$1
   </ifmodule>[/size][/color][/font]
[font="Arial, Verdana, sans-serif"][color="#000000"][size=3]   <ifmodule !mod_expires.c="">
	  RewriteCond %{REQUEST_FILENAME} -f
	  RewriteRule ^(.*\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico))$ smartoptimizer/?$1
   </ifmodule>
</ifmodule>
<filesmatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt|ico)$"="">
   FileETag none
</filesmatch>

Изменений ни каких нет, из чего сделал вывод, что не работает....

 

 

 

У меня после дописывания ошибку 500 выдает. А если менять index.php то белая страница и // пишет. 

Надіслати
Поділитися на інших сайтах

Проставьте индексы в базе данных будет еще быстрее работать если вы конечно планируете, что кол-во товаров базе будет увеличиваться и будет увеличиваться кол-во  посетителей на сайте. А то что вы оптимизировали хорошей производительности не даст. 

Надіслати
Поділитися на інших сайтах


  • 1 month later...
4. регистрируем аккаунт на cloudflare.com

 

Есть еще ru.cloudflare.com, правда там перевод кривой. 

Спасибо за статью, действительно помогает! Размер страницы уменьшился с 1,2 до 0,9 МБ

Но все же хотелось бы достичь объема меньше 0,1 МБ. А оптимизаторы советуют делать объем страницы не более 0,03 МБ - это для продвижения по запросам в поисковиках хорошо.

 

После того, как я прописал в DNS сервера cloudflare.com, мой сайт стал не доступен - это нормально?

Буду надеятся, что скоро заработает вновь.

 

P.S. Сайт заработал. Но такое ощущение, что после установки cloudflare.com стал медленнее грузится: Google PageSpeed показывает, что скорость загрузки уменьшилась с 92 до 87 и что надо "Удалить из верхней части страницы код JavaScript и CSS, блокирующий отображение" - пока не совсем понимаю как это сделать. Может кто подскажет?

 

PingAdmin показывает скорость загрузки сайта 100-400 КБ/с из разных городов по всей России,

HostTracker показывает 10-40 КБ/c из разных городов мира, хотя мой VDS-хостер заявляет, что серверы подключены на скорости 100Мбит/сек. В чем проблема может быть не понимаю, почему скорость загрузки маленькая?

 

PingDom перестал видеть сайт вообще, видимо DNS-настройки еще не дошли до него.

 

Loadimpact показывает, что text/html занимает 1,6% объема страницы сайта и 98% времени загрузки:

5d875c3fac0ebb4aa9d6622394f3a23d4292c5a8

 

Кто может дать еще какие- то советы по увеличению скорости загрузки сайта?

Змінено користувачем BeeHit
Надіслати
Поділитися на інших сайтах


4.Зайти в админку и поставить уровень сжатия на 6

 

А почему не на 9? Кстати тест на гугл разницы не почуствовал. Может сжатие не работает у меня?

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 1 month later...
  • 2 weeks later...

 "Удалить из верхней части страницы код JavaScript и CSS, блокирующий отображение" - пока не совсем понимаю как это сделать. Может кто подскажет?

 

Кто-нибудь разобрался как это сделать?

Надіслати
Поділитися на інших сайтах


Кто-нибудь разобрался как это сделать?

Что тут понимать, ненужные скрипты отвечающие за подгрузку доп. функционала (colorbox, jquery.ui) и счетчики яндекса поместите в footer.tpl до закрывающего тега body. 

Если есть несколько каруселей товаров на главной, то сделайте подгрузку этих скриптов по условию, что если на главной грузим скрипт в противном не грузим..

Как-то так )))

Если заняться оптимизацией opencart, то можно и самому минифицировать скрипты и css вручную, и картинки загружать сразу сжатые. А еще для магазинов с более 3000 товаров, лучше не брать простой хостинг, а хотя бы самый дешевый VPS. И будет хорошо.

 

Надіслати
Поділитися на інших сайтах

Что тут понимать, ненужные скрипты отвечающие за подгрузку доп. функционала (colorbox, jquery.ui) и счетчики яндекса поместите в footer.tpl до закрывающего тега body. 

Если есть несколько каруселей товаров на главной, то сделайте подгрузку этих скриптов по условию, что если на главной грузим скрипт в противном не грузим..

Как-то так )))

Если заняться оптимизацией opencart, то можно и самому минифицировать скрипты и css вручную, и картинки загружать сразу сжатые. А еще для магазинов с более 3000 товаров, лучше не брать простой хостинг, а хотя бы самый дешевый VPS. И будет хорошо.

 

 

Спасибо за ответ. Но в footer.tpl не получается. Выходит много ошибок. Перенес в конец файла header.tpl

Надіслати
Поділитися на інших сайтах


Сайт установлен на VPS сервере Centos RAM-1200MB CPU-1700 Mhz. Установлен Apache+nginx+APC. Для ускорения отключил пересчет товаров, установил smartoptimizer, gzip сжатие nginx 9, перенес скрипты в конец файла header.tpl, удалил не используемые модули. Товаров всего около 1000шт. Скорость ответа сервера 2,3сек. Пробовал memcached, но прироста производительности не заметил. Что еще можно сделать для ускорения? Возможно ли сделать ответ 0,2сек?

Надіслати
Поділитися на інших сайтах


Сайт установлен на VPS сервере Centos RAM-1200MB CPU-1700 Mhz. Установлен Apache+nginx+APC. Для ускорения отключил пересчет товаров, установил smartoptimizer, gzip сжатие nginx 9, перенес скрипты в конец файла header.tpl, удалил не используемые модули. Товаров всего около 1000шт. Скорость ответа сервера 2,3сек. Пробовал memcached, но прироста производительности не заметил. Что еще можно сделать для ускорения? Возможно ли сделать ответ 0,2сек?

 

Вместо smartoptimizer, поставьте себе google pagespeed module  к апачу, он корректно реализует все фишки, связанные с оптимизацией отдачи статического контента. Жмет и объединяет скрипты и стили, жмет картинки. Если попотеть то можно все бекграунды  в css преобразовать в Base64. И т.д.

При этом обработка происходит не на уровне PHP, а на уровне апача. Ну и к нему в качестве проксируещей прокладки nginx неплохо смотрится.

 

Также очень неплохо вынести все скрипты и js в футер, оставив в шапке только подключение Jquery, чтобы нормально отрабатывались скрипты, встроенные в шаблоны модулей.

 

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

А для уменьшения времени генерации динамического (непосредственно содержание HTML страниц магазина) нужно копать и оптимизировать код, проверить есть ли индексы в БД, и пользоваться несколькими уровнями кеширования данных.

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.