CmsPlugin.ru
Обзоры популярных CMS и плагинов. Рекомендации по созданию и продвижению сайтов

Как ускорить OpenCart за счёт кэширования страниц

/ Автор: / Просмотров: 4599
Adam Thompson

Adam Thompson

Директор цифровых стратегий в 10x digital / RYP Marketing, где под его контролем находятся SEO, PPC, CRO, веб-дизайн и разработка проектов. Вошел в мир интернет-маркетинга в 2003 году.

Предлагаю вашему вниманию перевод статьи Адама Томпсона про оптимизацию скорости загрузки страниц OpenCart.

opencart-caching.png

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

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

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

Благодаря открытому исходному коду OpenCart, разработчики могут "заглянуть под капот", чтобы ускорить его процессы. Один из наших клиентов, разработчик и владелец магазина Budget Neon на OpenCart, решил самостоятельно улучшить скоростные характеристики OpenCart. (Вы можете проверить скорость сайта Budget Neon, чтобы увидеть, насколько хорошо работают эти изменения.) Он поделился своими усовершенствованиями OpenCart в бесплатном и с открытым исходным кодом проекте под названием OCTurbo.

Почему важна скорость загрузки страниц

Согласно исследованию, проведенному компанией Akamai (прим. - специализируется на CDN и "облачных" сервисах) в 2009 году, интернет-пользователи ожидают загрузку страниц в течение двух секунд или меньше. Более того, то же исследование показало, что 40% пользователей уходят с сайта, как только скорость загрузки занимает больше, чем пару секунд. Данные не лгут: скорость загрузки страниц - важный фактор для успеха в электронной коммерции.

Гигант в сфере e-commerce Amazon выучил этот урок сложным путём, когда они обнаружили, что за каждые 100 миллисекунд задержки на их сайте, они теряют 1% в продажах.

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

Бесплатные и open source системы кэширования для OpenCart

OCTurbo использует два типа кэширования на стороне сервера для ускорения загрузки страниц OpenCart: PHP вызов кэширования в категориях продуктов и на уровне страниц. Весь код доступен между сайтом OCTurbo и аккаунтом Керри на Github.

Вызов кэширования в категориях продуктов

Как показано на скриншоте ниже, OpenCart отображает количество продуктов для категорий:

Категории продуктов OpenCart

Оптимизация этого кода - "хлеб" OCTurbo для оптимизации OpenCart. Лежащий в основе код, который включает подсчёт продуктов в категориях невероятно "тяжёлый". При использовании стоковой версии OpenCart доступна возможность кэширования данных на основе файлов, OCTurbo способен сократить время загрузки страницы с 1-2 секунд до менее чем 0.5 секунд.

"Из коробки" вызов метода getTotalProducts() приводит к шквалу SQL-запросов, которые будут выполняться каждый раз при загрузке страницы. OCTurbo кэширует скрипт и последующие запросы. После первоначальной загрузки страницы, которая создаёт кэш, время загрузки страницы резко сокращается. Вы можете увидеть детали и фрагменты кода здесь.

Кэширование на уровне страниц

Второе направление стратегии OCTurbo использует кэширование на уровне страниц для оптимизации скорости OpenCart по всему сайту. Код внутри главного файла index.php OpenCart срабатывает в двух местах:

Во-первых, OCTurbo вставляет код в верхней части index.php, который проверяет имеется ли актуальная закэшированная копия запрошенного URL. Если закэшированная копия существует, то она берётся с диска без необходимости выполнения строк кода OpenCart или каких-либо запросов к базе данных.

В конце index.php, OCTurbo вставляет код с условием, который запускается только когда незакэшированная страница отправлена пользователю. После отправки незакэшированной версии пользователю, её копия записывается на диск.

Достигнутые результаты

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

Чтобы получить некоторые замеры по эффективности, мы сделали три тестовых одинаковых сайтов с OpenCart на трёх хостингах, работающих на том же DigitalOcean VPS с 512mb. На каждый сайт был загружены данные Amazon AWS.

Для нивелирования масштабов, мы измерили время, требуемое лишь для загрузки только HTML-кода каждой страницы, вместе с кодом OpenCart:

Сравнение замеров скорости

Как вы видите, результаты замечательные. С небольшим количеством кода, мы смогли ”сбрить” почти целую секунду времени у загрузки страницы стоковой версии OpenCart. Этот скриншот примера теста в сервисе Pingdom, показывающий, что Budget Neon загружается быстрее, чем 98% проверенных сайтов:

Проверка скорости загрузки сайта в Pingdom

Какие сайты должны использовать кэширование?

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

Измерение результатов

Как проверить улучшило ли кэширование производительность вашего веб-сайта и на сколько? Есть несколько инструментов для этого, но наилучший подход - использование инструмента, который измеряет время загрузки страницы в секундах. (Такие инструменты, как PageSpeed Insights от Google, измеряют сайт на основе того, как много вы реализовали из предложенных ими лучших технических практик, а не фактической скорости загрузки страницы.)

Я использую Pingdom для измерения скорость веб-сайта. Вот как я рекомендую проводить тестирование скорости загрузки страницы до и после настройки кэширования:

  1. Перейти на сайт pingdom.com
  2. Провести три теста для каждого из двух ближайших мест к вашему веб-серверу.
  3. Вычислить среднюю скорость загрузки страницы в секундах.
  4. Настроить систему кэширования.
  5. Загрузите страницу один раз (чтобы сохранить страницу в кэше).
  6. Провести три теста для каждого из двух ближайших мест к вашему веб-серверу.
  7. Вычислить среднюю скорость загрузки страницы в секундах.
  8. Сравнить скорости до и после.

Другие решения по оптимизации скорости сайта

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

  • Оптимизация кода фронт-энда. Оптимизация на стороне браузера вашего сайта (минимизация JavaScript, оптимизация изображений, сокращение HTTP-запросов, использование спрайтов изображений, и т.д.), как правило, оказывает существенное влияние на увеличение скорости загрузки. Budget Neon также использует спрайты, чтобы уменьшить количество загружаемых изображений. Инструмент PageSpeed Insights Google предоставляет отличную отправную точку для оптимизации этой составляющей вашего веб-сайта для ускорения загрузки страниц.
  • Обновление сервера. Если вы используете виртуальный хостинг или работаете с медленным сервером, обновление сервера, как правило, обеспечивают значительное ускорение скорости загрузки страниц. В одном из проведённых нами тестов, переход с виртуального хостинга на VPS сократило время загрузки страниц в два раза. Я также видел значительные улучшения за счёт апгрейда VPS low-end класса на более мощный VPS или выделенный сервер.

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

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

Источник: moz.com

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Ваш комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)