はじめに
⚠️ 本記事のコードはサンプルです。実際の認証情報・設定値は含まれていません。
ClaudeCodeNaviに記事を投稿すると、SEO(検索エンジン最適化)とAIO(AI Overview最適化)が自動で適用されます。投稿者は何も設定する必要がありません。タイトルと本文を書いて投稿するだけで、Google検索やAI検索に最適化された記事ページが生成されます。
この記事では、どんな最適化が自動で行われるのか、そしてMCPから投稿する場合にさらに細かく制御できるオプションについて解説します。
自動適用されるSEO対策
すべての記事に対して、以下のSEO要素がページ表示時に自動生成されます。
OGP(Open Graph Protocol)メタタグ
SNSでシェアされた時のプレビュー表示に使われるメタタグが自動設定されます。
og:type→articleog:title→ 記事タイトルog:description→ 本文から120文字を自動抽出og:url→ canonical URLarticle:published_time→ 公開日時(ISO 8601)article:modified_time→ 更新日時article:author→ 著者プロフィールURLarticle:section→ 記事カテゴリ(tech → テクノロジー, idea → アイデア)article:tag→ 設定されたタグ全て- Twitter Card →
summary_large_image形式
構造化データ(JSON-LD)
Googleのリッチリザルト表示やAI Overviewでの引用に使われる構造化データが自動出力されます。
Articleスキーマ:
wordCount— 本文の文字数speakable— AIO向け。冒頭段落を音声読み上げ対象として指定interactionStatistic— いいね数timeRequired— 推定読了時間(500文字/分で計算)
BreadcrumbListスキーマ:
- ホーム → 記事一覧 → 記事タイトル の階層構造
HowToスキーマ(自動判定):
- タイトルに「ガイド」「方法」「手順」「使い方」「始め方」「セットアップ」「導入」「設定」「構築」「作り方」「作る」「つくる」「インストール」「How to」「Setup」「Getting Started」が含まれるtech記事は、自動でHowToスキーマが追加されます
- 本文のh2見出しがステップとして抽出されます
meta descriptionとcanonical URL
- meta description: 本文から120文字を自動生成(HTMLタグ除去、空白正規化済み)
- canonical URL:
https://claudecodenavi.jp/{username}/articles/{slug}/形式で重複コンテンツを防止
投稿時の自動SEOチェック
記事を作成すると、投稿APIが自動的にSEOチェックを実行し、結果をレスポンスに含めます。
共通SEOチェック — 記事だけじゃない、全コンテンツタイプ対応
SEOチェックは記事専用ではありません。Q&A・サービス・ギャラリー(成果物)を含む全4タイプの投稿に対して、common/seo-check.php の共通チェック関数が自動実行されます。
コンテンツタイプごとに最適化された閾値が設定されています。
| コンテンツ | 推奨文字数 | タイトル長 | タグ数 |
|-----------|-----------|-----------|--------|
| tech記事 | 3,000文字以上 | 15〜60字 | 1〜10個 |
| idea記事 | 2,000文字以上 | 15〜60字 | 1〜10個 |
| Q&A | 500文字以上 | 15〜100字 | 1〜5個 |
| サービス | 200文字以上 | 15〜60字 | 1〜10個 |
| ギャラリー | 100文字以上 | 10〜60字 | 1〜10個 |
推奨に満たない場合、APIレスポンスの seo_warnings に警告が含まれます。文字数を勝手に増やしたりはしません。「タイトルが短すぎます(現在8文字、推奨15〜60文字)」のように具体的な数値を示します。
記事固有のチェック(techタイプ)
tech記事にはさらに踏み込んだチェックが追加されます。
見出し構造チェック
- h2見出しが3個以上あるか
- h2見出しにキーワードが含まれているか
- 「まとめ」「おわりに」等の締めセクションがあるか
冒頭段落チェック
指定したキーワードが記事の冒頭段落に含まれているかを確認します。SEO上、冒頭にキーワードを含めることが重要です。
キーワード太字化
target_keywords で指定したキーワードを、本文中で各1回だけ自動的に太字化します。
- コードブロック内は除外
- 見出し行は除外
- 既に太字になっている箇所は除外
- 過剰な装飾を防ぐため、各キーワード1回のみ
内部リンク自動追加
記事に設定されたタグに基づいて、関連タグページへのリンクセクションが末尾に自動追加されます。サイト内の回遊性を高め、SEO上の内部リンク構造を強化します。
表示ページの構造化データ — 全コンテンツタイプ対応
構造化データ(JSON-LD)は記事ページだけでなく、全4タイプのコンテンツ詳細ページで自動出力されます。各ページに最適なSchema.orgタイプが設定されており、Googleのリッチリザルトとして表示される可能性を最大化します。
| ページ | JSON-LDスキーマ |
|--------|----------------|
| 記事詳細 | Article + BreadcrumbList(+ HowTo 自動判定) |
| Q&A詳細 | QAPage + BreadcrumbList |
| サービス詳細 | Service + BreadcrumbList |
| ギャラリー詳細 | CreativeWork + BreadcrumbList |
記事ページ(Article)
前述のとおり、Article + BreadcrumbList + 条件付きHowToが出力されます。speakable でAIO対応、wordCount で文字数、timeRequired で読了時間もマークアップされます。
Q&Aページ(QAPage)
質問と回答がQAPageスキーマとしてマークアップされます。
{
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "質問タイトル",
"text": "質問本文",
"answerCount": 3,
"acceptedAnswer": {
"@type": "Answer",
"text": "ベストアンサーの本文",
"upvoteCount": 5
},
"suggestedAnswer": [
{ "@type": "Answer", "text": "他の回答..." }
]
}
}
- ベストアンサー(is_best = 1)は
acceptedAnswerに設定 - その他の回答は
suggestedAnswer配列に格納 - 各回答の
upvoteCount(いいね数)も含まれます - Googleの「他の人はこちらも質問」セクションに表示される可能性があります
サービスページ(Service)
出品されているサービスがServiceスキーマとしてマークアップされます。
{
"@type": "Service",
"name": "サービス名",
"description": "サービス説明",
"provider": {
"@type": "Person",
"name": "出品者名"
},
"offers": {
"@type": "Offer",
"price": "5000",
"priceCurrency": "JPY"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "12"
}
}
- 価格情報(JPY)が
Offerとして構造化 - レビュー平均点・件数が
AggregateRatingに反映 - Google検索で価格や評価が表示される可能性があります
ギャラリーページ(CreativeWork)
成果物がCreativeWorkスキーマとしてマークアップされます。
{
"@type": "CreativeWork",
"name": "成果物タイトル",
"description": "成果物説明",
"creator": {
"@type": "Person",
"name": "作成者名"
},
"dateCreated": "2026-01-15",
"image": "https://claudecodenavi.jp/...",
"keywords": "React, TypeScript, Claude Code"
}
- サムネイル画像が
imageに設定 - タグが
keywordsとして構造化 - GitHubリポジトリURLやデモURLも含まれます
BreadcrumbList(全ページ共通)
すべてのコンテンツ詳細ページにBreadcrumbListスキーマが追加されます。
ホーム → カテゴリ一覧 → コンテンツタイトル
例(Q&Aページの場合):
ClaudeCodeNavi → Q&A → Claude Codeのインストール方法
パンくずリストはGoogleの検索結果にそのまま表示されるため、CTR(クリック率)の向上に直結します。
タグの自動正規化
投稿時のタグは自動的に正規化されます。
例えば以下はすべて同じタグとして扱われます:
Claude Codeclaude codeClaudeCodeclaude-code
既にタグマスターに登録されている正規名(例: ClaudeCode)に統一され、表記ゆれによるタグページの分散を防ぎます。新しいタグは自動でマスター登録され、slugも生成されます。
MCPからの投稿で使えるオプション
Claude Codeの create_post ツールでは、以下のオプションパラメータが使えます。
| パラメータ | デフォルト | 説明 |
|-----------|-----------|------|
| seo_optimize | true(常に有効) | false で明示的に無効化 |
| target_keywords | なし | SEO対象キーワードの配列。太字化と含有チェックに使用 |
| min_words | tech: 3000 / idea: 2000 | 推奨文字数を上書き |
| internal_links | true(常に有効) | false で無効化 |
使用例
タイトル: MCPサーバーの作り方
タグ: MCP, Node.js, Claude Code
target_keywords: MCP, Claude Code
この場合、以下が自動実行されます:
- 本文中の「MCP」「Claude Code」が各1回太字化
- h2見出しにキーワードが含まれているかチェック
- 冒頭段落にキーワードがあるかチェック
- tech記事なので3000文字に満たなければ警告
- MCP、Node.js、Claude Codeのタグページリンクを末尾に追加
- ページ表示時にArticle + BreadcrumbList + HowToのJSON-LDが自動出力
まとめ
ClaudeCodeNaviのSEO自動最適化は、投稿者の負担をゼロにしながら、検索エンジンとAI検索の両方に最適化されたページを生成します。
- 投稿するだけ: OGP、構造化データ、canonical URL、meta descriptionはすべて自動
- 全コンテンツタイプ対応: 記事・Q&A・サービス・ギャラリーの4タイプすべてにSEOチェックと構造化データを適用
- 品質チェック: 文字数、タイトル長、タグ数をコンテンツタイプ別の閾値でチェック
- 最適なスキーマ: Article / QAPage / Service / CreativeWork — 各ページに最適なJSON-LDを自動出力
- タグ正規化: 表記ゆれを自動統一、SEO価値の分散を防止
- MCPで細かく制御: キーワード指定や文字数閾値の上書きも可能
書くことだけに集中してください。SEOはClaudeCodeNaviに任せましょう。