YAML Frontmatter is the metadata layer that drives all SEO, JSON-LD, and content organization in GitHub CMS. Each Markdown file starts with a YAML block containing title, description, slug, date, author, and other fields that automatically generate structured data, meta tags, and breadcrumb navigation.
All Frontmatter Fields
| Field | Required | Type | Impact |
|---|---|---|---|
title |
Yes | String | Page title, H1 heading, JSON-LD headline, og:title |
description |
Yes | String | Meta description, JSON-LD abstract, og:description |
slug |
Yes | String | URL path segment, canonical URL |
date |
Yes | YYYY-MM-DD | datePublished in Article schema |
author |
No | String | Person schema with E-E-A-T signals |
category |
No | String | Breadcrumb item, category page generation |
tags |
No | Array | Keywords in JSON-LD, tag page generation |
schema_type |
No | String | @type override (Article, HowTo, FAQPage) |
layout |
No | String | Template selection: article or page |
updated |
No | YYYY-MM-DD | dateModified in Article schema |
cover_image |
No | URL | og:image, JSON-LD image |
raw_html |
No | Boolean | Skip markdown processing, use raw HTML |
How Frontmatter Drives JSON-LD
Every frontmatter field maps directly to Schema.org properties:
| YAML Field | JSON-LD Property |
|---|---|
title |
headline |
description |
description, abstract |
date |
datePublished |
updated |
dateModified |
author |
author → Person |
tags |
keywords |
slug |
mainEntityOfPage URL |
schema_type |
@type |
Best Practices
- Titles: 50-70 characters, include primary keyword near the front
- Descriptions: 120-155 characters, unique per page
- Slugs: use hyphens, keep short (3-5 words), English-only
- Tags: 3-8 relevant keywords, no duplicates
- Dates: always use YYYY-MM-DD ISO format
Summary
YAML Frontmatter is the single source of truth for all SEO metadata in GitHub CMS. Fill it correctly and the entire structured data pipeline works automatically — no plugins, no manual JSON-LD editing.