5 основных советов по улучшению вашего Magento TTFB

Опубликовано: 2019-01-08

Это гостевой пост Василия Николаева.

Время до первого байта (TTFB) — один из самых важных показателей скорости веб-сайта. Он указывает, сколько времени пройдет после того, как пользователь введет URL-адрес вашего магазина Magento, и время, когда он получит какой-либо ответ, даже такой маленький, как 1 байт (отсюда и название «время до первого байта»).

Время до первого байта жизненно важно как для людей (они не любят ждать), так и для роботов поисковых систем (Google ненавидит медленные веб-сайты и ранжирует их ниже ― нажмите здесь, чтобы узнать больше о первом в своем классе SEO-решении Magento 2 от МагВоркс).

Но в то же время есть убедительные доказательства от Джона Мюллера, одного из говорящих голов Google, что Google не использует TTFB для ранжирования:

Magento 2 ТТФБ | Блог MageWorx

Итак, наш совет — не слишком зацикливаться на TTFB для SEO, а вместо этого сосредоточиться на пользовательском опыте и производительности магазина.

Почему TTFB важнее, чем полная загрузка страницы (так называемое «время до последнего байта»)? Ну, потому что чем раньше вы загрузите первый байт, тем быстрее пользователи начнут читать ваш контент. Неважно, что они не могут мгновенно увидеть каждую картинку на странице. Важнее предложить пользователям чем-то заняться, пока ваш веб-сервер занят загрузкой остального контента.

Оглавление

  • 1. Поймите свои узкие места, чтобы устранить их
    • Что такое хороший TTFB?
  • 2. Перейдите на более подходящее ядро ​​базы данных
  • 3. Сопоставьте настройку сервера с вашими текущими потребностями в трафике
  • 4. Настройте лучшее решение для кэширования
  • 5. Избавьтесь от бесполезных расширений
  • Дополнительный совет: настройте параметры магазина и регистрации клиентов
  • Постоянная битва за производительность

1. Поймите свои узкие места, чтобы устранить их

Что такое хороший TTFB?

Magento 2 ТТФБ | Блог MageWorx
Google заявляет, что целью является TTFB менее 200 мс. Менее 200 мс поисковая система будет ранжировать вас выше всего. Как только вы превысите это значение, Google применит санкции к вашему сайту. 600 мс и более означают, что вы даже не можете пройти собственный тест Google TTFB.

Есть много факторов, которые будут влиять на ваш TTFB. В произвольном порядке:

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

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

Magento 2 ТТФБ | Блог MageWorx Еще один отличный инструмент диагностики — Magento 2 Profiler . С его помощью вы можете легко разбить каждый запрос страницы на более мелкие блоки, которые быстро визуализируются и анализируются.

В таблице обратите особое внимание на 2 важных значения, Time и Count. Время говорит само за себя. Это фактическая задержка между запросом пользователя и ответом сервера. Строка Cnt соответствует тому, сколько раз этот элемент был вызван до создания выходных данных.

Стоит использовать Database Profiler в сочетании с профилировщиком Magento 2 по умолчанию для анализа запросов к базе данных.

Magento 2 ТТФБ | Блог MageWorx Это первый шаг, который вам необходимо сделать: включите Magento Profiler и просмотрите страницы, на которых возникают самые большие проблемы с TTFB. Хотя вы можете использовать профилировщик по умолчанию, мы рекомендуем настроить Profiler SQL. Это бесплатно и предлагает удобный обзор количества запросов за сеанс.

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

2. Перейдите на более подходящее ядро ​​базы данных

База данных хранилища Magento 2 может легко стать самым большим узким местом в производительности, если она неэффективна, медленна или использует механизм хранения, который не является лучшим выбором для работы с Magento.

Почему это важно? Существует широкий выбор различных механизмов хранения для MySQL. Мы насчитали по крайней мере 10 поддерживаемых решений в официальной документации MySQL, и их еще больше.

