Automatic validation and SEO

How the blog turns editorial metadata into routes, sitemap entries, RSS items, OG images, and JSON-LD without repetitive manual work.

1 min read

Structured metadata becoming SEO signals

Good SEO starts before the page exists. In this blog, each content file carries enough information for the build to decide what can be published, how the URL is formed, and which signals belong in the final HTML.

Validation before routes

Content goes through Zod schemas to avoid ambiguous states. A published post needs a publishable locale, slug, title, description, and valid tags. If an image is referenced, the file must exist.

That protects editorial work and technical output at the same time. The author keeps writing MDX, while the build blocks broken routes before they ship.

SEO from one model

Canonical links, Open Graph, Twitter Cards, RSS, sitemap entries, and JSON-LD are not separate chores. They are derived from the same fields that render the post.

post.yml + en.mdx -> route -> metadata -> final HTML

When title or description changes, the page, social preview, and structured data move together.

No fake locale fallback

The build only publishes locales with localeStatus: published. A draft translation can stay in the repository without entering hreflang, RSS, or the sitemap.

The result is simple: the reader only sees languages that actually exist.

Related posts

Comments

Comments load on demand to preserve the article's initial load.