mcpField
S
site-content-catalog

site-content-catalog

github.com/gooseworks-aiマーケティング・グロース1.3k52 回インストール3 日前に更新
リポジトリ

site-content-catalog について

site-content-catalog は、サイトマップやフィード、ブログページからウェブサイトのコンテンツを一覧化するスキルです。ページ分類や公開傾向をまとめ、選択したページの詳細分析も行えます。

主な機能

  1. 01サイトマップ、フィード、ブログからページを検出
  2. 02コンテンツ種別とトピックで分類
  3. 03公開頻度と傾向を集計
  4. 04選択ページの詳細分析に対応
  5. 05JSON と Markdown の概要を出力

活用シーン

  1. 01ウェブサイトの全コンテンツを一覧化
  2. 02コンテンツ種別ごとの件数を比較
  3. 03過去1年間の公開ペースを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gooseworks-ai/goose-skills --skill site-content-catalog

インストール後、Claude Code で/site-content-catalogを入力して読み込まれたか確認します。

同梱ファイルscripts/catalog_content.pyskill.meta.json

詳細

サイトコンテンツカタログ

Web サイトのサイトマップとブログをクロールし、完全なコンテンツインベントリを作成します。URL、タイトル、日付、コンテンツタイプ、トピッククラスターとともに、すべてのページをカタログ化します。コンテンツをカテゴリー別にグループ化し、公開パターンを特定します。必要に応じて、主要ページを詳細に分析することもできます。

クイックスタート

# Basic content inventory
python3 scripts/catalog_content.py --domain "example.com"

# With deep analysis of top 20 pages
python3 scripts/catalog_content.py --domain "example.com" --deep-analyze 20

# Output to specific file
python3 scripts/catalog_content.py --domain "example.com" --output content-inventory.json

入力

パラメーター必須デフォルト説明
domainはい—カタログ化するドメイン(例:「example.com」)
deep-analyzeいいえ0コンテンツ分析のために詳細を読み込む上位ページの数
outputいいえstdoutJSON 出力の保存先パス
include-non-blogいいえtrueランディングページやドキュメントなどもカタログ化します(ブログだけではありません)

コスト

  • サイトマップ/RSS のクロール: 無料(直接 HTTP リクエスト)
  • Apify サイトマップ抽出ツール(フォールバック): サイトあたり約 $0.50
  • 詳細分析: 無料(個々のページで WebFetch を使用)

処理

フェーズ 1:すべてのページを検出

スクリプトは、サイト上のすべてのページを見つけるため、以下の方法を順番に試します。

A) Sitemap.xml
  1. https://[domain]/sitemap.xml を取得します
  2. サイトマップインデックスの場合は、すべての子サイトマップを再帰的に取得します
  3. よくある別の場所:/sitemap_index.xml、/sitemap-index.xml、/wp-sitemap.xml
  4. robots.txt の Sitemap: ディレクティブを確認します
B) RSS/Atom フィード
  1. /feed、/rss、/atom.xml、/blog/feed などを確認します
  2. タイトル、日付、URL とともに投稿を抽出します
  3. RSS で見つかるのは通常、最近のコンテンツ(直近 10〜50 件)のみです
C) ブログインデックスのクロール
  1. /blog、/resources、/insights、/news、/articles を取得します
  2. ページからリンクを抽出します
  3. ページネーションがあればたどります(/blog/page/2、?page=2 など)
D) サイト内検索(フォールバック)
  1. WebSearch:site:[domain] でインデックス済みページの総数を推定します
  2. WebSearch:site:[domain]/blog でブログコンテンツを見つけます
  3. WebSearch:site:[domain] intitle: でページタイトルのパターンを特定します
E) Apify Sitemap Extractor(JS を多用するサイト向けのフォールバック)
  • Actor:onescales/sitemap-url-extractor
  • sitemap.xml が見つからず、サイトが JS でレンダリングされる場合に使用します
フェーズ 2:各ページを分類

検出した各 URL を、以下の基準で分類します。

コンテンツタイプ

URL のパターンとページタイトルに基づいて分類します。

タイプURL のパターン例
blog-post/blog/、/posts/、/articles/ハウツーガイド、意見記事
case-study/case-study/、/customers/、/success-stories/顧客事例
comparison/vs/、/compare/、/alternative/X 対 Y のページ
landing-page/solutions/、/use-cases/、/for-/製品マーケティングページ
docs/docs/、/help/、/documentation/、/api/技術ドキュメント
changelog/changelog/、/releases/、/whats-new/製品の更新情報
pricing/pricing/料金ページ
about/about/、/team/、/careers/企業ページ
legal/privacy/、/terms/、/security/法務/コンプライアンス
resource/resources/、/guides/、/ebooks/、/webinars/アクセス制限付き/ダウンロード可能なコンテンツ
glossary/glossary/、/dictionary/、/terms/SEO 用語集ページ
integration/integrations/、/apps/、/marketplace/連携ページ
other—その他すべて
トピッククラスター

