A blog that lives on your domain builds SEO authority. One that's bolted on doesn't.
Blog content that lives on blog.example.com (a subdomain) doesn't pass SEO authority to the main domain. Content on example.com/blog does. Next.js with MDX or a headless CMS (Contentful, Sanity) provides a blog that lives on the main domain, loads fast, and is maintainable.
No blog on the website, or a blog on a separate subdomain that isn't contributing to main domain SEO
Blog integration has two decision points:
Decision 1: Content management approach
MDX files in the repository:
Blog posts are .mdx files in the codebase. Developers (or technical writers) write posts in Markdown. Content goes through Git. No external dependency. Best for: developer-heavy teams, content that's mostly technical, infrequent publishing.
Headless CMS (Contentful, Sanity, Notion): Non-technical editors write posts in a CMS UI. Content fetched via API at build time or runtime. Best for: marketing teams who publish regularly, visual content, multiple content types.
Decision 2: URL structure
/blog on the main domain (example.com/blog): all domain authority from inbound links accumulates on the main domain. This is the SEO-correct approach.
blog.example.com (subdomain): treated as a separate domain by Google. Links to the blog don't pass authority to the main site. Avoid for SEO.
The Next.js blog implementation:
For MDX files:
app/blog/page.tsx → blog index
app/blog/[slug]/page.tsx → individual post
content/blog/*.mdx → post files
next-mdx-remote or @next/mdx parses MDX files and renders them server-side.
The blog index: List of posts sorted by date, with title, excerpt, author, and publication date. Paginated for large post counts.
SEO for each post:
generateMetadatafor title and description- Open Graph image (next/og or static)
- JSON-LD Article schema
- Canonical URL
RSS feed:
/rss.xml that lists all posts with full content. Some readers and link aggregators (Hacker News, RSS readers) use it.
Blog integrated into the main Next.js website at /blog, with article pages, RSS feed, and an editor-friendly content management approach
Blog section
at `/blog` in the Next.js app
Post template
with MDX rendering or CMS API integration
Blog index
with post listing and pagination
Metadata
(title, description, OG image) per post
RSS feed
at `/rss.xml`
One honest number to start.
Fixed-scope, fixed-price. The number below is the starting point — final scope is built from your brief.
Blog integrated into the main Next.js website at /blog, with article pages, RSS feed, and an editor-friendly content management approach
Three steps, every time.
The same repeatable engagement on every project. No surprises, no mystery, no billable ambiguity.
Brief & discovery.
We send you questions, then get on a call. Output: a written scope with every step, feature, and integration listed.
Build & ship.
Fixed schedule, weekly reviews. No scope creep unless you change the scope — and if you do, we reprice it transparently.
Warranty & retainer.
30-day warranty on every launch. Most clients stay on a monthly retainer for ongoing features and maintenance.
Why Fixed-Price Matters Here
Blog integration scope is the content approach and the template. Fixed-price.
Questions, answered.
If it's on a subdomain: yes, migrate to the main domain to consolidate SEO. If it's already at /blog on the main domain: consider the migration cost vs benefit carefully — domain authority from existing posts is valuable.
With MDX files: no, requires Git. With a headless CMS (Contentful, Sanity): yes, editors publish through a browser UI. Choose based on who will actually publish content.
Tell Ryel about your project.
Describe what you’re building and what outcome you need. You’ll have a written, fixed-price scope within the week.