Vercel + Cloudflare + Custom Domain: Complete Beginners Guide to Deploying a Static Website
In 2026, building a static website has become very straightforward. But between "easy" and "great to use," there are three mountains: domain names, DNS, and CDN.
This article documents the complete process of taking a static website from Vercel deployment to ultimately owning an independent top-level domain with Cloudflare acceleration, along with every pitfall I encountered. If you also want to deploy your own website, I hope this article helps you avoid detours.
Getting Started: Vercel Automatic Deployment
It all starts with pushing code to GitHub.
Vercel's core advantage is: you just write code, it handles building and deployment. Every push to the main branch, Vercel automatically pulls the code, executes build commands, and deploys to a global CDN -- the whole process takes less than two minutes.
After deployment, Vercel assigns a free subdomain:
w-linfo-blue.vercel.app
The website can now be publicly accessed. But this is just the beginning -- this domain carries Vercel's branding and isn't suitable for long-term use as a production site. You need your own domain.
Pitfalls: Free Domain Attempts
Since we're running a production site, we need our own domain. I first tried the free domain route and stepped into two pitfalls.
Pitfall 1: EU.org's Long Queue
EU.org offers free .eu.org second-level domains, which look very attractive. After applying, you enter a queue for review. After waiting several weeks, I ultimately didn't succeed.
Lesson: Free domain review processes are uncontrollable and not suitable for projects with time requirements.
Pitfall 2: US.KG Policy Changes
US.KG offers free .us.kg domains. After completing KYC identity verification, the platform's rules suddenly changed, requiring a small payment to register, so I gave up.
Lesson: "Pseudo top-level domains" can have policy changes at any time, and ultimate control isn't in your hands.
These two attempts taught me a lesson: for long-term projects, paid domains are not a cost, but an investment.
Learning: Free Subdomain DNS Practice
While waiting for free domains, I used the free subdomain wlzhimu.qzz.io for hands-on DNS configuration practice.
What Is DNS?
DNS (Domain Name System) is essentially a "phone book": it tells the internet "which server IP this domain corresponds to."
Manually Configuring DNS Records
Through the ClouDNS platform, I manually added an A record to resolve wlzhimu.qzz.io to Vercel's server IP 76.76.21.21.
After the configuration took effect, visiting wlzhimu.qzz.io successfully opened the website on Vercel. Although it was a free subdomain, this process gave me a real understanding of how domain resolution works, laying the foundation for subsequent operations.
Upgrading: Buying a Top-Level Domain
At Spaceship (a domain registrar under Nominal), I purchased my own top-level domain:
11180801.xyz
.xyz domains cost very little (less than $1 for the first year), but they are true top-level domains, completely under your control.
Key transition: from "borrowing" to "owning." DNS management, renewal, transfer -- everything is in your hands. A domain costing less than $1 buys absolute stability and a professional brand image.
Binding: Connecting the Domain to Vercel
Adding the Domain
Go to Vercel project settings -> Domains, add 11180801.xyz.
Vercel will ask you to verify domain ownership: add a TXT record in your domain registrar's (Spaceship) DNS management backend.
Verifying Ownership
In Spaceship's DNS management page, add a TXT record with the values provided by Vercel. After a few minutes, Vercel verifies successfully, and the domain is bound.
Acceleration: Connecting Cloudflare
This step is key to solving the core pain point.
Vercel's servers are overseas, and domestic access speed in China is unstable. Cloudflare's free CDN can perfectly solve this problem -- its global CDN nodes cache your website content, users access from the nearest node, and speed improves dramatically.
Registering Cloudflare
Register an account at cloudflare.com, add the domain 11180801.xyz, select the free plan.
Modifying Nameservers
Cloudflare will assign two dedicated Nameserver addresses. Go back to Spaceship and change the domain's Nameserver from the default values to the addresses provided by Cloudflare.
This step is key: it's essentially handing over the "phone book management rights" of your domain to Cloudflare.
Configuring DNS Records
In Cloudflare's DNS management page, confirm the following records:
| Type | Name | Content | Proxy Status |
|---|---|---|---|
| A | @ | 76.76.21.21 | Proxied |
| CNAME | www | cname.vercel-dns.com | Proxied |
Orange cloud = Cloudflare proxy and CDN acceleration enabled.
Waiting for Propagation
Nameserver changes officially take 24-48 hours to propagate globally. In practice, most regions complete the switch within 1-2 hours.
Wrapping Up: Unified Domain Redirects
By this point, the website is accessible via 11180801.xyz. But accumulated old domains and the www prefix both need to be unified.
Vercel-Side Redirects
In Vercel project settings, set 301 permanent redirects for wlzhimu.qzz.io and w-linfo-blue.vercel.app to https://11180801.xyz.
The significance of 301 redirects: telling search engines and browsers that this old address has permanently moved to the new address, and SEO weight will also be transferred.
Cloudflare-Side Redirects
In Cloudflare's "Rules," set a 301 redirect for www.11180801.xyz to https://11180801.xyz.
This way, no matter which address users type, they'll all be unified to the main domain, with a completely consistent brand image.
Final Architecture
After all the steps above, the final technical architecture looks like this:
User enters any domain
-> Cloudflare CDN (Global acceleration + DNS resolution)
-> Vercel (Code hosting + automatic deployment + build)
-> Static website (HTML/CSS/JS)
Four services and their roles:
| Service | Role | Cost |
|---|---|---|
| GitHub | Code hosting | Free |
| Vercel | Build + Deploy + CDN | Free |
| Spaceship | Domain registration | ~$1/year |
| Cloudflare | DNS + CDN acceleration + Security | Free |
Lessons Learned
Three Limitations of Free Domains
Whether free subdomains or "pseudo top-level domains," they all face common problems:
1.Ownership isn't in your hands: The platform can reclaim or change rules at any time
2.Review processes are uncontrollable: You might wait weeks or ultimately fail
3.Unprofessional brand image: Carries platform branding, not suitable for production projects
Three Values of Paid Domains
A .xyz domain costs less than $1 for the first year, and buys you:
1.Absolute control: DNS, renewal, transfer -- all autonomous
2.Stable and reliable: Won't lose your domain due to platform policy changes
3.Professional image: An independent top-level domain feels completely different for branding
DNS Core Concepts Quick Reference
-A Record: Domain -> IPv4 address (most basic resolution)
-CNAME Record: Domain -> Another domain (alias resolution)
-TXT Record: Used for ownership verification, email configuration, etc.
-Nameserver: Determines which service provider manages your DNS records
Cloudflare's Four Values
For users worldwide, Cloudflare is the best partner for static websites:
1.Free CDN: Global node caching, faster access everywhere
2.Free HTTPS: Automatic SSL certificate issuance
3.DNS Management: Powerful and completely free
4.Security Protection: Basic DDoS protection and WAF
Zero-to-One Timeline
| Time | Milestone |
|---|---|
| Day 1 | Push code to GitHub, Vercel automatic deployment succeeds |
| Day 2 | Apply for EU.org free domain, enter long queue |
| Day 3 | Apply for US.KG free domain, abandon due to rule changes |
| Day 5 | Apply for qzz.io free subdomain, complete DNS A record configuration |
| Day 7 | Purchase 11180801.xyz top-level domain at Spaceship |
| Day 8 | Bind domain in Vercel, add TXT verification record |
| Day 9 | Register Cloudflare, modify Nameserver |
| Day 10 | Cloudflare DNS configuration complete, wait for global propagation |
| Day 11 | Domain fully effective, configure all old domain 301 redirects |
| Day 12 | Website officially launches, access works normally everywhere |
12 days, from nothing to a professional static website with an independent domain and global CDN acceleration. The entire process costs less than $1 (domain fee), everything else is free.
If you also want to deploy your own website, following this process will help you avoid many pitfalls.
After Launch: Maintenance and Monitoring
Once your site is live, a few ongoing maintenance tasks keep it running smoothly:
Monitor performance. Cloudflare provides basic analytics -- page views, bandwidth usage, and threat requests blocked. Check these monthly to catch anomalies early. If you notice unusual traffic spikes, it might indicate a crawling bot or an emerging issue.
Keep your build pipeline updated. Vercel automatically rebuilds when you push to GitHub, but dependency updates still require attention. Run npm audit or equivalent monthly to catch security vulnerabilities in your build tools.
Renew your domain on time. Set auto-renewal wherever possible. Losing a domain because of a missed email is painfully common and entirely preventable.
Back up your configuration. Export your DNS records periodically and save your Vercel/Cloudflare settings. If something goes wrong, these backups let you restore service quickly.
Additional Deployment Considerations
For production websites, a few more steps improve reliability:
Set up a custom 404 page. Both Vercel and Cloudflare let you configure custom error pages. A well-designed 404 page with navigation links keeps visitors engaged instead of leaving your site entirely redirects -- useful for incoming links that target removed pages.
Enable HTTPS redirects. Configure your site to automatically redirect all HTTP traffic to HTTPS. Cloudflare offers this as a one-click setting under SSL/TLS settings. This ensures all visitorsconnect securely.
Consider Google Search Console verification. Setting up Search Console helps Google index your pages faster and alerts you to any indexing issues. Combined with a proper sitemap, this improves your discoverability in search results without additional cost.
