fro-blog
Web制作2026.05.31

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

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

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

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

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

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

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

Markdown記事の基本

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

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

---
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
---

ここに本文を書きます。

Frontmatterに入れる項目

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

SEOタイトルの考え方

悪い例です。

作ってみた

良い例です。

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

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

SEO説明文の考え方

seoDescription は90〜120字程度が目安です。

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

noIndexとshowAds

検索結果に出したくない記事は noIndex: true にします。広告を表示したくない記事は showAds: false にします。

noIndex: false
showAds: true

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

タグは増やしすぎない

タグは1記事あたり3〜5個がおすすめです。

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

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

content.tsで記事を読み込む

npm install gray-matter remark remark-html

処理のイメージです。

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));
}

まとめ

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

連載記事一覧

  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個人サイトで詰まりやすいポイント