Communityコーディング&開発github.com

Webflow CMS ベストプラクティス

Webflow CMS アーキテクチャとベストプラクティスに関する専門家によるガイダンス。コレクションの計画、リレーションシップの設定、コンテンツ構造の最適化、CMS の問題のトラブルシューティングに使用します。

Webflow CMS ベストプラクティス とは?

このスキルは、Webflow CMS のアーキテクチャ設計と最適化に関する包括的なガイドを提供します。開発者やコンテンツ管理者が、コレクション構造の計画、フィールドタイプの選択、リレーションシップの設定(1対多、多対多、自己参照、双方向)、パフォーマンスの最適化、トラブルシューティングを行う際に、段階的な指示と実践的なアドバイスを提供します。特に Webflow MCP ツールと連携し、`webflow_guide_tool`、`data_sites_tool`、`data_cms_tool`、`data_pages_tool`、`ask_webflow_ai` などを使用して、サイト情報の取得、既存コレクションの分析、コンテンツ量の評価、ページ構造の把握を自動化します。これにより、計画段階から実装、移行戦略に至るまで、Webflow の制限やベストプラクティスに沿った意思決定を支援します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/webflow/webflow-skills/tree/HEAD/plugins/webflow-skills/skills/cms-best-practices

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

CMS ベストプラクティス

Webflow CMS アーキテクチャ、リレーションシップ、最適化、トラブルシューティングに関する専門的なガイダンスを提供します。

重要な注意事項

すべての操作には必ず Webflow MCP ツールを使用してください。

  • 開始前に Webflow MCP の webflow_guide_tool を使用してベストプラクティスを入手する
  • Webflow MCP の data_sites_tool をアクション list_sites で使用して利用可能なサイトを特定する
  • Webflow MCP の data_sites_tool をアクション get_site で使用してサイトの詳細とプランの制限を取得する
  • Webflow MCP の data_cms_tool をアクション get_collection_list で使用して既存のコレクションを分析する
  • Webflow MCP の data_cms_tool をアクション get_collection_details で使用してコレクションスキーマを調べる
  • Webflow MCP の data_cms_tool をアクション list_collection_items で使用してコンテンツ量を評価する
  • Webflow MCP の data_pages_tool をアクション list_pages で使用してページ構造を把握する
  • Webflow MCP の ask_webflow_ai で特定の API に関する質問をする
  • Webflow の操作には他のツールやメソッドを使用しないでください
  • すべてのツール呼び出しには必須の context パラメータ(15~25語、第三人称視点)を含める必要があります

指示

フェーズ1: 発見と分析

  1. リクエストを特定する: ユーザーが以下のうちどれを求めているかを判断する:
    • 新しい CMS 構造の計画
    • 既存コレクションの最適化
    • パフォーマンス問題のトラブルシューティング
    • リレーションシップの設定
    • アーキテクチャガイダンスの要求
  2. サイト情報を取得する: Webflow MCP の data_sites_tool をアクション list_sites と get_site で使用してプランの制限を把握する
  3. 既存の構造を分析する: Webflow MCP の data_cms_tool をアクション get_collection_list と get_collection_details で使用して現在の設定を調べる
  4. コンテンツ量を評価する: Webflow MCP の data_cms_tool をアクション list_collection_items で使用して規模を把握する
  5. ページをレビューする: Webflow MCP の data_pages_tool をアクション list_pages で使用してコンテンツがどのように表示されているかを確認する

フェーズ2: 要件の収集

  1. ユースケースを理解する: 明確化の質問をする:
    • 管理する必要があるコンテンツは何か?
    • 誰がコンテンツを更新するのか?
    • コンテンツはどのように表示されるのか?
    • どのようなリレーションシップが必要か?
    • 予想されるコンテンツ量は?
  2. 制約を特定する: プランの制限、技術的な制約、チームのスキルを考慮する
  3. 成功基準を定義する: パフォーマンス目標、編集ワークフロー、スケーラビリティのニーズ

フェーズ3: アーキテクチャ計画

  1. コレクション構造を設計する: コレクション、フィールド、リレーションシップを計画する
  2. フィールドタイプを選択する: 各コンテンツ要素に適切なフィールドタイプを選択する
  3. リレーションシップを計画する: 一対多および多対多の接続を設計する
  4. 分類法を検討する: カテゴリ、タグ、および組織構造を決定する
  5. 規模に備えて計画する: 成長に対応した設計(ページネーション、パフォーマンス、制限)
  6. 決定事項を文書化する: トレードオフと理由を説明する

