Технический директор, Айри.рф
18,4
рейтинг
18 марта 2013 в 12:41

Разработка → Рейтинг скорости загрузки интернет-магазинов

Скорость загрузки интернет-магазинов, 2013
Скорость все же имеет значение для интернет-магазинов. Два года назад мы проводили исследование по сайтам ведущих интернет-магазинов, банков и страховых. Результаты были не очень радостные, но примерно четверть сайтов можно было отнести к «быстрым». Сейчас мы решили повторить исследование, ведь если скорость подключения основной аудитории интенет-магазинов изменилась не сильно (все то же безлимитное с ограничение полосы пропускания в районе 5-10 Мбит/с), то количество мобильных пользователей заметно выросло (по последним измерениям, сейчас каждый четвертый пользователь использует смартфон для просмотра сайта). И было интересно узнать, какие критерии маркетинговая команда ведущих интернет-магазинов считает эффективными, за сколько секунд должен открываться успешный интернет-магазин.

Как показало исследование, 85% интернет-магазинов открываются до 4 секунд, при этом 23% открываются до 2 секунд. Это гарантирует как минимальную зависимость эффективности сайта от скорости (скорость уже почти максимально высокая), так и хорошие показатели сайта для мобильных пользователей (сайт открывается достаточно быстро для них).

Методика


В течение недели для 26 интернет-магазинов из top100 проверялось время ответа со стороны сервера (без учета сетевых задержек) из 2 точек — Москва и Санкт-Петербург. А также замерялось время открытия главной страницы магазинов в браузере Google Chrome из Москвы и Санкт-Петербурга (событие onload). Измерение времени ответа сервера производилось с частотой раз в минуту, времени открытия страницы — раз в час. Все измерения проводились в течение недели, это обеспечивает точность порядка 1% для времени открытия и 0,02% для времени ответа сервера. Подключение тестирующих узлов к сети было ограничено 10 Мбит/с, то соответствовало средним показателям пользовательских компьютеров.

Для времени ожидания ответа со стороны сервера бралось не полное время соединения с сервером и загрузка ответа, а только ее часть, отвечающая непосредственно за ожидания ответа (в сетевой модели: DNS запрос — Соединение с сервером — Проверка SSL — Ожидание ответа — Загрузка ответа), уменьшенная на время пинга (почти всегда — это время Соединения с сервером), что давало именно серверные затраты на обслуживания запроса, а не реальное время соединения с ним из какой-либо географической точки.

По результатам измерений получилась следующие результаты и итоговая таблица (магазины отсортированы по среднему времени открытия сайта).

Распределение интернет-магазинов по времени открытия (в секундах)


Время открытия сайтов интернет-магазинов, 2013

Распределение интернет-магазинов по времени открытия (в секундах)


Время открытия сайтов интернет-магазинов, 2013

Итоговая таблица


Магазин Время ответа сервера (мс) Время загрузки сайта (с)
club-sale.ru 30 0,77
exist.ru 22 1,57
www.komus.ru 233 1,69
www.ozon.ru 94 1,79
www.wildberries.ru 9 1,8
www.eldorado.ru 18 1,99
www.mvideo.ru 197 2,03
www.aromat.ru 57 2,06
www.utkonos.ru 210 2,4
www.planetashop.ru 464 2,78
www.kupivip.ru 14 2,88
www.ulmart.ru 275 2,9
www.citilink.ru 221 2,91
www.pleer.ru 85 3,08
vasko.ru 1444 3,1
utinet.ru 516 3,11
holodilnik.ru 535 3,37
www.svyaznoy.ru 9 3,63
www.softkey.ru 568 3,84
www.otto.ru 23 3,92
www.vseinstrumenti.ru 490 3,94
www.digital.ru 295 3,98
www.mtonline.ru 1250 4,59
www.dostavka.ru 135 5,57
www.sotmarket.ru 191 6,52
www.boutique.ru 225 10,21

