mcpField
S
seo-wordpress-manager

seo-wordpress-manager

github.com/nicepkgマーケティング・グロース288103 回インストール40 週間前に更新
リポジトリ

seo-wordpress-manager について

WPGraphQL APIを通じてWordPressサイトのYoast SEOメタデータを管理するスキルです。タイトル、説明、フォーカスキーフレーズ、Open Graphメタデータの分析や一括更新に対応し、確認や中断後の再開も行えます。

主な機能

  1. 01投稿のSEO問題を分析
  2. 02Yoast SEO項目の一括更新
  3. 03適用前の変更プレビュー
  4. 04中断した更新バッチの再開
  5. 05値のバックアップとリクエスト頻度の制限

活用シーン

  1. 01欠落または長すぎるSEOメタデータの検出
  2. 02WordPress投稿のメタデータ一括更新
  3. 03適用前の一括変更のプレビューと確認

インストール

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

$npx skills add https://github.com/nicepkg/ai-workflow --skill seo-wordpress-manager

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config.example.json
reference.md
scripts/
analyze_seo.py
preview_changes.py
wp_graphql_client.py
yoast_batch_updater.py

詳細

SEO WordPress Manager スキル

目的

このスキルは、WPGraphQL API を介して WordPress サイトの Yoast SEO メタデータを管理します。次の項目を一括更新できます。

  • SEO タイトル
  • メタディスクリプション
  • フォーカスキーフレーズ
  • Open Graph メタデータ

このスキルを使用するタイミング

  • ユーザーが「SEO タイトルを更新して」または「メタディスクリプションを修正して」と依頼した場合
  • ユーザーが WordPress の投稿を SEO 向けに一括処理したい場合
  • ユーザーが Yoast SEO の最適化について言及した場合
  • ユーザーが複数の投稿にわたって SEO メタデータを更新する必要がある場合

前提条件

WordPress に必要な設定
  1. WPGraphQL プラグインがインストールされ、有効化されていること
  2. WPGraphQL for Yoast SEO 拡張機能がインストールされていること
  3. 認証用のアプリケーションパスワードが作成されていること
Yoast SEO の GraphQL ミューテーション

ミューテーションを有効にするには、テーマの functions.php に以下を追加します。

// Enable Yoast SEO mutations via WPGraphQL
add_action('graphql_register_types', function() {
    register_graphql_mutation('updatePostSeo', [
        'inputFields' => [
            'postId' => ['type' => 'Int', 'description' => 'Post ID'],
            'title' => ['type' => 'String', 'description' => 'SEO Title'],
            'metaDesc' => ['type' => 'String', 'description' => 'Meta Description'],
            'focusKeyphrase' => ['type' => 'String', 'description' => 'Focus Keyphrase'],
        ],
        'outputFields' => [
            'success' => ['type' => 'Boolean'],
            'post' => ['type' => 'Post'],
        ],
        'mutateAndGetPayload' => function($input) {
            $post_id = absint($input['postId']);

            if (!current_user_can('edit_post', $post_id)) {
                throw new \GraphQL\Error\UserError('You do not have permission to edit this post.');
            }

            if (isset($input['title'])) {
                update_post_meta($post_id, '_yoast_wpseo_title', sanitize_text_field($input['title']));
            }
            if (isset($input['metaDesc'])) {
                update_post_meta($post_id, '_yoast_wpseo_metadesc', sanitize_textarea_field($input['metaDesc']));
            }
            if (isset($input['focusKeyphrase'])) {
                update_post_meta($post_id, '_yoast_wpseo_focuskw', sanitize_text_field($input['focusKeyphrase']));
            }

            return [
                'success' => true,
                'post' => get_post($post_id),
            ];
        }
    ]);
});

設定

スキルのディレクトリに config.json を作成します。

{
  "wordpress": {
    "graphql_url": "https://your-site.com/graphql",
    "username": "your-username",
    "app_password": "your-app-password"
  },
  "batch": {
    "size": 10,
    "delay_seconds": 1
  },
  "state_file": "./seo_update_progress.json"
}

または、環境変数を使用します。

  • WP_GRAPHQL_URL
  • WP_USERNAME
  • WP_APP_PASSWORD

ワークフロー

ステップ 1:SEO の問題について投稿を分析する
python scripts/analyze_seo.py --all --output analysis.json

投稿を取得し、SEO の問題(タイトルがない、説明が長すぎるなど)を特定します。 出力には、Claude が最適化された SEO コンテンツを生成するための指示が含まれます。

ステップ 2:最適化された SEO コンテンツを生成する

Claude は analysis.json の出力を分析し、次の内容を含む changes.json ファイルを生成します。

  • 最適化された SEO タイトル(50~60 文字)
  • 魅力的なメタディスクリプション(150~160 文字)
  • 関連性の高いフォーカスキーフレーズ
ステップ 3:変更をプレビューする(ドライラン)
python scripts/preview_changes.py --input changes.json
ステップ 4:更新を適用する
python scripts/yoast_batch_updater.py --input changes.json --apply
ステップ 5:中断した場合に再開する
python scripts/yoast_batch_updater.py --resume

入力形式

このスキルでは、変更を含む JSON ファイルが必要です。

{
  "updates": [
    {
      "post_id": 123,
      "post_title": "Original Post Title",
      "current": {
        "seo_title": "Old Title | Site Name",
        "meta_desc": "Old description"
      },
      "new": {
        "seo_title": "New Optimized Title | Site Name",
        "meta_desc": "New compelling meta description under 160 chars"
      }
    }
  ]
}

出力

このスキルは次のものを生成します。

  1. 各投稿の変更前と変更後を示すプレビューレポート
  2. 中断した一括処理を再開するための進行状況ファイル
  3. 成功数と失敗数を記載した最終レポート

安全機能

  • デフォルトではドライランモードで実行し、適用前にプレビューします
  • 一括更新の前に確認プロンプトを表示します
  • 進行状況を追跡し、中断したセッションを再開します
  • レート制限により、API 呼び出し間の遅延を設定できます
  • バックアップとして、変更前の現在値を記録します

使用例

ユーザー:「tutorials」カテゴリーのすべての投稿のメタディスクリプションを、より魅力的な内容に更新してください

Claude は次の操作を行います。

  1. analyze_seo.py を実行して投稿を取得し、SEO の問題を特定する
  2. 各投稿の内容と現在の SEO データを分析する
  3. 最適化されたタイトル、説明、キーフレーズを生成する
  4. 改善内容を含む changes.json ファイルを作成する
  5. preview_changes.py を実行して変更前後を比較表示する
  6. 確認を求める
  7. yoast_batch_updater.py --apply を実行して変更を適用する
  8. 成功数と失敗数を含む結果を報告する

コメント