フェーズ4: 推奨事項と検証

  1. 推奨事項を生成する: 具体的で実践可能なガイダンスを提供する
  2. 変更に優先順位を付ける: 影響度で整理する(クイックウィン vs 長期的なもの)
  3. トレードオフを説明する: ユーザーが制限と回避策を理解できるようにする
  4. ベストプラクティスに照らして検証する: Webflow の制限とパターンに照らして確認する
  5. 代替案を提供する: 該当する場合は複数のアプローチを提供する
  6. 実装ロードマップを作成する: フェーズに分解する

フェーズ5: 実装ガイダンス

  1. ステップバイステップの指示を提供する: 実装のための明確なガイダンス
  2. 支援を申し出る: 他のスキル(cms-collection-setup、bulk-cms-update)の使用を提案する
  3. 構造を文書化する: チーム参照用の文書化を推奨する
  4. テストアプローチを提案する: 変更を検証する方法をガイドする
  5. 移行を計画する: リファクタリングの場合は移行戦略を提供する

コレクションアーキテクチャ

CMS を使用する場合と静的コンテンツを使用する場合

CMS を使用する場合:

  • コンテンツが頻繁に更新される(毎週以上)
  • 複数の類似アイテムがある(ブログ記事、商品、チームメンバー、プロジェクト)
  • 非技術ユーザーがコンテンツを編集する必要がある
  • フロントエンドでフィルタリング/並べ替えが必要なコンテンツ
  • 同じコンテンツが複数のページに表示される(著者略歴、製品機能)
  • コンテンツがアイテム間で一貫した構造に従っている
  • 動的にページを生成する必要がある

静的コンテンツを使用する場合:

  • コンテンツがめったに変更されない(年1回以下の更新)
  • ユニークな単発セクション(アバウトページのヒーロー、ホームページの特別機能)
  • パターンに従わないアイテムごとの複雑なカスタムレイアウト
  • 動的フィルタリングや検索が不要
  • コンテンツが高度にカスタマイズされており、構造を共有しない
  • パフォーマンスが重要でコンテンツが変更されない
  • セクションごとに完全なデザインの柔軟性が必要

ハイブリッドアプローチ:

  • CMS 駆動のセクションを持つ静的ページ(例: 静的ホームページに CMS の推薦の声)
  • 最近のコンテンツには CMS、古いコンテンツには静的アーカイブ
  • 静的ランディングページ、サブページには CMS

フィールドタイプの選択

コンテンツタイプ推奨フィールド備考文字数制限
短いテキストプレーンテキストタイトル、名前、スラッグ最大256文字
長いテキスト(書式なし)プレーンテキスト(長い)説明、抜粋無制限
書式付きコンテンツリッチテキストブログ記事、経歴、記事無制限
単一画像画像写真、サムネイル、ヘッダー画像あたり最大4MB
複数画像複数画像ギャラリー、商品写真最大25画像
ファイルダウンロードファイルPDF、書類、ダウンロードファイルあたり最大4MB
はい/いいえの値スイッチおすすめフラグ、表示切り替えブール値
単一選択オプションステータス、タイプ、カテゴリオプション数無制限
日付/時刻日付/時刻公開日、イベント、期限ISO 8601 形式
1つのアイテムへのリンク参照著者→記事、カテゴリ→記事1つのアイテム
複数のアイテムへのリンク複数参照記事→タグ、記事→関連記事複数のアイテム
外部URLリンクソーシャルリンク、外部リソース最大2048文字
数値数値価格、評価、順序、カウント整数または小数
電話番号電話連絡先番号E.164 形式
メールアドレスメール連絡先メール有効なメール形式
カラー値カラーテーマカラー、アクセント、ブランドカラーHex 形式
ビデオ埋め込みビデオYouTube、Vimeo 埋め込み埋め込みURL

フィールドタイプ決定木

保存するもの:
├── テキスト?
│   ├── 短い(≤256文字)? → プレーンテキスト
│   ├── 長い + 書式あり? → リッチテキスト
│   └── 長い + 書式なし? → プレーンテキスト(長い)
├── メディア?
│   ├── 単一画像? → 画像
│   ├── 複数画像? → 複数画像
│   ├── ビデオ? → ビデオ
│   └── ファイルダウンロード? → ファイル
├── 選択/選択肢?
│   ├── はい/いいえ? → スイッチ
│   ├── 1つのオプション? → オプション
│   └── アイテムへのリンク? → 参照/複数参照
├── 構造化データ?
│   ├── 数値? → 数値
│   ├── 日付/時刻? → 日付/時刻
│   ├── 電話? → 電話
│   ├── メール? → メール
│   └── URL? → リンク
└── 視覚的?
    └── カラー? → カラー

