Skip to main content
All guides
Vercel basics

Vercel pricing traps: where Pro plans actually get expensive

$20/month is the sticker price. Here's where the real bill lands for teams that ship traffic — and how to keep it flat.

Last updated July 18, 2026

The Pro base is $20 per user

Pro is billed per team member with dashboard access, not a flat team fee. A five-person engineering team is $100/month before anyone ships a deploy, and adding a design reviewer or a marketing manager for one project bumps that by another $20. Guest reviewers who only click preview links do not count, and members marked as billing-only also stay out of the seat count. This means the cheapest way to grow a team on Vercel is to be aggressive about seat hygiene: audit membership monthly, downgrade dormant users, and use the read-only Comments feature for external stakeholders.

Bandwidth is where growth teams get hit

Pro includes 1TB of Fast Data Transfer per month. Above that it is roughly $0.15 per GB, priced in generous rounding. A landing page that ships a 4MB hero video and gets 300k monthly visits blows through 1.2TB — that's $30 in extra bandwidth alone, before any of your app traffic. Compress video with modern codecs (AV1, VP9), ship smaller hero images with next/image or your own srcset, cache aggressively with s-maxage, and consider moving very large static files to object storage with cheaper egress. Bandwidth is often the single biggest surprise on a growing site's invoice.

Image Optimization sneaks up on you

Vercel's next/image loader charges per source image transformed, not per served variant. Pro includes 5,000 source images per month; each source beyond that costs roughly $5 per 1,000. A blog with 500 posts and three hero variants counts as 500 sources, not 1,500 — but a photo-heavy product catalog can wipe out the quota in a day. If your product images are already correctly sized, skip next/image and ship plain <img> with pre-optimized sources. Reserve next/image for genuinely responsive imagery where the transform actually earns its keep.

Function seconds add up on cron and revalidation

ISR revalidation and background cron jobs count against your GB-hour quota exactly like user traffic. A cron that runs every five minutes across three regions is 25,920 invocations per month before a single user hits your site. Multiply by handler duration and you have a real number. The fix is to batch: one cron every 30 minutes that processes a queue is dramatically cheaper than six crons each doing one thing. If a job runs in more than one region, ask whether it actually needs to.

Log Drains and observability

Native logs are 1-hour retention on Hobby and about 3 days on Pro. Anything longer requires a Log Drain to Datadog, Axiom, Logtail, or a self-hosted target, and Vercel bills roughly $0.005 per 1M log lines drained. High-cardinality logs — per-request debug lines, verbose SDK output, request/response body dumps — escalate this fast. Turn debug logging off in Production and only stream what you would actually query in an incident. Structured logs with a strict schema keep the drain cheap and the queries fast.

How teams keep the bill flat

  • Move heavy static assets (video, big images) to Cloudflare R2, Backblaze B2, or a dedicated CDN with cheaper egress.
  • Use next/image sparingly for hero images only; ship plain <img> with pre-optimized sources for the rest.
  • Batch cron work into fewer, longer invocations rather than many short ones.
  • Set a monthly spend cap in Team Settings → Billing to get alerts before overages compound.
  • Move guest reviewers off the team seat count via the read-only Comments feature.
  • Audit team membership every month and remove dormant seats.
  • Drop debug-level logs in Production and route only structured events to your Log Drain.

A worked example

A pre-launch SaaS at 50k monthly visits pays $60 total: three seats × $20. At 500k visits with a video-heavy landing page, the same team pays $60 for seats plus about $50 in extra bandwidth, plus another $25 for image optimization if they lean on next/image — call it $135. At 5M visits the shape starts to matter: video moved to R2 saves $150 of egress; batched crons save another $30; and the invoice lands closer to $220 rather than $400. The lesson is that Vercel scales predictably if you understand which meter is running.

FAQ

Does Vercel have a hard spend cap?
Yes on Pro — you can set a maximum monthly spend in Team Settings → Billing. Once hit, projects switch to a paused state instead of continuing to bill. Set this before you launch, not after; a bad Reddit day can rack up thousands in bandwidth before you notice. Note that the cap pauses projects rather than degrading them gracefully, so plan for a fallback (static maintenance page on a different host) if uptime during a spike matters.
Is bandwidth cheaper on Enterprise?
Not by default. Enterprise contracts negotiate committed usage tiers: you commit to a monthly bandwidth floor and get a lower per-GB rate above it. Below the commit, you pay for what you use — sometimes at a worse rate than Pro if you overshoot the commit. Enterprise pricing is usually worth it above ~10TB/month or when SSO, audit logs, and a dedicated SLA are non-negotiable, not for pure bandwidth savings at moderate scale.
How is Fluid Compute billed?
Fluid Compute batches multiple requests into a single function invocation, so you pay for wall-clock GB-seconds across the batch instead of per-request. For traffic patterns with lots of short concurrent requests, the effective cost per request drops significantly. For traffic with mostly long, blocking handlers, the savings are smaller because there is less concurrency to amortize. Vercel bills Fluid the same way Serverless is billed — just with better utilization.
Do preview deployments count against my usage?
Yes, but usually a small amount. Preview builds count against build minutes, and preview traffic counts against Fast Data Transfer and function seconds. In practice previews rarely dominate the bill unless you have a CI process that spins up dozens of previews per day and hammers them with automated tests. If that is your setup, either shard tests to a single canary preview or use a self-hosted runner.
Can I self-host to avoid these fees?
You can — Next.js, Astro, SvelteKit, and other frameworks all run on generic Node hosts, Docker, or Cloudflare Workers. But you give up ISR, Image Optimization, Edge Middleware, and the deep Vercel integrations that ship with Next.js. Most teams that self-host pay the difference in engineering time instead of invoices. Below about $500/month on Vercel, self-hosting is rarely worth it; above $5,000/month it is worth a serious look.
Are Edge Middleware invocations free?
No. Every request that runs through Edge Middleware counts as a middleware invocation, and Pro includes 1M/month with $0.65 per additional million. A busy marketing site with global A/B testing can churn through the free tier in a week. If middleware is only doing simple redirects, consider moving those to vercel.json redirects (free) or to your framework's routing layer.
Do I get charged for 404s?
It depends on where the 404 is served. Static 404s from the edge cache are effectively free; dynamic 404s that hit a Serverless or Edge Function count as a regular invocation. Bots hammering your site with junk URLs can drive real cost. Add a static /404 fallback and use robots.txt / firewall rules to blunt the worst traffic if it becomes material.
What is Vercel's overage grace period?
There is no formal grace period on Pro. When you cross a metered threshold, the meter starts billing immediately. Vercel does send email alerts at 50%, 75%, and 100% of your soft usage targets, and enterprise contracts often include a burst allowance. On Pro the safest posture is a spend cap plus billing alerts, so nothing about your invoice surprises you at the end of the month.

Related on this site

Keep reading