Хотя вы можете использовать Magento с механизмом MyISAM MySQL по умолчанию, альтернативные механизмы баз данных, такие как механизм хранения MariaDB Ari или механизм Percona XtraDB, могут сделать ваш магазин более стабильным и (иногда) более быстрым по сравнению с настройкой по умолчанию.

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

Percona — это еще один форк MySQL, который со временем интегрировал ряд настроек производительности для ускорения запросов к базе данных. По сравнению с MyISAM работает намного быстрее с большим количеством параллельных запросов и специализируется на обработке транзакций.

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

  • избегайте MySQL по умолчанию для поиска в магазине. Установите Elasticsearch, чтобы ускорить все поисковые запросы на вашем сайте,
  • выберите механизм базы данных, который лучше всего подходит для вас.

3. Сопоставьте настройку сервера с вашими текущими потребностями в трафике

Экономить на инфраструктуре — не лучшая идея. Со временем стабильно растущий бизнес увидит больше клиентов, больше транзакций и больше заказов. Таким образом, полезно поддерживать производительность вашей установки на 80%, чтобы приспособиться к случайным всплескам использования и пешеходному трафику, вызванному событиями. Эти 20 % могут иметь большое значение для поддержания достойного уровня производительности в любых ситуациях.

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

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

  • размер магазина (количество просмотров магазина),
  • категории и артикулы в каталоге (с атрибутами и наборами атрибутов),
  • средние показатели трафика (среднее количество просмотров страниц и исторические пики),
  • транзакций в день (цифровые загрузки, платежи и подобные операции).

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

Размер хранилища базы данных зависит от вашей текущей оперативной памяти, поэтому вы должны выбрать достаточно, чтобы покрыть все текущие потребности. Также создайте подушку для производительности для некоторого передышки. Ваша цель — всегда иметь по крайней мере 20–25 % свободных ЦП и ОЗУ, чтобы справляться со случайными всплесками трафика.

4. Настройте лучшее решение для кэширования

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

Там, где жесткие диски могут последовательно считывать данные со скоростью до 200 МБ/с, а твердотельные накопители — до 3200, модули DRAM могут работать со скоростью до 20 ГБ/с. Что дает нам разницу в х10 или хотя бы на порядок.

И Redis , и Varnish — одни из самых популярных обновлений для магазинов Magento. Это рекомендуемый вариант кэширования для Magento 2. Оба решения прекрасно работают и с Magento 1.

Varnish — сложный инструмент для настройки, но если все сделано правильно, он предлагает значения TTFB через 100–200 мс. Для конфигураций полностраничного кэша TTFB будет варьироваться в пределах 250 мс.

Еще одно явное преимущество Varnish — он работает на большем количестве веб-страниц. Хотя FPC не работает для страниц с большим количеством динамического контента, Varnish предлагает более высокую производительность даже для этих сложных случаев использования.

5. Избавьтесь от бесполезных расширений

Честно говоря, отключение неиспользуемых расширений — это совет №1 для любого магазина Magento 2, но его часто упускают из виду. Каждое расширение, работающее на вашем веб-сайте, будет использовать часть ваших ресурсов. Если они плохо настроены, они также могут замедлить ваш TTFB.

Помните: сервер должен выполнить этот код, прежде чем он отправит отзыв пользователю.

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

Дополнительный совет: настройте параметры магазина и регистрации клиентов

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

Мы не рекомендуем отключать ведение журнала магазина. Это ценный инструмент, который помогает в устранении неполадок Magento. Но вместо того, чтобы позволить журналам магазина занимать серверное время, вы можете перенести их в стороннюю службу, например Papertrail.

Постоянная битва за производительность

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

И хотя мы никогда не сможем «выиграть» эту битву за производительность, наша общая цель — сделать магазины Magento лучшими в своем классе по скорости, удобству для пользователей и безопасности среди всех веб-сайтов электронной коммерции.


Об авторе

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