リレーションシップパターン

一対多(参照フィールド)

例: 記事 → 著者

著者コレクション:
├── name(テキスト、必須)
├── slug(テキスト、必須)
├── bio(リッチテキスト)
├── photo(画像)
├── title(テキスト)- 役職
├── email(メール)
└── social-links(リンク)

記事コレクション:
├── title(テキスト、必須)
├── slug(テキスト、必須)
├── content(リッチテキスト)
└── author(参照 → 著者)  ← 各記事に1人の著者

表示: 記事ページで、author.name、author.photo、author.bio にアクセス

フィルタリング: 特定の著者で記事をフィルタリング可能

利点:

  • ✅ 著者データの集中管理(1回更新するだけで、どこにでも反映)
  • ✅ 一貫性の維持が容易
  • ✅ 著者プロフィールページを作成し、すべての記事を表示可能
  • ✅ 効率的(記事あたり1つの参照)

ユースケース:

  • ブログ記事 → 著者
  • 商品 → ブランド
  • イベント → 会場
  • プロジェクト → クライアント
  • 推薦の声 → 顧客

多対多(複数参照)

例: 記事 ↔ タグ

タグコレクション:
├── name(テキスト、必須)
├── slug(テキスト、必須)
├── description(プレーンテキスト)
└── color(カラー)- オプションの視覚的グループ化

記事コレクション:
├── title(テキスト、必須)
├── slug(テキスト、必須)
├── content(リッチテキスト)
└── tags(複数参照 → タグ)  ← 各記事に複数のタグ

表示: 記事ページで、tags をループしてすべてのタグを表示

フィルタリング: 特定のタグで記事をフィルタリング可能

利点:

  • ✅ 柔軟なコンテンツ整理
  • ✅ 関連コンテンツの相互リンク
  • ✅ より良い SEO(トピッククラスタリング)
  • ✅ 強化されたユーザーナビゲーション

制限事項:

  • ⚠️ コレクションあたり最大5つの複数参照フィールド
  • ⚠️ コレクションリストでは、一度に1つの複数参照値でのみフィルタリング可能
  • ⚠️ 参照フィールドの値で並べ替え不可
  • ⚠️ 各参照 = 追加クエリ(パフォーマンスに影響)

複数タグフィルタリングの回避策:

  1. 組み合わせタグを作成する(例: "vegan-gluten-free")
  2. クライアントサイドフィルタリングに Finsweet CMS Filter を使用する
  3. よく使われる組み合わせに対して個別のフィルタリング済みコレクションリストを作成する
  4. Webflow API でカスタムコードを使用する

ユースケース:

  • ブログ記事 ↔ タグ
  • 商品 ↔ 機能
  • プロジェクト ↔ 技術
  • レシピ ↔ 材料
  • コース ↔ トピック

自己参照(ネストされたコレクション)

例: サブカテゴリ付きカテゴリ

カテゴリコレクション:
├── name(テキスト、必須)
├── slug(テキスト、必須)
├── description(プレーンテキスト)
├── parent(参照 → カテゴリ)  ← 階層のための自己参照
└── level(数値)- 表示ロジック用の1、2、3

ユースケース:

  • サブカテゴリ付きカテゴリ
  • サブメニューアイテム付きメニューアイテム
  • 組織階層
  • 製品分類法

利点:

  • ✅ 柔軟な階層
  • ✅ 理論上は無制限の深さ
  • ✅ 再編成が容易

制限事項:

  • ⚠️ Webflow でネストされたレベルを表示するのは複雑
  • ⚠️ 実用的な実装には最大2~3レベルを推奨
  • ⚠️ 深いネストにはカスタムロジックが必要

代替案: 単純な1~2レベルの分類にはオプションフィールドを使用する

双方向リレーションシップ

例: 関連記事

記事コレクション:
├── title(テキスト、必須)
├── slug(テキスト、必須)
├── content(リッチテキスト)
└── related-posts(複数参照 → 記事)  ← 他の記事への自己参照

表示: 記事ページの下部に関連記事を表示

利点:

  • ✅ ユーザーのエンゲージメントを長く維持
  • ✅ より良い SEO(内部リンク)
  • ✅ 柔軟なコンテンツ接続

