Blog Audit -- サイト全体の健全性評価
プロジェクト内の全ブログ記事を対象に、包括的なブログ健全性評価を実施します。 品質スコア、孤立ページ、トピックの重複、古いコンテンツ、 AI引用対応度をスキャンします。並列サブエージェントを使用して効率的に分析し、 優先順位付けされたアクションキューを生成します。
監査プロセス
ステップ 1: ブログファイルの検出
プロジェクト内のすべてのブログコンテンツファイルをスキャンします:
- 一般的なブログディレクトリで
*.md、*.mdx、*.htmlをグロブ - 確認する一般的なパス:
content/posts/blog/src/content/_posts/pages/blog/articles/src/pages/blog/
- ブログ以外のファイルを除外: README、CHANGELOG、LICENSE、設定ファイル、 SKILL.md、package.json、node_modules
- 報告: 「[ディレクトリ]内に N 個のブログファイルが見つかりました」
標準的な場所にブログファイルが見つからない場合は、プロジェクトルート全体を ブログ風フロントマター(title、date、description)を持つマークダウンファイルについて検索します。
ステップ 2: 並列分析
検出されたすべてのブログファイルに対して、Taskツールを介してサブエージェントを 生成し、並列処理を実行します:
コンテンツ品質エージェント
- 各投稿を30点満点のコンテンツ品質スケールでスコアリング
- 段落の長さをチェック(目標40~80語、上限150語)
- 文の長さをチェック(目標15~20語)
- 見出し構造と疑問文形式の見出しを評価
- 読みやすさを評価(Flesch Reading Ease 目標60~70)
SEO最適化エージェント
- 投稿ごとのオンページSEO要素をチェック:
- タイトルタグの長さ(50~60文字)
- メタディスクリプション(150~160文字、統計情報を含む)
- H1の存在と一意性
- 画像altテキストの適用範囲
- 内部リンクと外部リンクの数
- URLスラッグの品質
スキーマ検証エージェント
- 全投稿にわたって構造化データを検出
- BlogPostingスキーマの完全性を検証
- FAQスキーマの存在と形式をチェック
- dateModifiedがlastUpdatedフロントマターと一致することを確認
- スキーマの欠落や不正な形式をフラグ
リンク健全性エージェント
- 全投稿にわたって内部リンクをマッピング
- 有向リンクグラフを構築
- 孤立ページ(内部リンクの被リンクがゼロ)を検出
- 行き止まりページ(内部リンクの発リンクがゼロ)を検出
- 壊れた内部リンクターゲットをチェック
- 双方向リンクの機会を推奨
鮮度チェックエージェント
- 各投稿のフロントマターから lastUpdated または dateModified を読み取り
- 最終更新からの経過日数を計算
- 90日以上更新されていない投稿をフラグ
- 更新優先度で分類
AI対応度エージェント
- 各投稿のAI引用対応度をスコアリング
- 節レベルの引用可能性(120~180語のセクション)をチェック
- Q&Aフォーマットとエンティティの明確さを評価
- TL;DRボックスと引用カプセルの有無をチェック
- AIクローラーのアクセス可能性を評価
ステップ 3: トピックの重複検出
全投稿を横断してキーワード競合を分析:
- 各投稿から主要キーワード/トピックを抽出:
- タイトルテキスト
- H1見出し
- メタディスクリプション
- 最初の段落
- キーワードを正規化(小文字化、ストップワード除去)
- 同じ主要キーワードをターゲットとする複数の投稿を検出
- 競合する投稿に次のいずれかの推奨をフラグ:
- 統合: 2つの弱い投稿を1つの強い投稿に結合
- リダイレクト: 弱い投稿から強い投稿へ301リダイレクト
- 差別化: 焦点を調整し、投稿が異なる意図をターゲットにする
ステップ 4: 孤立ページ検出
内部リンクグラフの構築と分析:
- 各ブログ投稿について、すべての内部リンク(相対パスと絶対パス)を抽出
- 隣接マップを構築:
{ ページ -> [リンク先のページ] } - 逆マップを構築:
{ ページ -> [リンク元のページ] } - 孤立ページを特定: 内部リンクの被リンクがゼロの投稿
- 行き止まりページを特定: 内部リンクの発リンクがゼロの投稿
- 各孤立ページについて、トピックの関連性に基づいてリンクすべき 既存投稿を2~3推薦
ステップ 5: 古いコンテンツの検出
全投稿のコンテンツ鮮度を監査:
- フロントマターフィールドを読み取り:
lastUpdated、dateModified、date、updated - 各投稿の最終更新からの経過日数を計算
- 更新優先度で分類:
- 高(>180日): おそらく古く、統計情報が古くなっている可能性あり
- 中(90~180日): 正確性を確認し、統計情報を更新
- 低(<90日): 最近更新済み、即時の対応は不要
- 投稿ごとの更新工数を推定:
- 軽い更新: 統計情報を更新し、リンクを確認(1~2時間)
- 中程度の更新: セクションを書き換え、新しいデータを追加(3~4時間)
- 大規模な更新: 全文書き換えを推奨(5時間以上)
ステップ 6: サイト全体のレポート生成
すべての結果を集約し、包括的なレポートを作成:
サマリーダッシュボード
## ブログ監査レポート
**監査日:** [日付]
**投稿総数:** N
**平均スコア:** XX/100
### 健全性概要
| 指標 | 件数 |
|------|------|
| スコア90以上(優良) | N |
| スコア70~89(良好) | N |
| スコア50~69(改善必要) | N |
| スコア50未満(不良) | N |
| 孤立ページ | N |
| 行き止まりページ | N |
| トピック重複の問題 | N |
| 古いコンテンツ(90日以上) | N |
投稿別スコア表
### 投稿別スコア
| 投稿 | スコア | コンテンツ | SEO | E-E-A-T | 技術 | AI引用 | 問題数 |
|------|--------|------------|-----|---------|--------|--------|--------|
| [ファイル名] | XX/100 | X/25 | X/20 | X/20 | X/15 | X/20 | [件数] |
優先アクションキュー
### 優先アクションキュー(スコアが低い順)
| 優先度 | 投稿 | スコア | 主な問題 | 推奨アクション |
|--------|------|--------|----------|----------------|
| 1 | [ファイル] | XX | [問題] | [アクション] |
| 2 | [ファイル] | XX | [問題] | [アクション] |
トピック重複レポート
### トピックの重複
| キーワード | 競合する投稿 | 推奨 |
|------------|--------------|------|
| [キーワード] | post-a.md, post-b.md | 統合 / リダイレクト / 差別化 |
孤立ページ
### 孤立ページ(被リンクなし)
| ページ | 被リンク数 | 推奨リンク元 |
|--------|------------|--------------|
| [ファイル] | 0 | post-a.md, post-b.md, post-c.md |
古いコンテンツ
### 古いコンテンツ
| 投稿 | 最終更新日 | 経過日数 | 優先度 | 更新工数 |
|------|------------|----------|--------|----------|
| [ファイル] | [日付] | N | 高/中/低 | 軽い/中程度/大規模 |
ステップ 7: レポートの保存
完全なレポートをプロジェクトルートの blog-audit-report.md に保存します。
保存後、ユーザーに以下の情報を通知:
- レポートの保存場所:
[プロジェクトルート]/blog-audit-report.md - 調査結果の概要(投稿総数、平均スコア、重大な問題の件数)
- 最もスコアの低い投稿に対して
/blog analyze <ファイル>の実行を提案 - 主要な投稿に対して
/blog geo <ファイル>によるAI引用最適化を提案