Выводы


  1. Если вы разрабатываете успешный интернет-магазин (или развиваете с целью таковой создать), то основной критерий по времени открытия сайта — не более 4 секунд. Иначе более успешные конкуренты вас обойдут. При этом если два года назад распределение было скорее нормальное (было равное количество и быстрых и медленных)
    Время открытия сайта интернет-магазина, 2011 год
    то сейчас выделить какое-то «средне-хорошее» значение нельзя, 2 до 4 секунд времени открытия сайта тестируемые магазины распределены почти равномерно, с некоторыми «уплотнениями» в районе 3 секунд и 4 секунд.
  2. Не все интернет-магазины в топе предназначены для высокой посещаемости (время ответа сервера более 200мс), часть из них однозначно испытывает проблемы при наплыве пользователей. Чтобы заранее избежать таких проблем можно использовать инструменты нагрузочного тестирования, например, Load Impact, хорошие результаты бесплатного теста до 50 пользователей гарантируют стабильную работу сайта до 10 000 пользователей в день (при среднем времени посещения не более 3 минут).
  3. Выделить какую-нибудь закономерность скорости сайта от оборота магазина не удается. Это только подтверждает основную гипотезу: если у вас сайт быстрый (загружается до 4 секунд), то все с продажами будет хорошо.


Дополнительная информация


Среди наиболее острых проблем производительности интернет-магазинов можно выделить следующие:
  1. Большое количество и размер изображений. Изображения составляют сейчас от 50% до 80% объема веб-страниц. В среднем, все изображения можно оптимизировать без потери качества на 10-15%.
  2. Большое количество различных доменов, используемых для загрузки объектов. Обычно это 2-4 основных домена сайта + 1-5 сторонних доменов (статистика, реклама). При увеличенной скорости канала каждый DNS-запрос обходится еще дороже, относительное время на DNS-запросы при загрузке сайта составляет уже 5-20%.
  3. Использование сторонних виджетов. Частично проблема у интернет-магазинов решена выносом загрузки всего, что не относится напрямую к содержанию сайта, за событие onload (так называемая отложенная загрузка объектов), но для большинства магазинов (в частности, именно поэтому boutique.ru в конце рейтинга) стороннее содержание (объекты) существенно замедляют скорость сайта. Время, уходящее на сторонние виджеты, может составлять до 50% от общего времени загрузки сайта.

