Skip to content

Welcome to the blog

How this SEO-first Next.js template is wired together — and what you get on day one.

Published on Updated on 1 min read

This template ships every SEO primitive you'd otherwise wire by hand: canonical URLs, hreflang for every locale that has the post, OpenGraph + Twitter meta, JSON-LD with a single combined @graph (Organization + BlogPosting + BreadcrumbList), a sitemap that walks every locale, robots.txt, and an RSS feed.

What's included

  • App Router pages that wrap MarkdownContent from @next-md-blog/core.
  • Per-locale post folders under posts/{en,fr,es,de}.
  • Per-post dynamic OG at /[lang]/blog/[slug]/opengraph-image.
  • Auto-generated table of contents from your markdown headings.

Quick start

Edit site.config.ts to set your site name, URL, social handles, and analytics provider. Drop new posts into posts/{locale}/your-slug.md — they're indexed automatically.

Frontmatter

The frontmatter recognized by generateBlogPostMetadata is documented inline in the file. The fields that have the most SEO impact are title, description, date, updated, tags, image, and alternateLanguages.

What's next

Open a few posts, view source, and confirm:

  1. Exactly one <script type="application/ld+json"> per page.
  2. <link rel="canonical"> pointing at the absolute URL.
  3. <link rel="alternate" hreflang="…"> for every locale that has a translation.

That's it — start writing.

Related articles

A practical, prioritized checklist for content sites that want to win organic traffic in 2026.