Хостинг для интернет-магазина: что важно до запуска продаж
Магазину на хостинге приходится тяжелее, чем блогу или сайту компании. Корзина, личный кабинет и оформление заказа не кешируются целиком, каталог с фильтрами нагружает базу, а сотни карточек с фотографиями занимают место и файлы. Кроме того, магазин хранит персональные данные покупателей, поэтому выбор хостинга для интернет-магазина — это ещё и вопрос закона. Ниже — на что смотреть, если сайт работает на WooCommerce, OpenCart или PrestaShop.
CMS магазина и требования к серверу
- WooCommerce — плагин для WordPress, и наследует все его особенности: зависимость от числа плагинов, пользу объектного кеша, нагрузку от WP-Cron. Ему нужен memory_limit от 256 МБ и актуальный PHP 8.x.
- OpenCart легче по ресурсам, но чувствителен к модулям и фильтрам: плохо написанный фильтр каталога способен загрузить базу сильнее, чем сотня посетителей.
- PrestaShop требовательнее к памяти и числу PHP-процессов, особенно в админке и при импорте товаров. Проверьте, что лимит времени выполнения скриптов позволяет загрузить прайс целиком.
Для любой из платформ нужны MySQL 8 или MariaDB 10.6 и новее, расширения gd или imagick, curl, zip, intl и доступ к cron из панели — по расписанию выгружаются остатки, курсы, фиды для маркетплейсов.
Базы данных и диск
Одной базы магазину часто мало: отдельная нужна для тестовой копии, ещё одна — для блога или второго языка, если они вынесены в отдельные установки. Следите и за размером базы: таблицы заказов, логов, сессий и статистики растут годами, и их стоит периодически чистить.
Фотографии товаров — главный потребитель диска и inodes. Одна карточка с галереей превращается в десятки файлов, потому что CMS нарезает миниатюры под каждый размер темы. Выбирайте объём диска с запасом, сжимайте изображения при загрузке и проверьте лимит inodes, а не только гигабайты. Скорость диска для магазина важнее, чем для блога: фильтры, поиск и админка постоянно читают базу — об этом подробнее на странице хостинг на NVMe.
SSL, оплата и безопасность
HTTPS для магазина обязателен: без него браузеры помечают формы как небезопасные, а платёжные агрегаторы не подключают сайт. Бесплатного сертификата Let’s Encrypt для этого достаточно, но он должен продлеваться автоматически — истёкший сертификат в день акции останавливает продажи.
Данные банковских карт магазин на виртуальном хостинге хранить не должен. Оплату принимает страница или виджет платёжного сервиса, а сайт получает только уведомление о статусе. Убедитесь, что хостер не блокирует входящие запросы от платёжных систем (webhook-уведомления) и исходящие запросы к их API, а время выполнения скриптов позволяет дождаться ответа. Админку закройте сложным паролем и двухфакторной авторизацией, модули ставьте только из официальных каталогов.
Персональные данные покупателей и 152-ФЗ
Имена, телефоны, адреса и email покупателей — персональные данные. Если магазин продаёт гражданам России, по 152-ФЗ эти данные должны записываться и храниться в базах на территории РФ, а владелец магазина как оператор подаёт уведомление в Роскомнадзор и публикует политику обработки данных. Практический вывод: база магазина для российских покупателей должна находиться на сервере в России. Отфильтровать такие тарифы можно на странице хостинг в России. Уточните у хостера, где физически расположен сервер и где хранятся резервные копии: они тоже содержат персональные данные.
Бэкапы и нагрузка во время распродаж
Магазин нельзя восстанавливать из копии недельной давности: потеряются заказы. Нужны ежедневные бэкапы базы, а лучше — несколько раз в день, хранение не меньше двух недель и возможность восстановить базу отдельно от файлов. Перед крупными обновлениями делайте собственную копию.
Во время акций и сезонных распродаж посетителей становится в разы больше, и все они проходят через некешируемые корзину и оформление заказа. Подготовка заранее:
- посмотрите в панели статистику ресурсов в обычный пиковый день: если сайт уже близок к лимиту процессов, распродажу он не выдержит;
- включите страничный кеш для каталога и карточек, объектный кеш — если тариф его поддерживает;
- отключите на время акции тяжёлые фоновые задачи: импорт, генерацию фидов, массовые рассылки;
- проведите нагрузочный тест на тестовой копии и спросите хостера, можно ли временно поднять лимиты.
Когда магазину нужен VPS
Виртуального хостинга хватает небольшому магазину с несколькими сотнями товаров и умеренным трафиком. Переходить на сервер стоит, если каталог насчитывает десятки тысяч позиций, заказы идут постоянно в течение дня, нужны Redis, поисковый движок или очереди, а ошибки 503 появляются даже после оптимизации. Конфигурации под такие задачи собраны в подборке VPS для интернет-магазина.