Vercel Blog: How to Add a Managed Blog to Your Vercel Site (2026)

Vercel is an excellent deployment platform. It deploys your Next.js, Astro, SvelteKit, or React app in seconds and serves it from a global edge network. What it does not do is give you a blog.
If you want a /blog on your Vercel-deployed site, you have to build it or route to it yourself. That gap is what this guide covers. Below you will find the three real paths teams take, a comparison across the dimensions that matter (editor experience, per-post deploys, SEO automation, multilingual support, ongoing maintenance), and a concrete configuration for the fastest path: routing /blog to a managed blog layer using vercel.json rewrites.
Why DIY Blogging on Vercel Costs More Than It Looks
The naive approach is to add a /blog directory to your Next.js app, drop in some MDX files, and call it done. For a personal site, that works fine. For a team that wants to publish consistently and rank in search, the DIY path has real costs that only become visible after you commit to it.
Every post rebuild triggers a full app deploy. When a writer hits publish, it kicks off a new Vercel build. Your app recompiles. Build minutes get consumed. If you are on Vercel's Pro plan, that is fine for now; it becomes a constraint at scale, and it blocks writers from publishing independently of engineering.
The editor is whatever you build it to be. MDX in a code editor is acceptable for developers. It is unusable for a marketing manager, a content lead, or a freelance writer. You either build a CMS layer (significant effort) or you accept that only engineers can publish.
SEO requires manual wiring. JSON-LD schemas (Article, FAQ, BreadcrumbList, Organization), canonical URLs, Open Graph tags, XML sitemaps, IndexNow pings on publish: none of these come with a Next.js blog template. Each one is a feature you build, test, and maintain.
Multilingual support is a project unto itself. hreflang tags, per-language sitemaps, translated URLs, fallback logic for untranslated content: this is weeks of engineering for a feature that a managed platform handles automatically.
Images need a pipeline. Uploaded images need to be compressed, converted to WebP, and served from a CDN. Next.js Image does some of this, but the upload flow and storage are still your problem.
None of these are deal-breakers individually. Together, they add up to a content infrastructure project that competes with your product roadmap for engineering time.
The Three Real Options
Before committing to an approach, here is an honest comparison:
The headless CMS option is often presented as the sophisticated choice. The reality is that a headless CMS handles content storage but leaves the frontend rendering, schema generation, sitemap, IndexNow, and image pipeline entirely to you. You get a nicer editor and pay a monthly fee, but the engineering surface does not shrink much.
The managed layer approach is different in kind, not just degree. You route /blog to a platform that owns the entire blog stack: CMS, frontend, hosting, CDN, SEO engine. Your app stays exactly as it is. Blog publishes never touch your codebase.
The Concrete Setup: Routing /blog to a Managed Blog
If you go with the managed layer approach, the routing configuration is straightforward. Vercel's rewrites feature lets you proxy a path prefix to an external origin without changing the URL the visitor sees.
Platforms like Superblog (which handles subdirectory hosting across Vercel, Netlify, Cloudflare, and any other stack) provide the blog origin. You point /blog at it from your Vercel config.
Option 1: vercel.json rewrites
Add a vercel.json file at your project root, or add to your existing one:
{
"rewrites": [
{
"source": "/blog/:path*",
"destination": "https://your-blog-origin.superblog.click/blog/:path*"
}
]
}
This tells Vercel: any request for /blog/anything should be proxied to the blog origin, with the path preserved. The visitor's browser sees your domain throughout. The blog's static assets (CSS, JS, images) are served from the blog's CDN, not through the rewrite, so there is no latency overhead on assets.
One important note on path matching. If you also have a catch-all route in your Next.js app (such as [[...slug]]), make sure the rewrite runs before it. Vercel processes rewrites before page routing, so the order in vercel.json takes precedence over Next.js routes for paths that match.
Option 2: next.config.js rewrites
If you prefer to keep routing configuration inside Next.js rather than vercel.json, the equivalent configuration in next.config.js (or next.config.ts) is:
/** @type {import('next').NextConfig} */
const nextConfig = {
async rewrites() {
return [
{
source: '/blog/:path*',
destination: 'https://your-blog-origin.superblog.click/blog/:path*',
},
]
},
}
module.exports = nextConfig
Both approaches produce the same result. The vercel.json approach applies to all frameworks (Astro, SvelteKit, plain React apps, not just Next.js), so it is more portable if you ever change frameworks.
Option 3: Cloudflare in front of Vercel
If your domain already runs behind Cloudflare (common for teams that want WAF or DDoS protection), you can configure the routing at the Cloudflare level instead of in Vercel. A Cloudflare Worker or Page Rule can proxy The architectural principle worth committing to is this: blog publishes should never trigger app deploys. When your blog lives inside your app's codebase, every post is a code change. Writers need git access or a PR workflow. Publishing depends on build pipelines. A broken build blocks content. When your blog is a separate origin behind a rewrite, publishing a post is an operation that the blog platform handles entirely. Your app is not involved. Your build queue is not involved. A writer can publish at 11pm without pinging an engineer. This decoupling also means your blog's deployment cadence is independent of your product's deployment cadence. Teams that ship product changes multiple times a day and publish blog content multiple times a week benefit from these being separate processes. Equally, if your app has a deployment freeze (common before major releases), your blog can keep publishing. And if the blog platform goes down for maintenance, your app is unaffected. For teams that want Superblog is a complete, fully-managed blogging platform: CMS, frontend UI, hosting, SEO engine, and performance infrastructure in one product. It works with any tech stack. If your main site runs on Vercel with Next.js or Astro, you add the rewrite config above and your blog is live at A few specifics worth knowing for Vercel teams: No app rebuilds, ever. Blog posts are published and deployed through Superblog's own pipeline. Your Vercel project is not involved. Build minutes stay free for your app. 90+ Lighthouse scores automatically. Superblog's frontend is JAMStack: pre-built static pages served from a global CDN with 200+ edge locations. Every blog page loads in under a second. You get the performance without building a custom rendering pipeline. SEO that runs on publish. When a writer publishes a post, Superblog automatically generates JSON-LD Article schema, updates the XML sitemap, and fires an IndexNow ping to Bing and other supporting search engines. Canonical URLs, Open Graph tags, and meta descriptions are all configurable per post with a live SERP preview. None of this requires configuration from your team. The editor works for non-engineers. Superblog's TipTap v3 editor has slash commands, markdown shortcuts, image upload with automatic WebP conversion, FAQ blocks that generate FAQ schema, and internal link suggestions. A content lead can write, edit, and publish without touching the codebase or opening a terminal. LLMs.txt is generated automatically. Superblog generates a machine-readable Team collaboration out of the box. Pro plans support up to 5 team members with role-based permissions (Admin, Editor, Author) and collaborative review before publishing. Super plans go up to 10 members. Multilingual without engineering work. Superblog's Super plan supports 37 languages via AWS Translate, using subdirectory URL structure ( Migration is one step. If you have an existing MDX blog inside your Next.js app, you can import it into Superblog via JSON, CSV, or a ZIP of your markdown files. Posts, images, categories, slugs, and publish dates all transfer. Your existing URLs stay the same. Pricing starts at $29/month (Basic: up to 300 posts, 1 member), $49/month (Pro: up to 1,000 posts, 5 members, privacy-friendly analytics, scheduled publishing), and $99/month (Super: unlimited posts, 10 members, AI helper, multilingual, API access, Zapier). All plans include subdirectory hosting, auto SEO, free SSL, CDN, and the full frontend. A 7-day free trial requires no credit card. For a detailed look at how this works with a Next.js app specifically, see the Superblog for Next.js guide. Versus hosting the blog on a Vercel subdomain (blog.yoursite.com). A subdomain blog works technically, but it splits domain authority between two origins. Google treats Versus a native Vercel blog template. Vercel's blog templates (the Next.js blog starter kit, Contentlayer examples) are starting points for building a blog. They give you a working MDX pipeline but no CMS, no editor, no SEO automation, and no image pipeline. Useful for prototyping; not a production content system. Versus integrating with a headless CMS. As covered in the comparison table above, a headless CMS improves the editor experience but leaves the frontend, schema generation, sitemap, and IndexNow entirely on your team. If your team already has the engineering capacity to build and maintain the frontend layer, a headless CMS is a reasonable choice. If they do not, the maintenance surface is larger than it appears at the start. For more on connecting external blog content, see the blog API integration guide. How do I add a blog to my Vercel site? The fastest path is to route Does Vercel host blogs? Vercel is a deployment platform: it builds and serves your application code. It does not provide a CMS, a blog editor, SEO automation, or content management tools. If you want a blog, you need to build one inside your app or route to an external blog platform. Vercel itself does have a company blog at vercel.com/blog, which is part of their marketing site, not a product feature available to Vercel customers. Will blog posts redeploy my Vercel app? If the blog lives inside your Vercel project's codebase, yes: publishing content requires a new Vercel build. If the blog is a separate managed platform routed via Vercel blog vs WordPress: which is better for a business blog? Neither Vercel nor WordPress is a perfect answer. Vercel is a deployment platform, not a blogging product. WordPress is a blogging platform but requires constant plugin maintenance, security patching, and scores 40-60 on Lighthouse performance audits. For a business deploying on Vercel that wants a Can I use Superblog with Astro or SvelteKit on Vercel? Yes. The What happens if I want to migrate my existing MDX blog to a managed platform? Superblog supports import from JSON, CSV, and ZIP files of markdown. If your current blog stores posts as MDX or markdown files, export them, import to Superblog, and configure the rewrite. Slugs transfer as-is, so existing URLs remain the same and you do not lose rankings. Featured images and inline images are fetched and re-hosted on Superblog's CDN automatically. If your team is serious about organic growth, the question is not whether to have a blog on your Vercel site. It is whether you want to spend engineering cycles maintaining blog infrastructure or spend them on your product. The routing configuration takes under an hour. The maintained infrastructure takes indefinitely. Start a free trial at superblog.ai. No credit card required. For more on adding a blog to an existing site, start with the how to add a blog to your website guide. Superblog let's you focus on writing content instead of optimizations. Superblog is a blazing fast blogging platform for beautiful reading and writing experiences. Superblog takes care of SEO audits and site optimizations automatically. Loading.../blog/ to the blog origin, leaving your Vercel app completely unchanged. This is also the approach if you want the blog cached at Cloudflare's edge separately from your app.Keep App and Blog Decoupled
Superblog: The Managed Blog Layer Built for Vercel Teams
/blog on their Vercel-deployed site without building and maintaining a content infrastructure, Superblog is purpose-built for this setup. It is the platform referenced in the configuration examples above.yoursite.com/blog within an hour./blog/llms.txt file that AI tools like ChatGPT, Claude, and Perplexity use to discover and cite your content. For teams competing in AI-driven search, this matters. Most DIY setups do not have this at all./es/, /de/, /fr/) with automatically generated hreflang tags in both the HTML head and the XML sitemap. If you serve international audiences, this is the approach Google recommends, and Superblog implements it without any frontend work from your team.How This Compares to Other Common Approaches
yoursite.com and blog.yoursite.com as separate sites for ranking purposes. Every link the blog earns strengthens the subdomain, not your main domain. A subdirectory blog at yoursite.com/blog keeps all authority on one domain. If SEO matters, subdirectory wins. For a detailed breakdown, see subdomain vs subdirectory for blogs.FAQ
/blog to a managed blog platform using vercel.json rewrites. Add a rewrite rule that proxies /blog/:path to your blog origin, deploy, and your Vercel site serves the blog at your domain without any app changes. Platforms like Superblog provide the blog origin and handle the CMS, SEO, and hosting. For teams who prefer to build their own, the alternative is adding a /blog directory to a Next.js app with MDX rendering, then connecting a headless CMS for the editor layer.vercel.json rewrites, no: blog publishes happen entirely on the blog platform's infrastructure. Your Vercel app is not involved and no build minutes are consumed./blog, a managed platform like Superblog routes cleanly via Vercel rewrites, delivers 90+ Lighthouse scores automatically, and requires zero maintenance. It is designed specifically for this use case in a way that WordPress was not.vercel.json rewrite approach is framework-agnostic. Any Vercel project, Next.js, Astro, SvelteKit, plain React, anything Vercel deploys, can proxy /blog to a Superblog origin. Your framework choice is irrelevant to the routing. For Astro specifically, see the add blog to Astro guide.Want an SEO-focused and blazing fast blog?
superblog
