Vercel built its reputation on Next.js applications, which makes some content-site authors assume it is overkill for a blog. It is not. For Astro / Next.js content sites, Vercel gives you fast builds, image optimization, preview deploys, and analytics with no setup. The real question is bandwidth cost at scale — answered with the math below.
Background
A pure-static content site costs Vercel almost nothing in compute — it is bytes served from a CDN. But Vercel’s pricing is opinionated: bandwidth on Hobby is generous but capped, on Pro is paid per GB beyond the included amount. For most indie content sites, that math works out fine. For a site doing millions of monthly page views, Cloudflare Pages or Firebase Hosting may be cheaper.
How to tell
- You are using Astro, Next.js, or another supported framework for content.
- Monthly bandwidth is comfortably inside the included limits (1 TB on Pro).
- You value image optimization, ISR, and per-branch preview deploys.
- You want one dashboard for analytics, deploys, and previews.
- Your site is commercial — affiliate or ad-supported (which means Hobby is off the table; Pro is required).
Quick verdict
For 99% of indie content sites in 2026, Vercel is a great choice. Reconsider only if you have predictable >1 TB monthly bandwidth or your stack is already on another platform.
Before you start
- Repo is on GitHub / GitLab / Bitbucket and connected to a Vercel team.
- You have the production domain ready and DNS access.
- You know the framework’s build command and output directory.
Step by step
- Pick framework + bootstrap the project. Astro for content-first; Next.js if you need React app integration. From scratch:
npm create astro@latest mysite -- --template blog
cd mysite
npm install @astrojs/sitemap
- Add a minimal
vercel.jsonto control headers, redirects, and clean URLs:
{
"cleanUrls": true,
"trailingSlash": true,
"redirects": [
{ "source": "/blog/(.*)", "destination": "/articles/$1", "permanent": true }
],
"headers": [
{
"source": "/_astro/(.*)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=31536000, immutable" }
]
},
{
"source": "/(.*)\\.html",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=300, s-maxage=3600" }
]
}
]
}
- Set the canonical site in
astro.config.mjs:
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
import vercel from '@astrojs/vercel/static';
export default defineConfig({
site: 'https://yourdomain.com',
trailingSlash: 'always',
build: { format: 'directory' },
output: 'static',
adapter: vercel(),
integrations: [sitemap()],
});
- Connect repo and deploy:
npm install -g vercel
vercel link
vercel --prod
# Production: https://yourdomain.vercel.app
Then in Vercel dashboard: Project → Domains → Add yourdomain.com. Configure DNS as instructed (usually CNAME www → cname.vercel-dns.com and A @ → 76.76.21.21).
- Enable Speed Insights and Web Analytics in the dashboard. Add the client snippet in your root layout:
---
import SpeedInsights from '@vercel/speed-insights/astro';
import Analytics from '@vercel/analytics/astro';
---
<SpeedInsights />
<Analytics />
- Use built-in image optimization. Astro:
---
import { Image } from 'astro:assets';
import hero from '../assets/hero.jpg';
---
<Image src={hero} alt="hero" widths={[400, 800, 1200]} formats={['avif', 'webp']} />
Vercel auto-serves AVIF/WebP variants from the edge.
- Estimate bandwidth before going wide. Quick check:
# Average HTML + cached-static page weight
curl -sLI https://yourdomain.com/articles/some-slug/ \
| grep -i content-length
# Total project size:
du -sh dist/
# Multiply (page_weight_KB * monthly_pageviews) / 1024 / 1024 ≈ GB/month
A typical indie blog at 100k monthly PV burns 5-30 GB — comfortably inside even Hobby. A 5 M PV site burns 250 GB-1.5 TB and may need Pro plus careful image management.
- Submit the canonical domain to Search Console and confirm canonical tags reference only the production domain, never
*.vercel.app:
grep -ROIE 'rel="canonical"|og:url' dist | grep -v yourdomain.com | head
# any output = leak
Implementation checklist
vercel.jsoncontrols cache, redirects, clean URLs explicitly.astro.config.mjssetssite,trailingSlash, and the Vercel adapter.- Speed Insights and Web Analytics snippets are in the root layout.
- Image pipeline produces AVIF/WebP for hero images.
- Search Console verified on the production domain; no
*.vercel.appleaks.
After-launch verification
curl -sI https://yourdomain.com/_astro/index.abc.css | grep cache-controlshowsimmutable.- Vercel dashboard → Analytics shows traffic on the production domain, not preview URLs.
- Search Console → Pages → Indexed count grows over 4-8 weeks.
Common pitfalls
- Forgetting that Hobby is non-commercial — affiliate links and ads count.
- Not optimizing images, then panicking when bandwidth jumps.
- Using Next.js SSR for content that could be static, paying for compute you do not need.
- Leaving the
*.vercel.appURL in canonical or sitemap. - Treating preview URLs as production — they are noindex by default but easy to leak via shared docs.
cleanUrls: trueset on Vercel but framework outputsabout/index.html— leads to ambiguous 301s. MatchcleanUrlsto your framework’s file naming.
FAQ
- Will my static Astro site need ISR on Vercel?: No. A fully static Astro site is served from the CDN. ISR is for pages that need dynamic data at request time.
- Does Vercel hurt SEO compared to a “real” host?: No. Vercel’s CDN is fast, Core Web Vitals are typically excellent, and Google does not care which CDN you use.
- Can I use Vercel’s preview deploys for client review?: Yes. Preview URLs are unique per branch / commit. Use password protection (Pro) for client work.
- When does Vercel become expensive for content?: Roughly when you exceed 1 TB/month bandwidth on Pro and the per-GB overage starts adding up. Most indie sites are nowhere near.
- Is Vercel CDN faster than Cloudflare?: Comparable for most users. The differentiator is platform features (preview deploys, image optimization), not raw edge speed.
Related
- What is Vercel
- Deploying an Astro site on Vercel
- Firebase vs Vercel
- Vercel Hobby vs Pro: when to upgrade
- Vercel build failed causes
- Vercel Monorepo Content Site Deploy: Turbo + Multiple Apps
- Vercel Edge Functions for Content Sites: When They Help
Tags: #Indie dev #Vercel #Hosting #SEO #Comparison