Vercel, Netlify или Cloudflare Pages: что выбрать
Практика3 минРедакция Innovialabs
Коротко
Для Next.js с серверными функциями проще всего Vercel, для статических сайтов и Astro удобен Netlify, а при большом трафике и чувствительности к стоимости выгоднее Cloudflare, который не берёт плату за трафик статики. Окончательно решает ваш фреймворк и профиль нагрузки.
Короткий ответ
- Vercel — если сайт на Next.js и вы используете его серверные возможности: рендеринг на сервере, ISR, server actions, middleware. Новые функции Next.js здесь появляются первыми.
- Netlify — если сайт статический или на Astro, Hugo, Eleventy и вам нужны встроенные удобства вроде обработки форм.
- Cloudflare Pages — если много трафика, важна предсказуемая цена и домен уже обслуживается Cloudflare. Cloudflare сейчас развивает Workers со статическими ресурсами как основной путь для новых проектов, но Pages продолжает работать.
Все три платформы раздают статику через глобальный CDN, подключаются к Git и создают preview-деплои для веток. Различия — в серверной части, ценах и ограничениях.
Сравнение по ключевым параметрам
| Параметр | Vercel | Netlify | Cloudflare Pages |
|---|---|---|---|
| Next.js | Полная поддержка «из коробки» | Через адаптер, большинство функций | Через адаптер OpenNext, нужно тестировать |
| Другие фреймворки | Широкая поддержка | Широкая поддержка, сильна в статике | Широкая поддержка через адаптеры |
| Serverless-функции | Node.js и другие языки | Node.js, Go | Среда Workers, совместимость с Node.js частичная |
| Edge | Middleware и edge-функции | Edge Functions на Deno | Весь код выполняется на edge |
| Бесплатный план | Только некоммерческие проекты | Есть, с ограничениями по ресурсам | Статика без платы за трафик, лимиты на сборки и запросы функций |
| Оплата при росте | Места в команде + потребление | Модель на основе кредитов и потребления | Потребление Workers, без платы за исходящий трафик |
Конкретные лимиты и цены все три платформы регулярно меняют, поэтому сверяйте их на страницах тарифов перед решением.
Бесплатные планы: на что смотреть
- Условия использования. Hobby у Vercel прямо запрещает коммерческое использование. Сайт компании там держать нельзя.
- Что происходит при превышении. Где-то проект приостанавливается до следующего периода, где-то начинаются списания. Узнайте это заранее.
- Количество одновременных сборок и минуты сборки. Для команды, которая часто пушит, это заканчивается быстрее трафика.
Скорость сборки
Скорость сборки зависит в первую очередь от проекта: числа страниц, тяжести зависимостей, кэша сборки и того, сколько статических страниц генерируется заранее. Честных универсальных рейтингов здесь нет. Самый надёжный способ — подключить один и тот же репозиторий ко всем трём платформам (это бесплатно) и сравнить время сборки на своём коде.
Serverless и edge: главная разница
- Vercel и Netlify запускают функции в привычной среде Node.js. Подходят любые npm-пакеты, драйверы баз данных, работа с файлами.
- Cloudflare выполняет код в среде Workers на базе V8-изолятов. Холодный старт практически незаметен, но поддерживаются не все API Node.js. Некоторые библиотеки придётся заменить.
Для всех трёх платформ функции — это короткие задачи. Долгие фоновые процессы, очереди и постоянные соединения лучше держать на отдельном сервере или в контейнере.
Стоимость при росте
На больших объёмах счёт складывается из:
- исходящего трафика — особенно если сайт раздаёт много изображений и видео;
- вызовов и времени работы функций;
- минут сборки и числа участников команды;
- оптимизации изображений, которая у некоторых платформ тарифицируется отдельно.
Если сайт тяжёлый по медиа и посещаемый, модель Cloudflare без платы за трафик статики обычно даёт самый предсказуемый счёт. Если основная нагрузка — серверный рендеринг Next.js, удобство Vercel может окупить разницу в цене.
Частые ошибки при выборе
- Выбирать по бесплатному плану, не проверив его условия для коммерческих проектов.
- Глубоко завязаться на уникальные функции платформы (её хранилища, конфигурации, edge-API) и потом не суметь переехать.
- Не включить лимиты расходов и уведомления о потреблении.
- Ставить функции далеко от базы данных: запрос к БД через полмира съест весь выигрыш от edge.