課題:

  • ⚠️ 真の双方向ではない(A→B が自動的に B→A を作成しない)
  • ⚠️ 必要な場合は両方向を手動で維持する必要がある
  • ⚠️ コンテンツ編集者にとって時間がかかる可能性がある

解決策:

  1. 自動的な「タグによる関連」ロジックにはタグを使用する
  2. 最も重要な接続には手動キュレーション
  3. ハイブリッド: 手動 + タグ/カテゴリに基づく自動

例

例1: 新しい CMS 構造の計画

ユーザープロンプト:

レシピサイトを作っています。CMS をどのように構成すればよいですか?

ステップ1: 要件の収集

📐 CMS 計画: レシピサイト

最適な構造を設計するためにいくつか質問させてください:

1. **コンテンツ量**: 何件のレシピを予定していますか?
   - 少ない(≤50件): シンプルな構造
   - 中程度(50~200件): 適度な整理
   - 多い(200件以上): 高度な分類法が必要

2. **レシピ属性**: 各レシピに含まれる情報は?
   - 基本: 名前、材料、手順、画像
   - 詳細: 準備時間、調理時間、難易度、栄養情報、食事タグ

3. **整理ニーズ**: ユーザーはどのようにレシピを見つけますか?
   - 食事タイプ別(朝食、昼食、夕食)
   - 料理別(イタリアン、メキシカン、アジアン)
   - 食事制限別(ヴィーガン、グルテンフリー、ケト)
   - 調理法別(ベーキング、グリル、スロークッカー)
   - 材料別(鶏肉、パスタ、野菜)

4. **著者設定**: 単数か複数か?
   - 単数: すべてのコンテンツを自分で管理
   - 複数: レシピ作成者のチーム

5. **ユーザーエンゲージメント**: どのようなインタラクティブ機能?
   - コメント/レビュー
   - 評価
   - お気に入り保存
   - レシピカードの印刷

あなたの回答に基づいて、最適な CMS アーキテクチャを設計します。

ステップ2: ユーザーが回答した後

📐 推奨 CMS アーキテクチャ: レシピサイト

あなたの要件(中程度の量、複数の著者、高度なフィルタリング)に基づきます:

---

## 必要なコレクション: 4

### 1. レシピ(メインコンテンツ)
├── name(テキスト、必須)- "自家製パスタカルボナーラ"
├── slug(テキスト、必須)- "homemade-pasta-carbonara"
├── description(プレーンテキスト、160文字)- SEO用の簡単な概要
├── featured-image(画像)- 詳細ページのヒーロー画像
├── thumbnail-image(画像)- グリッドカード用の小さな画像
├── prep-time(数値、必須)- 準備の分数
├── cook-time(数値、必須)- 調理の分数
├── total-time(数値)- 自動計算または手動
├── servings(数値、必須)- 人数分
├── difficulty(オプション: 簡単、中程度、難しい)
├── ingredients(リッチテキスト、必須)- 分量付き材料リスト
├── instructions(リッチテキスト、必須)- ステップバイステップの手順
├── notes(リッチテキスト)- 料理人のメモ、ヒント、代替材料
├── nutrition-info(プレーンテキスト)- カロリー、タンパク質など
├── author(参照 → 著者、必須)
├── category(参照 → カテゴリ、必須)- 主要な食事タイプ
├── cuisine(参照 → 料理)- イタリアン、メキシカンなど
├── dietary-tags(複数参照 → 食事タグ)- ヴィーガン、GFなど
├── cooking-methods(複数参照 → 調理法)- ベーキング、グリルなど
├── featured(スイッチ)- ホームページでハイライト
├── published-date(日付、必須)
└── view-count(数値)- 人気度を追跡

**合計フィールド:** 22フィールド
**必要なプラン:** CMS プラン最小(20コレクション、2000アイテム)

### 2. 著者
├── name(テキスト、必須)
├── slug(テキスト、必須)
├── title(テキスト)- "ヘッドシェフ"、"レシピ開発者"
├── bio(リッチテキスト)
├── photo(画像)
├── specialty(プレーンテキスト)- "イタリア料理"、"ベーキング"
├── social-instagram(リンク)
├── social-website(リンク)
└── email(メール)

**目的:** すべてのレシピで再利用可能な著者情報

### 3. カテゴリ
├── name(テキスト、必須)- "朝食"、"昼食"、"夕食"、"デザート"
├── slug(テキスト、必須)
├── description(プレーンテキスト)
├── image(画像)- カテゴリのヒーロー画像
├── color(カラー)

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル