Como Automatizei o Rank Math SEO no WordPress via REST API e n8n — Uma Solução Prática para Otimização de SEO em Massa

Hikelmy Henrich

📝 Introdução

Ao trabalhar com grandes volumes de posts e projetos de SEO em larga escala dentro do WordPress, me deparei com uma limitação importante:

O Rank Math SEO, apesar de ser um dos plugins mais robustos do mercado, não oferece endpoints nativos na REST API para atualização automática de seus metadados — especialmente para a palavra-chave de foco.

Foi a partir dessa limitação que nasceu o desafio:

  • Como criar um mecanismo capaz de automatizar a atualização de metadados de SEO no WordPress de forma programática e segura?

  • Como permitir a integração com ferramentas de automação como o n8n?

  • Como estender o próprio WordPress e o Rank Math para trabalhar em escala?


🚩 O Problema

O Rank Math salva suas informações principais de SEO como Custom Fields (post meta) no banco de dados do WordPress. Exemplos:

				
					rank_math_title (Título SEO)
rank_math_description (Descrição SEO)
rank_math_focus_keyword (Palavra-chave de foco)
rank_math_canonical_url (Canonical URL)
				
			

📋 Pré-Requisitos

Antes de aplicar esta solução, você deve ter no seu WordPress:

1️⃣ Plugin oficial do Rank Math SEO instalado

  • O plugin seo-by-rank-math deve estar ativo.

2️⃣ Plugin personalizado desenvolvido neste artigo

  • O Rank Math API Manager Extended, que cria a extensão da REST API.

  • Como veremos abaixo, você mesmo pode criar o plugin facilmente.


🔬 O Processo de Pesquisa

Durante semanas pesquisei materiais, incluindo:

Essas referências foram essenciais para entender que:

  • É possível registrar os meta fields do Rank Math na REST API usando o hook register_post_meta.

  • É possível criar um endpoint personalizado usando o register_rest_route.


🔧 A Solução Técnica

A solução final foi criar um plugin próprio para WordPress, estendendo a API REST para incluir os campos desejados do Rank Math.

Assim, qualquer sistema externo (ex.: n8n, Zapier, Make, scripts próprios) pode consumir este endpoint para atualizar os metadados de SEO automaticamente.

🖥️ O Código Completo do Plugin

Crie um diretório no WordPress:

				
					wp-content/plugins/rank-math-api/
				
			

E dentro dele, o arquivo:

				
					rank-math-api.php

				
			

Com o seguinte código:

				
					<?php
/**
 * Plugin Name: Rank Math API Manager Extended
 * Description: Permite atualizar os metadados de SEO do Rank Math via REST API, incluindo a palavra-chave de foco.
 * Version: 1.1
 * Author: Hikelmy Henrich
 * License: MIT
 */

class Rank_Math_API_Manager_Extended {
    public function __construct() {
        add_action('rest_api_init', [$this, 'register_meta_fields']);
        add_action('rest_api_init', [$this, 'register_api_routes']);
    }

    public function register_meta_fields() {
        $meta_fields = [
            'rank_math_title' => 'Rank Math SEO Title',
            'rank_math_description' => 'Rank Math SEO Description',
            'rank_math_canonical_url' => 'Rank Math Canonical URL',
            'rank_math_focus_keyword' => 'Rank Math Focus Keyword'
        ];

        foreach ($meta_fields as $key => $description) {
            register_post_meta('post', $key, [
                'show_in_rest' => true,
                'single' => true,
                'type' => 'string',
                'auth_callback' => [$this, 'check_update_permission'],
                'description' => $description,
            ]);
        }
    }

    public function register_api_routes() {
        register_rest_route('rank-math-api/v1', '/update-meta', [
            'methods' => 'POST',
            'callback' => [$this, 'update_rank_math_meta'],
            'permission_callback' => [$this, 'check_update_permission'],
            'args' => [
                'post_id' => [
                    'required' => true,
                    'validate_callback' => function($param) {
                        return is_numeric($param) && get_post($param);
                    }
                ],
                'rank_math_title' => [
                    'type' => 'string',
                    'sanitize_callback' => 'sanitize_text_field',
                ],
                'rank_math_description' => [
                    'type' => 'string',
                    'sanitize_callback' => 'sanitize_text_field',
                ],
                'rank_math_canonical_url' => [
                    'type' => 'string',
                    'sanitize_callback' => 'esc_url_raw',
                ],
                'rank_math_focus_keyword' => [
                    'type' => 'string',
                    'sanitize_callback' => 'sanitize_text_field',
                ],
            ],
        ]);
    }