Если сравнивать с западными параметрами качества, то там давно фигурирует цифра «до 2 секунд», и российские интернет-магазины успешно идут к этому показателю.
Николай Мациевский @sunnybear
карма
329,0
рейтинг 18,4
Технический директор, Айри.рф
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (37)

  • +6
    Странный способ измерения времени ответа сервера, ведь все очень сильно зависит от вашего провайдера, а кто использовался для тестов не указано. Например значения до 10мс означают, что, скорее всего, этот сайт подключен напрямую к вашему провайдеру, соответственно это значение для пользователей другого провайдера может кардинально отличаться. Тоже можно сказать и про сверх высокие значения ping, это может быть не только проблемой сайта, но и проблемой связи между провайдерами.

    Думаю, более верным подходом было бы измерение скорости загрузки при подключении к разным провайдерам, и сравнение усредненной статистики.
    • –5
      Время ответа сервера не зависит от провайдера, оно зависит только от сервера. Мы исключили сетевые издержки и DNS-запросы.
      • +1
        А можно тогда подробнее как это делалось? В методике это не описано.
        • 0
          да, спасибо, добавил в методику
  • 0
    А также замерялось время открытия главной страницы магазинов в браузере Google Chrome…

    Это время наступления события load?
    • 0
      да, добавил в статью
      • +1
        Значение этой метрики довольно размыто. Страница может полностью отрисоваться, пользователь начать с ней полноценно взаимодействовать, но отвалившийся скрипт или префетчинг ресурсов «оттягивают» наступление этого события. Другими словами, в большинстве случаев (по моему опыту) эта метрика никак не коррелирует с пользовательским счастьем и влияет только на индикаторы загрузки в браузере.
        • 0
          для обычных пользователей индикатор загрузки в браузере говорит о готовности сайта к взаимодействию. Чем раньше для пользователя «все ок», тем лучше для удобства использования (usability). Большинство исследований (как российских, так и западных) завязаны именно на эту метрику. И для большинства сайтов именно она характеризует «готовность к взаимодействию». Поэтому мы смотрим на пересечение большинства с большинством, а не рассматриваем пограничные случаи, которые, например, по вашему опыту, могут иметь место.
          • +1
            Откровенно говоря, я тоже был в этом уверен до недавнего времени :)

            Мы (в Яндексе) проводили исследование на эту тему и наши результаты показывают, что время onload никак не влияет на пользовательские метрики (время до первого клика, доля некликнутых и т.д.). Это было обычное a/b/c тестирование, с оттягиванием onload на одну и две секунды, с объёмом выборки 2% на пользователях Поиска.

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

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

            Всё, я выдохнул, простите :)
  • +2
    Рейтинг скорости на основе 26 интернет магазинов?
    Да в прошлый раз вы сайтов банков больше нашли.
    Вот вам 1000 магазинов — прогоните своё исследование по ним.
    yaca.yandex.ru/yca?text=%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82+%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD&yaca=1
  • +2
    Вы что издеваетесь чтоли? Зачем в диаграмме использованы цвета которые невозможно отличить?
  • +3
    Открыл десяток первых магазинов из списка, посмотрел через Firebug. В большинстве случаев — все плохо.
    80-120 запросов к серверу, штук 20 разных js (и не только внешних), куча мелких css-картинок, куча изображений товаров, которые пользователю даже не видно при просмотре страницы, и прочий бардак.
    Т.е. по скромным оценкам большинство «победителей» можно спокойно разогнать еще процентов на 20-50 только за счет клиентской оптимизации.
  • +1
    А почему выбрана для теста «Главная страница»? Разве она может что-то сказать о скорости работы интернет-магазина?

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

    Главную страницу в большинстве случаев можно закэшировать на 50-80%, оптимизировать скрипты, как сказано выше и выплевывать её за доли секунды.
    • 0
      любую страницу можно (кроме корзины и обработки заказа) можно закэшировать, оптимизировать и выплевывать за доли секунды. Карточки товара и категории в этом смысле ничем от главной не отличаются. Но по главной можно обо многом сказать.
      • 0
        Не правда! Карточки товара и категории кэшировать в ряде случаев намного сложнее.
        На главной обычно имеется товар, который точно в наличии, часто без цены.
        На карточках и в категориях чаще встречается товар, при выборке которого нужно учитывать наличие — целиком страницу уже не закэшировать.
        Так же в категориях и карточка для разных регионов — разные цены. В этом случае нельзя кэшировать даже по частям.
        В больших много-регионных магазинах часть данных с неглавных страниц отдается онлайн, часть кэшируется, но не тупо кусками, а мелкой нарезкой так сказать.
        • 0
          Кэширование региональных версий не является пробемой
          • 0
            А кто говорил, что это проблема?
            Просто это несколько сложнее, чем просто главная страница
            • 0
              Главная страница обычно от региона тоже зависит, сложность одинаковая. Но если на сайте выводятся разные цены для разных пользователей — тогда да, нужно хитрить с системой кэширования. Но этот случай покрывает где-то 0,1-0,2% магазинов. Я соглашусь, что в ряде случаев кэшировать сложнее. Но этот ряд случаев крайне малочастотен.
          • 0
            Не знаю, как у кого, но я не вижу особого смысла кэшировать страницы кроме главной.
            К примеру, вчера сайт отдал 111 тысяч страниц.
            Из них — 40845 разных.
            Страниц, запрошенных более 100 раз за день всего 36.

            С другой стороны, ежедневно меняются цены и наличие для примерно 20000 товаров.

            Вот и какой смысл кэшировать?
            Наверно, посещаемость будет 10M страниц в день, я буду думать по другому, но сколько таких eCommerce проектов в мире — 200?
            • 0
              Вопрос сформулирован некорректно. Нужно: сколько раз при кэшировании всего сайта страницы будут отдаваться из кэша (т.е. сколько динамических запросов мы сэкономим таким образом). По нашему опыту — это снижение нагрузки в 3-5 раз. В некоторых случаях — в десятки раз.
              • 0
                Ваша формулировка вопроса теоретически верна, но она вступает в силу только когда требуется масштабирование и autoscaling
                При вычислительной мощности 100+ страниц в секунду и реальной нагрузке 3 страницы в секунду мы наоборот сидим и думаем — чем бы ещё пригрузить сервер, чтобы сделать лишний заказ в день?
                • 0
                  В вашем случае вы переплачиваете за хостинговую площадку примерно втрое.
  • 0
    Сомнительное исследование, ведь в перечне сайтов есть как практически текстовые сайты (например, club-sale.ru), не содержащие сложных выборок и презентации перечня продуктов, так и содержащие выборку (например, dostavka.ru).
  • 0
    Так и о чем говорит цифра 10 секунд для Boutique.ru? Livechat там достаточно долго грузится, но он абсолютно не мешает пользоваться сайтом до своей загрузки.

    Опять же, главные у всех разные, к кому-то вы попали на кэш, к кому-то нет, не вижу особого смысла сравнивать эти цифры.
    • 0
      В течение недели постоянно раз в минуту попадать на кэш? Брался средний показатель, было несколько сотен или тысяч замеров из разных географических точек.
      • 0
        Кэш может быть и cookie-based, если уж на то пошло.

        Открыл club-sale, а там пипец, одна гигантская картинка фоновая (http://club-sale.ru/_img/theme/theme13_intro_top.jpg?2) у меня грузилась 1.14 сек. CSS-ка красота — club-sale.ru/_css/style.min.css?1363330215 — 2.65 сек грузилась. %))
        • 0
          «onload: 9.16 s, DOMContentLoaded: 6.11 s» — вот вам и 0.77 сек.

          Как говорится, сколько людей, столько и интернетов. :)
          • 0
            Может хаброэффект?
            • 0
              Может быть, конечно. Хотя Boutique.ru: onload: 5.64 s, DOMContentLoaded: 2.39 s.
  • 0
    1. Данные выглядят субъективными:
    У меня boutique ~1с, sotmarket.ru — 1.5с, что не соотвтествует данным результам.

    На самом деле писать такие тесты можно только для себя. Чтобы увидеть реальную картину лучше использовать данные от реальных пользователей. К сожалению, google analytics не раскрывает таких данных о чужих сайтах, но есть и другие варианты.
    К примеру, Alexa.com — плагин, который стоит у многих пользователей и репортит время загрузки. По её данным, у пользователей sotmarket.ru открывается в среднем за 1.163 с, boutique.ru — 1.634 Seconds, что вполне неплохо. А вот Komus.ru, занявший 3е место — 1.238 Seconds?

    2. Мы для abo.ua добились отдачи страниц с скоростью порядка 100mbps (1 сервер), что в десятки раз превышает текущие потребности. По мнению алексы, пользователи получают страницу в течении 0.565 Seconds.

    Если вы хотите сделать быстрый магазин — актуальнее тестировать не закэшированную домашнюю страницу, либо простую страницу товара, а рандомную выборку товаров, которая бы показала силу «движка». К примеру, телевизоры с ценой до random().
    И тогда результаты будут совсем другими. Чтобы это тестировать мы делаем специальную «рандомную» страницу, которая каждый раз ищет разные данные и тестируем на скорость.

    И я не сказал бы, что добиться высокой скорости работы сложно, особенно, что касается времени загрузки в браузере. Достаточно воспользоваться google pagespeed insights.
    Если вдруг кому интересно как мы оптимизировали serverside — основные советы собраны в этой презентации socialtalents.com/page/100mbps (правда, на английском)

    Ну и вообще, нужно оценивать степень параллелизма — каким образом меняется скорость работы с увеличением количества клиентов. К примеру, у нас начинаеся снижение производительности после 80 параллельных юзеров в секунду, и это уже проблема, которая заставляет задуматься…
  • 0
    Помню надо было ждать загрузки страницы секунд 30, а то и больше было нормальным под диалапом. А сейчас уже 3 секунды кажется долго.
    • 0
      Так и есть.
      И хотя среднюю скорость загрузки уложить в 2-3 секнуды не так уж сложно, добиться этого от первой загрузки хотя бы для 90% клинетов довольно сложно.
      • 0
        Айри.рф решает почти все сложности с "90% до 3 секунд"
        • 0
          Чем ваше решение отличается от nginx cache, gzip, pool. php-fpm pool, memcached. cdn?
          • 0
            Если вы это можете сделать за 750 рублей и 5 минут времени, то ничем. Особенно CDN по России.
            Правда, там еще куча технологий сверху навернуто — типа 100% доступности сайта — но это уже как бонус пойдет :)
            • 0
              Что будет стоить повесить один домен, тестовый период может какой есть?
              • 0
                да, тестовый период несколько дней — бесплатно автоматически. Больше — по запросу с обоснованием эффективности.

                Для интеграции нужно только NS-серверы перенести. В редких случаях дополнительные правила для сложных URL добавить (с этим помогаем).

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