Here’s a comparison of the most popular static website hosting services.
With static hosting I mean hosting of static HTML pages and their linked resources (CSS, JS, images, etc.).
Other than serving the static content with a global CDN, these services usually also take care of things like CI/CD builds, atomic deployments, instant cache invalidation and preview deployments, which often aren’t easy to achieve (or not achievable at all) with simpler DIY storage+CDN solutions.
Below, the feature “rewrite” usually includes the ability to have a navigation fallback for single-page applications, and custom error pages.
Server-side rendering or server functions were not considered in this comparison.
Netlify
- ⚠️ CDN: only 6 locations on free/Pro plans, 70+ locations with very expensive High Performance Edge (enterprise plan)
- Bandwidth: 100 GB on the free plan (then $550 / TB), 1 TB on the Pro plan (then $550 / TB)
- ✅ Automatic hosted builds (CI/CD)
- ✅ GitHub commit checks
- ❌ No GitHub environments/deployments support
- ✅ Rollbacks
- ✅ Atomic deployments
- ✅ Instant cache invalidation
- ✅ Custom domain with HTTPS certificate and redirect
- ✅ Branch/PR preview environments, also on custom domain
- ✅ Rewrites/redirects/proxy
- ✅ Custom response headers
- ✅ DDoS/flood protection
- ✅ HTTP/2
- ❌ No HTTP/3
- ✅ IPv6
Vercel
- ✅ CDN: 100+ PoPs (all plans)
- Bandwidth: 100 GB on the free plan, 1 TB on the Pro plan (then $150+ / TB)
- ✅ Automatic hosted builds (CI/CD)
- ✅ GitHub commit checks, environments/deployments
- ✅ Rollbacks
- ❓ Probably atomic deployments
- ✅ Instant cache invalidation
- ✅ Custom domain with HTTPS certificate and redirect
- ✅ Branch/PR preview environments, also on custom domain
- ✅ Rewrites/redirects/proxy
- ✅ Custom response headers
- ✅ DDoS/flood protection
- ✅ HTTP/2
- ❌ No HTTP/3
- ❌ No IPv6
Cloudflare Pages
- ✅ CDN: full Cloudflare network on all plans (330 cities)
- Bandwidth: unlimited
- ✅ Automatic hosted builds (CI/CD)
- ✅ GitHub commit checks
- ❌ No GitHub environments/deployments support
- ✅ Rollbacks
- ❓ Probably atomic deployments
- ✅ Instant cache invalidation
- ✅ Custom domain with HTTPS certificate and redirect
- ⚠️ Custom domain requires Cloudflare NS
- ✅ Branch/PR preview deployments
- ❌ Preview deployments on custom domain must be configured manually
- ✅ Rewrites/redirects
- ❌ No proxied paths
- ✅ Custom response headers
- ✅ DDoS/flood protection
- ✅ HTTP/2
- ✅ HTTP/3
- ✅ IPv6
Test your email setup for free on DMARCwise, then start monitoring SPF, DKIM and DMARC with a powerful dashboard, weekly email digests and more to ensure your emails land in the inbox.
Render
- ⚠️ CDN: no details available (“global CDN”)
- Bandwidth: 100 GB on the free plan, 500 GB or 1 TB on paid plans, then $300 / TB
- ✅ Automatic hosted builds (CI/CD)
- ❓ GitHub commit checks, environments/deployments
- ✅ Rollbacks
- ❓ Probably atomic deployments
- ✅ Instant cache invalidation
- ✅ Custom domain with HTTPS certificate and redirect
- ✅ PR (not branch) preview environments
- ❌ No preview deployments on custom domain
- ✅ Rewrites/redirects
- ❌ No proxied paths
- ✅ Custom response headers
- ✅ DDoS/flood protection
- ✅ HTTP/2
- ✅ HTTP/3
- ❌ No IPv6
AWS Amplify Hosting
- ✅ CDN: full CloudFront network, 600+ PoPs in 100+ countries
- Bandwidth: 5 GB on the free plan (12 months), then $150 / TB
- ✅ Automatic hosted builds (CI/CD)
- ❓ GitHub commit checks, environments/deployments
- ✅ Rollbacks
- ✅ Atomic deployments
- ✅ Instant cache invalidation
- ✅ Custom domain with HTTPS certificate and redirect
- ✅ PR (not branch) preview environments
- ✅ Preview deployments on custom domain (Route53 only)
- ✅ Rewrites/redirects
- ❌ No proxied paths
- ✅ Custom response headers
- ❌ No DDoS/flood protection included
- ✅ HTTP/2
- ✅ HTTP/3
- ❌ No IPv6 (officially)
Azure Static Web Apps
- ⚠️ CDN: limited locations by default, but on the paid plan you can enable the Front Door CDN (192 locations in 109 cities) for $17.52 / month
- Bandwidth: 100 GB on the free plan, $200 / TB on the paid plan
- ❌ No automatic hosted builds (CI/CD), a GitHub Actions workflow is required
- ❌ No GitHub commit checks, environments/deployments
- ❌ No rollbacks
- ✅ Atomic deployments
- ⚠️ Instant cache invalidation, but there’s a max age of 30 seconds by default
- ✅ Custom domain with HTTPS certificate and redirect
- ✅ Preview environments, to be created through the GitHub action (I think)
- ❌ No preview deployments on custom domain
- ✅ Rewrites/redirects
- ❓ Unclear if proxied paths are supported
- ✅ Custom response headers
- ❌ No DDoS/flood protection included
- ✅ HTTP/2
- ❌ No HTTP/3
- ✅ IPv6 (only with Front Door enabled)
I left out some features, like access control, form submissions, analytics, etc., which are sometimes included.
I also left out some simpler services, like GitHub Pages, DigitalOcean App Platform, Surge.sh, because they miss basic features like preview deployments or response headers. I also looked at Firebase Hosting but I find the docs incredibly confusing.