Готовим интернет-магазин к маркетинговым нагрузкам

Мы уделяем много внимания всяким маркетинговым приёмам, фишкам, и прочим вариантам привлечения покупателей на сайт интернет-магазина, да и вообще на любой другой сайт.
У всех на слуху провальные "Чёрные пятницы", DOS атаки и прочие радости жизни, связанные с внезапным наплывом трафика на ваш интернет-проект.
Роль технического специалиста в жизни сайта
Вы должны запомнить одно непреложное правило: ЛЮБАЯ маркетинговая акция прежде всего должна быть согласована с вашим техническим директором или другим техническим специалистом, отвечающим за функционирование вашего сайта.
Расскажу вам небольшую историю из жизни.
Работая в одном очень крупном проекте в качестве технического директора, я столкнулся с одной крайне неприятной проблемой – кучей непонятно откуда взявшегося трафика. Утро понедельника встретило меня в 9 часов в виде испуганного админа, который сообщил мне об аномальном росте трафика.
Первое, что мы сделали – проанализировали этот трафик, поскольку нам необходимо было понять что это – дос-атака или что-то иное. При первом рассмотрении удалось выяснить, что трафик был хоть и грязный, но вполне себе конверсионный, что отсекло сразу же подозрения в дос-атаке. Однако мы не смогли четко выявить источник этого трафика.
К 10 часам дня наш сервер начал испытывать серьезные затруднения, потому что объем трафика превысил средние показатели почти в два раза, но все еще справлялся с нагрузкой.
Мы сделали несколько изменений в настройках и сумели повысить скорость его работы, однако к часу дня серверу значительно поплохело и мы начали терять тот самый трафик, потому что сервер периодически не мог обработать запросы. К двум часам дня сервер упал и вообще перестал отвечать на запросы клиентов. Трудность всей этой ситуации еще заключалась в том, что мы не могли связаться генеральным директором почти весь день – он не брал трубку.
В общем и целом, до конца дня мы так и не смогли восстановить нормальное функционирование сервера и схватку за трафик мы проиграли.
На следующий день меня рано утром разбудил звонок разъяренного генерального директора, который требовал отчета.
Именно этот его звонок позволил локализовать проблему и остановить ее. Оказалось, что генерального директора одна фирма красивой презентацией раскрутила на покупку "целевых" посетителей. Ему предложение понравилось и он его оплатил. Вот таким незамысловатым способом он потерял примерно 200 т.р.
Как не потерять свои деньги?
Давайте попробуем разобраться, какие же ошибки были совершены в процессе подготовки этой рекламной акции.
Первым делом, необходимо поставить в известность технический персонал проекта. Для чего это нужно
- Мы должны выяснить предельные возможности нашего сервера и инфраструктуры в целом:
a. Сколько клиентов в минуту мы способны обработать
b. Какова предельная нагрузка на базу данных
- При составлении договора на услугу привлечения трафика нам необходимо четко сформулировать график прихода этого трафика на проект в рамках выясненных предельных нагрузок в предыдущем пункте.
Итак, если мы выяснили, что наш сервер одновременно способен удовлетворить потребности 20 клиентов, то это означает лишь одно, что 21 клиент в минуту вызовет определенные затруднения у нашего сервера и его производительность ухудшится: страницы будут медленнее загружаться, часть запросов к базе может вызвать ошибку. Естественно, здесь идет некоторое утрирование, но мы должны отдавать себе отчет в том, что на каком-то посетителе инфраструктура даст сбой.
Составляя график подачи трафика от поставщика мы должны не забыть учесть свой ОРГАНИЧЕСКИЙ трафик и вычесть его из технического задания к поставщику трафика.
Таким образом, мы сможем обеспечить нормальное функционирование своего сервера и обработать весь пришедший к нам трафик надлежащим образом.
Что делать, если трафик непрогнозируемый?
Далее мы поговорим о том, каким образом можно дополнительно подготовить свой сервер к маркетинговым акциям.
Ранее мы говорили с вами о покупном трафике, который можно описать в техническом задании и который, по сути, можно регулировать и нормировать. Но что делать, когда такое строгое описание трафика невозможно, например, когда вы участвуете в «Черной пятнице», вы по сути не можете предсказать какой объем трафика получит ваш сервер и на сколько он будет велик. Это же может касаться разного рода публикаций в онлайн журналах или в оффлайн.
Именно о таких ситуациях мы сейчас и поговорим.
Итак. Любой сайт – это, прежде всего, программа, модули которой показывают разную ресурсоемкость. Совершенно очевидно, что на нашем сайте есть более и менее ресурсоемкие модули и разделы.
Обратите внимание на выделенные красным области. Прежде всего, в область нашего внимания попал поиск по сайту и фильтр товаров.
Как правило, поиск по сайту одна из самых ресурсоемких задач. Сейчас я не буду рассматривать варианты оптимизации поиска, потому что это не является задачей нашего вебинара.
Проблемы формы поиска
При планировании масштабной рекламной акции с непредсказуемым объемом трафика я рекомендую полностью отключить поиск по сайту, либо сильно его ограничить. Это позволит вам высвободить значительные ресурсы сервера. Если вы в качестве возражения приводите аргумент, что поиск очень важен на вашем сайте, то вы, во-первых, что-то делаете не так, и вам следует обратить пристальное внимание на организацию навигации на сайте, во-вторых, вопрос стоит в данном случае несколько иначе — понизить конверсию и потерять часть трафика, либо потерять весь трафик, потому что сервер упадет.
Проблема с фильтрами товаров
С поиском мы все выяснили. Давайте обратим наше внимание на фильтр товаров. Фильтры как правило делятся на очень важные и второстепенные. В нашем случае к очень важным мы можем отнести фильтр по типу белья и размеру. Фильтр же по тегам и цвету можно отнести к вспомогательным и не очень важным, так как особой погоды они не делают. Соответственно, мы можем достаточно безболезненно отказаться от фильтра по цвету и тегам и отключить их на время рекламной акции.
Почему работа с фильтрами во время рекламной акции очень важно? Для понимания этого следует понять, как работает программа. Даже если на вашем сайте есть продвинутая система кэширования, в данном случае скорее всего она не очень вам поможет. Отключение фильтров позволят нам значительно увеличить попадание запроса клиента в кэш и исключить ненужные комбинации запросов, которые сами по себе редки, но в кэш не попадают. Тем самым мы высвобождаем память, ресурсы процессора и сокращаем количество некэшированных запросов к базе.
На данном этапе мы уже значительно высвободили ресурсы нашего сервера и потенциально увеличили количество обрабатываемых пользователей за единицу времени примерно в 2-3 раза. То есть на данном этапе, мы можем обработать (условно) не 20 пользователей в минуту, а 50-60. Согласитесь, это существенное увеличение возможностей нашего сервера.
Никогда не делайте фильтры товаров мгновенными!
Никогда не делайте фильтры мгновенными. Выбор того или иного значения в фильтре не должно приводить к мгновенному перестроению выборки товаров. Это очень важно по той простой причине, что зачастую клиенту необходимо выбрать несколько параметров фильтра. Следовательно, вы сделаете несколько лишних запросов к серверу, меж тем, они будут бесполезны для клиента.
Например, если мне необходимо купить карту памяти MicroSD, то, скорее всего, я выберу тип карты, ее объем, и, возможно, предпочитаемого производителя. Соответственно, при мгновенном перестроении списка товаров вы сделаете отдельные запросы на комбинацию фильтров, что будет создавать лишнюю нагрузку.
При работе с фильтрами я бы рекомендовал выбрать стратегию Яндекс.Маркета – просто показывать прогнозируемое количество товаров при применении того или иного фильтра (см. рисунок).
Главная страница — главная проблема
Продолжая рассматривать страницы нашего сайта, нельзя не отметить главную страницу.
Особенность главной страницы такова, что она как правило содержит максимальное число возможностей сайта: витрина акций, какие-то товары (новинки), анонсы блога, новости, какие-то специальные предложения.
При планировании значительной нагрузки на сайт, а также, если ваша трафик изначально идет на главную страницу, я рекомендую в данном случае временно генерировать ее статически. Скажем по крону или вручную (зависит от того, как у вас построена работа). И отдавать клиента статический вариант страницы, изменяя ее, скажем, раз в несколько минут.
Подобное изменение позволит в разы сократить первоначальную загрузку вашего сайта и снизит нагрузку на базу данных.
В случае, если на вашем сайте есть продуманная система кэширования запросов и контента, я рекомендую примерно в два раза увеличить время хранения кэша на весь период проведения рекламной акции.
Запись вебинара
(первые 7 минут есть проблемы с звуком)
Надеюсь, что эти советы помогут вам преодолеть любую маркетинговую акцию и выйти из этого победителем!