URL スラッグとタイトルからトピックの手がかりを抽出してグループ化します。

  • URL パスの各セグメントからキーワードを抽出します
  • 類似したキーワードをクラスターにまとめます(例:「aws-cost」、「cloud-spending」、「finops」→「クラウドコスト管理」)
  • シンプルなキーワードの共起を使ってクラスタリングします
フェーズ 3:公開パターンを分析

日付のあるコンテンツ(主にブログ投稿)を基に、以下を分析します。

  • コンテンツ総数: タイプ別
  • 公開頻度: 過去 12 か月の月別投稿数
  • 傾向: 公開量が増加、減少、または安定しているか
  • 最新度: 最も新しい公開日
  • 著者の多様性: ユニークな著者数(RSS から抽出できる場合)
フェーズ 4:詳細分析(任意)

--deep-analyze N が指定されている場合、上位 N 件のページ(ブログ記事を優先)を取得して、以下を抽出します:

  • 単語数(概算)
  • ターゲットキーワード(タイトル、H1、URL から推定)
  • ファネル段階: TOFU(認知)、MOFU(検討)、BOFU(決定)
  • コンテンツの深さ: 浅い(500 語未満)、中程度(500~1500 語)、深い(1500 語以上)
  • 画像/動画の有無: ブール値
  • CTA の有無: ブール値(一般的な CTA パターンを検出)
  • 内部リンク数
フェーズ 5:出力
JSON 出力(デフォルト)
{
  "domain": "example.com",
  "crawl_date": "2026-02-25",
  "total_pages": 347,
  "discovery_methods": ["sitemap.xml", "rss"],
  "pages": [
    {
      "url": "https://example.com/blog/reduce-aws-costs",
      "title": "How to Reduce Your AWS Bill by 40%",
      "date": "2025-11-15",
      "type": "blog-post",
      "topic_cluster": "Cloud Cost Optimization",
      "deep_analysis": {
        "word_count": 2100,
        "target_keyword": "reduce aws costs",
        "funnel_stage": "TOFU",
        "content_depth": "deep",
        "has_images": true,
        "has_cta": true
      }
    }
  ],
  "summary": {
    "by_type": {"blog-post": 89, "landing-page": 23, "case-study": 12, ...},
    "by_topic": {"Cloud Cost Optimization": 34, "FinOps": 18, ...},
    "publishing_cadence": {
      "posts_per_month_avg": 4.2,
      "trend": "increasing",
      "most_recent": "2026-02-20"
    }
  }
}
Markdown サマリー(あわせて生成)
# Content Inventory: example.com
**Crawled:** 2026-02-25 | **Total pages:** 347

## Content by Type
| Type | Count | % |
|------|-------|---|
| Blog Posts | 89 | 25.6% |
| Landing Pages | 23 | 6.6% |
| ...

## Content by Topic Cluster
| Topic | Posts | Most Recent |
|-------|-------|-------------|
| Cloud Cost Optimization | 34 | 2026-02-20 |
| ...

## Publishing Cadence
- Average: 4.2 posts/month
- Trend: Increasing (3.1 → 5.4 over last 6 months)
- Most recent: 2026-02-20

## Full Catalog
| # | Date | Type | Topic | Title | URL |
|---|------|------|-------|-------|-----|
| 1 | 2026-02-20 | blog-post | Cloud Cost | How to Reduce... | https://... |

ヒント

  • Sitemap.xml が最適な情報源です。 適切に保守されているサイトの多くにあります。ない場合、それ自体が SEO シグナル(マイナス)です。
  • RSS で確認できるのは最近のコンテンツのみです。 カタログ全体が必要な場合、サイトマップは不可欠です。RSS は補足情報です。
  • 詳細分析は任意ですが、有用です。 brand-voice-extractor に渡す場合や、ファネル段階のマッピングが必要な場合に使用します。
  • JavaScript でレンダリングされるサイトでは、Apify フォールバックが必要になることがあります。sitemap.xml が HTML を返す、またはブログページの大部分が JavaScript で構成されている場合が該当します。
  • seo-domain-analyzer と組み合わせて、コンテンツインベントリにトラフィックデータを重ね合わせ、実際に成果を上げているコンテンツを確認します。

依存関係

  • Python 3.8+
  • requests ライブラリ(pip install requests)
  • APIFY_API_TOKEN 環境変数(Apify フォールバックモードでのみ使用)

コメント