    public function update_rank_math_meta(WP_REST_Request $request) {
        $post_id = $request->get_param('post_id');
        $fields = ['rank_math_title', 'rank_math_description', 'rank_math_canonical_url', 'rank_math_focus_keyword'];
        $result = [];

        foreach ($fields as $field) {
            $value = $request->get_param($field);
            if ($value !== null) {
                $update_result = update_post_meta($post_id, $field, $value);
                $result[$field] = $update_result ? 'updated' : 'failed';
            }
        }

        if (empty($result)) {
            return new WP_Error('no_update', 'No metadata was updated', ['status' => 400]);
        }

        return new WP_REST_Response($result, 200);
    }

    public function check_update_permission() {
        return current_user_can('edit_posts');
    }
}

new Rank_Math_API_Manager_Extended();

				
			

🌐 O Novo Endpoint Criado

Agora o WordPress possui o seguinte endpoint:

				
					POST https://seudominio.com/wp-json/rank-math-api/v1/update-meta

				
			

🔐 Permissões

  • Apenas usuários autenticados com capacidade de edit_posts podem executar o endpoint.

  • A autenticação pode ser feita via:

    • Application Passwords do WordPress (recomendado)

    • JWT Auth plugins

    • OAuth (para ambientes empresariais)


⚙️ Exemplo de Requisição HTTP no n8n

No n8n, o node de HTTP Request deve conter:

  • Método: POST

  • URL: https://seudominio.com/wp-json/rank-math-api/v1/update-meta

  • Auth: Basic Auth (com Application Password)

  • Body (JSON):

				
					{
  "post_id": "1437",
  "rank_math_title": "Novo título SEO",
  "rank_math_description": "Descrição otimizada",
  "rank_math_canonical_url": "https://seudominio.com/post-canonical/",
  "rank_math_focus_keyword": "Palavra-chave principal"
}

				
			

Pronto: o SEO do post é atualizado via API.


🚀 Os Benefícios

  • ✅ Automatização de SEO em massa.

  • ✅ Integração com IA (ex: gerar títulos via GPT-4 ou Perplexity e atualizar o WordPress automaticamente).

  • ✅ Escalabilidade para grandes blogs, portais de notícias e e-commerces.

  • ✅ Liberdade total de personalização da automação.


💡 Por que disponibilizei isso publicamente?

Após todo esse trabalho, tomei a decisão de:

  • Publicar o conhecimento como conhecimento aberto (Open Knowledge).

Acredito que:

Quanto mais gente tiver acesso, mais melhorias serão criadas a partir desse ponto de partida.

Quem quiser, pode usar, adaptar, melhorar e redistribuir, mantendo a referência de autoria da modificação.


📚 Referências Técnicas


🎥 Vídeo Explicativo

📺 Para quem deseja entender em detalhes como identifiquei o problema, fiz a pesquisa, desenvolvi e testei a solução, preparei um vídeo completo mostrando todo o processo na prática.

🔗 [Clique aqui para assistir ao vídeo completo.] (em breve…)


🖋️ Conclusão pessoal

Durante o desenvolvimento dessa solução, aprendi que muitos dos limites que as ferramentas impõem são superáveis com:

  • Estudo da arquitetura.

  • Coragem para explorar o core do WordPress.

  • Desenvolvimento incremental e seguro.

Espero que este conhecimento ajude outros desenvolvedores, SEOs e profissionais de automação a criarem soluções ainda mais criativas.

Redes sociais

Me acompanhe nas redes sociais e fique por dentro de tudo o que compartilho por lá, em tempo real!

Links

Projects

Address

+1-(360) 416-7563

Phone Number

FelicitymcDowell@mail.com

Email Address

Copyright (c) 2025 Hikelmy Henrich. Todos os direitos reservados.