Web制作2026.05.31

Markdownでブログ記事を管理する方法|FrontmatterとSEO設計

Markdownでブログ記事を管理する方法|FrontmatterとSEO設計

Next.jsの個人ブログでMarkdown記事を管理する方法を、Frontmatter、タグ、SEOタイトル、説明文、広告表示設定まで含めて解説します。

SPONSORED

個人サイト制作シリーズ この記事は「Next.jsで個人ブログ兼Webツールサイトを1から作る」連載の一部です。
初めての人でも順番に進められるよう、前提知識をできるだけ省き、つまずきやすいポイントもあわせて整理しています。

個人ブログの記事管理は、最初はコードに直書きでも始められます。ただ、記事が増えるとすぐ限界が来ます。記事を書くたびにTypeScript配列と向き合うのは、ブログというより修行です。

そこで使いやすいのが Markdown記事管理 です。

1. Markdown記事の基本

Text
content/
  posts/
    first-post.md
    second-post.md

記事ファイルの先頭には、Frontmatterと呼ばれるメタ情報を書きます。

Markdown
---
title: "最初の記事"
date: "2026-05-31"
category: "Web制作"
tags: ["Next.js", "ブログ"]
excerpt: "Next.jsで個人ブログを作り始めた記録です。"
seoTitle: "Next.jsで個人ブログを作る最初の手順"
seoDescription: "Next.jsを使って個人ブログを作るための最初の手順を、初心者向けにわかりやすく解説します。"
thumbnail: "/images/posts/first-post.png"
noIndex: false
showAds: true
---

ここに本文を書きます。

2. Frontmatterに入れる項目

項目 用途
title 記事タイトル
date 公開日
category カテゴリ
tags タグ
excerpt 記事一覧用の概要
seoTitle 検索結果向けタイトル
seoDescription 検索結果向け説明文
thumbnail アイキャッチ画像
noIndex 検索に出すかどうか
showAds 広告を表示するかどうか

3. SEOタイトルの考え方

悪い例です。

Text
作ってみた

良い例です。

Text
Next.jsで個人ブログを作る手順|初心者向けに解説

検索されそうなキーワードと、記事の内容を入れます。

4. SEO説明文の考え方

seoDescription は、検索結果で記事の内容が分かる長さにまとめます。表示される文字数は検索環境によって変わるため、重要な内容を前半に置くのがポイントです。

Text
Next.jsで個人ブログを作りたい初心者向けに、プロジェクト作成、基本ページ、Markdown記事管理、静的出力までの流れを解説します。

5. noIndexとshowAds

検索エンジンにインデックスさせたくない記事は noIndex: true にします。広告を表示したくない記事は showAds: false にします。

Markdown
noIndex: false
showAds: true

記事ごとに制御できるようにしておくと、運用がかなり楽になります。

6. タグは増やしすぎない

タグ数に絶対的な正解はありません。サイト内で実際に記事をまとめられる範囲に絞ります。

Markdown
tags: ["Next.js", "Web制作", "ブログ運営"]

タグは部屋の収納と同じです。増やすのは簡単、片付けるのは大変です。

7. content.tsで記事を読み込む

Terminal
npm install gray-matter remark remark-html

処理のイメージです。

TypeScript
import fs from "fs";
import path from "path";
import matter from "gray-matter";

const postsDirectory = path.join(process.cwd(), "content/posts");

export function getAllPosts() {
  const fileNames = fs.readdirSync(postsDirectory);

  return fileNames
    .filter((fileName) => fileName.endsWith(".md"))
    .map((fileName) => {
      const slug = fileName.replace(/\.md$/, "");
      const fullPath = path.join(postsDirectory, fileName);
      const fileContents = fs.readFileSync(fullPath, "utf8");
      const { data, content } = matter(fileContents);

      return {
        slug,
        title: data.title,
        date: data.date,
        category: data.category,
        tags: data.tags ?? [],
        excerpt: data.excerpt,
        seoTitle: data.seoTitle,
        seoDescription: data.seoDescription,
        thumbnail: data.thumbnail,
        noIndex: data.noIndex ?? false,
        showAds: data.showAds ?? true,
        content,
      };
    })
    .sort((a, b) => b.date.localeCompare(a.date));
}

8. まとめ

Markdown記事管理を導入すると、記事本文、SEO、タグ、広告表示をまとめて管理できます。次の記事では、TOPページ、記事一覧、ツールページなどのUI設計を整理します。

9. 連載記事一覧

  1. 個人サイト制作ロードマップ|ブログとWebツールを作る全体像
  2. Next.jsで個人サイトを作る初期設定|App Router・TypeScript・Tailwind CSS
  3. Markdownでブログ記事を管理する方法|FrontmatterとSEO設計
  4. 個人サイトのページ構成とUI設計|TOP・記事・ツール・スマホ対応
  5. お問い合わせ・プライバシーポリシー・免責事項を整える方法
  6. Google AdSense審査前に準備すること|ads.txt・広告枠・CMP対応
  7. 公開前チェックとトラブル対策|Next.js個人サイトで詰まりやすいポイント