Kokil Thapa - Professional Web Developer in Nepal
Freelancer Web Developer in Nepal with 15+ Years of Experience

Kokil Thapa is an experienced full-stack web developer focused on building fast, secure, and scalable web applications. He helps businesses and individuals create SEO-friendly, user-focused digital platforms designed for long-term growth.

Cloudflare Pages vs Netlify vs Vercel for Static Sites

By Kokil Thapa | Last reviewed: September 2026

Choosing between Cloudflare Pages vs Netlify vs Vercel for static sites is no longer a trivial decision. Marketing pages, documentation, and landing pages that convert now depend on build pipelines, edge caching, and preview URLs. I've deployed static frontends for law-firm portals, travel sites, and client portfolios on all three platforms. Each one ships fast global delivery. Each one also has trade-offs that only show up under real traffic, custom domains, or team workflows. This guide compares them the way a production engineer would: concrete limits, config files, and a clear verdict by use case.

What Is the Difference Between Cloudflare Pages, Netlify, and Vercel?

All three platforms take a Git push and publish HTML, CSS, JavaScript, and assets to a global edge network. The differences sit in build runners, serverless functions, pricing tiers, and framework coupling.

Cloudflare Pages runs on Cloudflare's edge. Builds happen on Cloudflare infrastructure. Static assets and Workers sit on the same network as Cloudflare CDN DNS. Netlify pioneered the JAMstack workflow. It offers mature build plugins, form handling, and identity features. Vercel created Next.js and optimises deeply for React, Next.js, and modern full-stack JavaScript.

None of these replace a full web development backend when you need Laravel, WordPress, or custom PHP. They excel at the static or headless frontend layer. Many projects I maintain pair a Laravel API on Ubuntu with a static marketing site on one of these platforms.

Static Site Hosting ArchitectureGit RepoGitHub / GitLabCloudflarePages + WorkersNetlifyBuild + FunctionsVercelNext.js EdgeGlobal Edge NetworkHTML, CSS, JS, images cached near users
Cloudflare Pages vs Netlify vs Vercel for static sites: Git push triggers a build, then assets deploy to edge nodes worldwide.

How Do You Deploy a Static Site on Each Platform?

All three connect to Git and auto-deploy on push. The config file names differ. Build commands and output directories must match your generator.

Cloudflare Pages

Create a project in the Cloudflare dashboard or use Wrangler CLI. Point it at your repo. Set the build command and output folder.

# wrangler.toml (optional for advanced Workers binding)
name = "my-static-site"
compatibility_date = "2026-01-01"

[site]
bucket = "./dist"

Typical settings for a Vite 8.x project: build command npm run build, output directory dist. Cloudflare runs Node.js 26 on current build images. Connect your custom domain inside the same dashboard where DNS already lives. That single-vendor setup is why I often pick Pages for brochure sites tied to domain and hosting work.

Netlify

Netlify reads a netlify.toml at the repo root. Redirects, headers, and build settings live in one file.

[build]
  command = "npm run build"
  publish = "dist"

[[redirects]]
  from = "/api/*"
  to = "https://api.example.com/:splat"
  status = 200
  force = true

Netlify's deploy previews generate a unique URL per pull request. That workflow helps agencies review client pages before merge. I've used this on portfolio and legal-info sites where stakeholders need visual sign-off.

Vercel

Vercel auto-detects many frameworks. For static export from Next.js, set output: 'export' in next.config.js. For plain Vite or Hugo, configure via the dashboard or vercel.json.

{
  "buildCommand": "npm run build",
  "outputDirectory": "dist",
  "framework": null
}

Vercel preview URLs are fast and reliable. Branch deployments map cleanly to Git workflow. If your team already runs Next.js 15+, the zero-config path is hard to beat.

Deploy Pipeline FlowGit Pushmain / PRBuildnpm / hugoPreviewunique URLPublishproductionAll three platforms: connect repo, set build cmd, define output dirCloudflare Pages500 builds/mo freeNetlify300 credits/mo freeVercel100 GB bw freeGotcha: wrong output folder = blank siteAlways verify dist / public / _site path
Deployment pipeline shared by Cloudflare Pages, Netlify, and Vercel: build output must match the configured publish directory.

Which Platform Offers the Best Pricing for Static Sites?

Free tiers on all three cover many small business sites. Costs rise with build minutes, bandwidth, team seats, and serverless invocations. Always model your expected traffic before committing.

CriteriaCloudflare PagesNetlifyVercel
Free builds500/month300 credits/monthUnlimited hobby builds
Free bandwidthUnlimited static100 GB/month100 GB/month
Custom domainsUnlimitedUnlimitedUnlimited (hobby: personal)
Serverless functionsWorkers (separate quota)125k invocations/mo100 GB-hrs/mo
Edge locations330+ cities100+ edge nodes100+ edge regions
Best value forHigh-traffic static HTMLForms + A/B testingNext.js SSR/ISR

