mcpField
S
seo-wordpress-manager

seo-wordpress-manager

github.com/dragosroua营销与增长1642 次安装46 周前更新
代码仓库

关于 seo-wordpress-manager

seo-wordpress-manager 是用于通过 WPGraphQL 管理 WordPress 网站 Yoast SEO 元数据的技能,适合需要检查或批量更新文章 SEO 信息的站点管理者。它包含预览、确认、备份和中断后续跑流程。

主要功能

  1. 01分析文章 SEO 问题
  2. 02批量更新 SEO 标题和描述
  3. 03更新焦点关键短语与 Open Graph 元数据
  4. 04应用前预览并确认
  5. 05跟踪进度并恢复中断任务

适用场景

  1. 01查找缺失标题或过长描述
  2. 02批量优化分类下的文章元数据
  3. 03恢复未完成的批量更新

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dragosroua/claude-content-skills --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 管理技能

用途

此技能通过 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. 报告结果和成功、失败数量

评论

支持 Markdown