seo-wordpress-manager について
seo-wordpress-managerは、WPGraphQL経由でWordPressサイトのYoast SEOメタデータを管理するスキルです。SEOの確認や一括更新を行うサイト管理者向けで、適用前のプレビュー、確認、バックアップ、中断後の再開に対応します。
主な機能
- 01投稿のSEO問題を分析
- 02タイトルと説明文の一括更新
- 03フォーカスキーフレーズとOpen Graphメタデータの更新
- 04適用前のプレビューと確認
- 05進捗記録と中断後の再開
活用シーン
- 01タイトルの欠落や長すぎる説明文を検出
- 02カテゴリー内の投稿メタデータを更新
- 03中断した一括更新を再開
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dragosroua/ claude-content-skills --skill seo-wordpress-managerインストール後、Claude Code で/seo-wordpress-managerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config.example.jsonreference.mdscripts/analyze_seo.pypreview_changes.pywp_graphql_client.pyyoast_batch_updater.py詳細
SEO WordPress Manager スキル
目的
このスキルは、WPGraphQL API を介して WordPress サイトの Yoast SEO メタデータを管理します。次の項目を一括更新できます。
- SEO タイトル
- メタディスクリプション
- フォーカスキーフレーズ
- Open Graph メタデータ
このスキルを使用するタイミング
- ユーザーが「SEO タイトルを更新して」または「メタディスクリプションを修正して」と依頼した場合
- ユーザーが WordPress の投稿を SEO 向けに一括処理したい場合
- ユーザーが Yoast SEO の最適化について言及した場合
- ユーザーが複数の投稿にわたって SEO メタデータを更新する必要がある場合
前提条件
WordPress に必要な設定
- WPGraphQL プラグインがインストールされ、有効化されていること
- WPGraphQL for Yoast SEO 拡張機能がインストールされていること
- 認証用のアプリケーションパスワードが作成されていること
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_URLWP_USERNAMEWP_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"
}
}
]
}
出力
このスキルは次のものを生成します。
- 各投稿の変更前と変更後を示すプレビューレポート
- 中断した一括処理を再開するための進行状況ファイル
- 成功数と失敗数を記載した最終レポート
安全機能
- デフォルトではドライランモードで実行し、適用前にプレビューします
- 一括更新の前に確認プロンプトを表示します
- 進行状況を追跡し、中断したセッションを再開します
- レート制限により、API 呼び出し間の遅延を設定できます
- バックアップとして、変更前の現在値を記録します
使用例
ユーザー:「tutorials」カテゴリーのすべての投稿のメタディスクリプションを、より魅力的な内容に更新してください
Claude は次の操作を行います。
analyze_seo.pyを実行して投稿を取得し、SEO の問題を特定する- 各投稿の内容と現在の SEO データを分析する
- 最適化されたタイトル、説明、キーフレーズを生成する
- 改善内容を含む
changes.jsonファイルを作成する preview_changes.pyを実行して変更前後を比較表示する- 確認を求める
yoast_batch_updater.py --applyを実行して変更を適用する- 成功数と失敗数を含む結果を報告する
コメント
Markdown 対応