Cloudflare's unlimited static bandwidth on the free tier is the standout for high-traffic brochure sites. A legal-info portal or news-style static site can serve heavy traffic without bandwidth shock. Netlify's credit system bundles builds, functions, and bandwidth into one pool. Watch credit burn if you deploy frequently or run heavy function workloads.

Vercel hobby tier restricts commercial use. Client projects typically need Pro at roughly USD 20 per member per month. That is about Rs 2,700 at typical 2026 exchange rates. For a Nepali SMB publishing a static marketing site with modest traffic, Cloudflare Pages free tier often costs zero.

Use the Nepal EMI calculator mindset here: project monthly cost across 12 months before picking a paid tier. A few dollars per seat adds up across a small agency team.

How Do Cloudflare Pages, Netlify, and Vercel Affect SEO and Performance?

Static HTML served from edge nodes is excellent for SEO and Core Web Vitals. Google crawls plain HTML easily. No JavaScript rendering delay. The platform choice matters less than your HTML structure, but edge latency and header control still differ.

All three support custom headers for cache control, security, and Link preload hints. Netlify and Cloudflare expose _headers or _redirects files. Vercel uses vercel.json headers array. Set long cache for fingerprinted assets and short cache for HTML.

# public/_headers (Netlify or Cloudflare Pages)
/assets/*
  Cache-Control: public, max-age=31536000, immutable

/*
  X-Frame-Options: DENY
  X-Content-Type-Options: nosniff

For page speed optimisation, Cloudflare's network often delivers the lowest TTFB in Asia-Pacific regions. That includes users in Nepal on mobile networks. Vercel's image optimisation helps Next.js projects but is less relevant for pure static HTML. Netlify's prerendering and split-testing plugins can help marketing experiments without touching application code.

Static hosts do not replace on-page SEO fundamentals. You still need clean URLs, meta tags, schema markup, and a sitemap. Generate sitemap.xml at build time and submit it in Google Search Console.

SEO and Performance FactorsCloudflareLowest TTFB globallyNetlifyPrerender pluginsVercelImage optimisationStatic HTML = fast LCP when assets are compressedEdge caching reduces server round tripsCustom headers control crawl and cache rulesPlatform does not fix poor HTML or missing metaPair any host with structured data and XML sitemap
SEO performance for static sites depends on HTML quality and cache headers, with edge network reach affecting Time to First Byte.

When Should You Choose Each Platform for Your Project?

There is no universal winner. Match the host to your stack, team, and traffic profile. Here is how I decide on real client work.

Choose Cloudflare Pages when

  • Your site is truly static: Hugo, Eleventy, Vite, or hand-built HTML.
  • DNS and CDN already live on Cloudflare.
  • You expect high bandwidth without per-GB billing.
  • You want Workers on the same vendor for lightweight API routes.
  • Budget is tight and the project is a Nepali SMB brochure site.

Choose Netlify when

  • You need built-in form handling without a backend.
  • Deploy previews and split testing are part of the workflow.
  • The team wants a polished dashboard and mature plugin ecosystem.
  • You run Jamstack with occasional serverless functions at moderate volume.

Choose Vercel when

  • The project is Next.js with SSR, ISR, or React Server Components.
  • Your team lives in the Vercel plus Next.js toolchain daily.
  • Preview deployments per branch are non-negotiable for frontend teams.
  • You accept Pro pricing for commercial client work.

For a law-firm marketing site with static content and a separate Laravel booking backend, Cloudflare Pages is my default. For a travel agency site where the marketing team edits content and tests hero variants, Netlify's preview URLs earn their keep. I do not pick Vercel unless the codebase is Next.js.

Hybrid setups work well. Static marketing on Cloudflare Pages. Laravel API on a VPS. WordPress blog on managed hosting. Connect them with reverse proxy rules or subdomain routing. See multi-region deployment patterns for larger setups.

Platform Decision TreeWhat is your stack?Next.js / SSRStatic HTMLVercelHigh traffic?YesForms / A-B?CloudflareNetlifyLaravel / PHP backend stays on VPSStatic host serves frontend only
Decision tree for Cloudflare Pages vs Netlify vs Vercel for static sites based on framework, traffic, and feature needs.

What Are Common Mistakes When Hosting Static Sites on These Platforms?

Most failures I troubleshoot are configuration errors, not platform bugs. These recur across client migrations and new launches.

  1. Wrong publish directory. Vite outputs to dist. Hugo outputs to public. Jekyll uses _site. A mismatch publishes an empty folder.
  2. Client-side routing without redirects. Single-page apps need a catch-all redirect to index.html. Without it, direct URL visits return 404.
  3. Environment variables not set in the dashboard. Build-time vars like VITE_API_URL must be configured per environment. Local .env files do not travel with Git.
  4. Ignoring cache invalidation. After deploy, users may see stale HTML if cache headers are too aggressive on non-fingerprinted files.
  5. Mixing commercial use on hobby tiers. Vercel hobby terms restrict client work. Upgrade before launch, not after a billing surprise.
  6. Skipping HTTPS and www canonicalisation. Pick apex or www. Redirect the other. Set canonical tags in HTML. See SPA vs MPA SEO for routing implications.

For JSON config testing during setup, a local JSON formatter catches syntax errors in vercel.json before push. Small tooling habits prevent redeploy loops.

When migrating from shared hosting, map old URLs to new paths. Both Netlify and Cloudflare support bulk redirect rules. A botched migration destroys rankings you built over years. Read the website migration checklist before switching DNS.

Official docs remain the source of truth for limits that change quarterly. Consult Cloudflare Pages documentation, Netlify documentation, and Vercel documentation before locking architecture.

Key Takeaways

  • Cloudflare Pages offers the best free-tier bandwidth for pure static HTML and pairs naturally with Cloudflare DNS.
  • Netlify wins on forms, split testing, and deploy-preview workflows for non-technical stakeholders.
  • Vercel is the clear choice for Next.js and React SSR; avoid it for simple static HTML unless the team already uses it.
  • All three need correct output directories, SPA redirect rules, and cache headers for production SEO.
  • Static hosts complement — not replace — Laravel, WordPress, or PHP backends on a VPS.
  • Model total cost including team seats, build minutes, and function invocations before committing to a paid tier.

People Also Ask

Is Cloudflare Pages completely free for static sites?

Cloudflare Pages free tier includes 500 builds per month and unlimited static bandwidth for personal and commercial projects. Workers and advanced features have separate quotas. For a typical brochure site with weekly deploys, you stay within free limits easily.

Can I host a Next.js site on Netlify or Cloudflare Pages?

Yes, with limits. Netlify supports Next.js via its Next.js runtime plugin. Cloudflare supports Next.js through the @cloudflare/next-on-pages adapter. Vercel still provides the smoothest Next.js experience with full SSR and ISR support out of the box.

Which platform is fastest for users in Nepal and South Asia?

Cloudflare's edge network density often delivers the lowest TTFB across Asia-Pacific. All three perform well for static assets. Actual speed depends on image compression, HTML weight, and cache header configuration more than platform brand.

Do I still need a server if I use Vercel or Netlify?

For pure static content, no. If you need Laravel, custom PHP, MySQL transactions, or WordPress admin, you still need a backend server or managed CMS. Static hosts excel at the frontend layer and lightweight serverless functions.

Pick the Host That Matches Your Stack, Not the Hype

The Cloudflare Pages vs Netlify vs Vercel for static sites decision boils down to three questions. What framework do you run? How much traffic and bandwidth do you expect? What does your team need beyond file hosting? Cloudflare Pages is my default for static HTML on budget-conscious Nepali projects. Netlify earns its place when previews and forms matter. Vercel belongs in Next.js workflows.

None of these platforms fix bad content or missing speed optimisation discipline. They deliver files fast. You still own HTML quality, redirects, and analytics. If you want help choosing a stack, migrating DNS, or pairing a static frontend with a Laravel API, contact us or browse the portfolio for examples. For ongoing tips, follow the blog or read about portfolio sites that convert and WordPress Cloudflare integration.

Frequently Asked Questions

All three take a Git push and publish HTML, CSS, JavaScript, and assets to a global edge network. Cloudflare Pages runs on Cloudflare's edge with DNS and CDN in one dashboard. Netlify pioneered JAMstack with mature build plugins, forms, and identity features. Vercel optimises deeply for React, Next.js, and modern full-stack JavaScript. None of these replace Laravel, WordPress, or custom PHP when you need a full backend—they excel at the static or headless frontend layer.

Cloudflare Pages free tier includes 500 builds monthly and unlimited static bandwidth for personal and commercial static sites. Workers and advanced features have separate quotas.

Cloudflare Pages is the standout. Its free tier includes unlimited static bandwidth and 500 builds per month, while Netlify bundles 300 credits and 100 GB bandwidth, and Vercel caps hobby bandwidth at 100 GB. A legal-info portal or news-style static site can serve heavy traffic without bandwidth shock. Netlify's credit system burns faster with frequent deploys or heavy function workloads. Model expected traffic across twelve months before committing to a paid tier.

Vercel Pro costs roughly USD 20 per member per month, about Rs 2,700 at typical 2026 exchange rates. The hobby tier restricts commercial use.

All three connect to Git and auto-deploy on push. For a Vite 8.x project, set build command to npm run build and output directory to dist. Cloudflare uses the dashboard or Wrangler CLI with an optional wrangler.toml. Netlify reads netlify.toml at the repo root for builds, redirects, and headers. Vercel auto-detects many frameworks or uses vercel.json with buildCommand and outputDirectory. Cloudflare runs Node.js 26 on current build images. The critical step is matching the configured publish folder to your generator's actual output path.

Yes, with limits. Netlify supports Next.js via its Next.js runtime plugin. Cloudflare supports it through the @cloudflare/next-on-pages adapter. Vercel still provides the smoothest Next.js experience with full SSR and ISR support out of the box. For static export, set output export in next.config.js. If your team already runs Next.js 15 plus, Vercel's zero-config path is hard to beat. I do not pick Vercel unless the codebase is actually Next.js.

Cloudflare's edge network across 330-plus cities often delivers the lowest TTFB in Asia-Pacific regions, including users in Nepal on mobile networks. Netlify and Vercel each operate 100-plus edge nodes and perform well for static assets. Actual speed depends more on image compression, HTML weight, and cache header configuration than platform brand alone.

Choose Cloudflare Pages when your site is truly static—Hugo, Eleventy, Vite, or hand-built HTML. It fits when DNS and CDN already live on Cloudflare, you expect high bandwidth without per-GB billing, or you want Workers on the same vendor for lightweight API routes. Budget-conscious Nepali SMB brochure sites are a common fit. For a law-firm marketing site with static content and a separate Laravel booking backend, Cloudflare Pages is the practical default.

Pick Netlify when you need built-in form handling without a backend, deploy previews and split testing are part of the workflow, or stakeholders need visual sign-off before merge. Its unique preview URL per pull request helps agencies review client pages. Netlify also suits teams wanting a polished dashboard, mature plugin ecosystem, and JAMstack projects with occasional serverless functions at moderate volume. A travel agency site where marketing edits content and tests hero variants is a typical fit.

For pure static content, no dedicated server is required at the frontend layer. If you need Laravel, custom PHP, MySQL transactions, or WordPress admin, you still need a backend server or managed CMS. Static hosts excel at the frontend and lightweight serverless functions. Many projects I maintain pair a Laravel API on Ubuntu with a static marketing site on one of these platforms, connected via reverse proxy rules or subdomain routing.

Static HTML served from edge nodes is excellent for SEO because Google crawls plain HTML without JavaScript rendering delay. Platform choice matters less than HTML structure, but edge latency and header control still differ. Set long cache for fingerprinted assets and short cache for HTML using _headers on Netlify and Cloudflare or vercel.json on Vercel. Static hosts do not replace on-page fundamentals—clean URLs, meta tags, schema markup, and a build-time sitemap.xml submitted in Google Search Console remain your responsibility.

Wrong publish directory is the top issue—Vite outputs dist, Hugo public, Jekyll _site, and a mismatch publishes an empty folder. Single-page apps need a catch-all redirect to index.html or direct URL visits return 404. Environment variables like VITE_API_URL must be set in the dashboard because local .env files do not travel with Git. Other recurring mistakes include aggressive cache on non-fingerprinted files, commercial use on Vercel hobby tier, and skipping apex versus www canonicalisation with proper redirects and canonical tags.

Hybrid setups work well in production. Host static marketing on Cloudflare Pages while running a Laravel API on a VPS or WordPress on managed hosting. Connect them with reverse proxy rules or subdomain routing—for example, Netlify redirects from /api/* to your API domain with a 200 status. Static hosts complement backends rather than replace them. This pattern appears on law-firm portals and travel sites where the marketing layer stays static and booking or CMS logic lives elsewhere.

Cloudflare Pages allows 500 builds per month with unlimited static bandwidth. Netlify provides 300 credits per month bundling builds, functions, and bandwidth, plus 125,000 serverless invocations and 100 GB bandwidth. Vercel offers unlimited hobby builds but 100 GB bandwidth and 100 GB-hours of serverless compute, with commercial work requiring Pro. Watch Netlify credit burn if you deploy frequently or run heavy function workloads. A few dollars per seat adds up across a small agency team over twelve months.

Match the host to your stack, not the logo. For pure static HTML with aggressive CDN pricing and DNS in one place, Cloudflare Pages wins. Netlify suits teams wanting mature forms, split testing, and simple developer experience without Next.js coupling. Avoid Vercel for simple static HTML unless the team already uses it daily—its strength is Next.js with SSR, ISR, and React Server Components. The decision boils down to framework, expected traffic, bandwidth profile, and what your team needs beyond file hosting.

Share this article

0 Comments

Leave a comment

Your email is not published. Comments appear once they have been read. Sign in to have your details filled in.

Quick Contact Options
Choose how you want to connect me: