Du möchtest die SEO-Felder von Rank Math (Titel, Meta-Beschreibung, Focus-Keyword) automatisch per API setzen – zum Beispiel mit einem Tool, Skript oder MCP Server? Standardmäßig sind diese Felder in der WordPress REST API versteckt. Mit einem kleinen PHP-Snippet kannst du das schnell ändern.
Das Problem
Rank Math speichert seine SEO-Daten als sogenannte „protected meta“ – also geschützte Metafelder. WordPress blendet diese Felder automatisch aus der REST API aus. Das bedeutet: Externe Tools können die Werte weder lesen noch schreiben.
Die Lösung: Metafelder registrieren
Mit der WordPress-Funktion register_meta() kannst du einzelne Felder explizit für die REST API freischalten. Das erledigt ein kurzes PHP-Snippet, das du einmalig einrichtest.
Bonus: Headless-CMS-Modus aktivieren (für HTML-Meta-Tags per API)
Rank Math bietet eine zusätzliche Funktion speziell für Headless-Setups: Wenn du diese Option aktivierst, registriert Rank Math einen eigenen REST-API-Endpunkt, der die fertigen HTML-Meta-Tags für eine bestimmte URL zurückgibt – so wie sie auch im <head> deiner Seite erscheinen würden.
So aktivierst du die Option:
- Gehe zu Rank Math SEO → Allgemeine Einstellungen
- Klicke auf den Tab „Andere“
- Aktiviere die Option „Unterstützung für Headless-CMS“
- Speichern
Was das freischaltet:
Danach ist folgender Endpunkt verfügbar:
GET https://deine-seite.de/wp-json/rankmath/v1/getHead?url=https://deine-seite.de/mein-beitrag/
Die Antwort enthält alle generierten Meta-Tags als fertiges HTML – inklusive Title-Tag, Meta-Description, Open-Graph-Tags und mehr:
{
"head": "<title>Mein SEO-Titel</title>\n<meta name=\"description\" content=\"Meine Beschreibung\" />\n<meta property=\"og:title\" content=\"Mein SEO-Titel\" />\n..."
}
Das ist besonders nützlich für Headless WordPress-Setups mit Next.js, Nuxt oder anderen Frontend-Frameworks, die die Meta-Tags selbst ins HTML einbauen müssen.
Schritt 1: WPCode Plugin installieren
Am sichersten geht das mit dem kostenlosen Plugin WPCode – Insert Headers and Footers. Es erlaubt dir, PHP-Code einzufügen, ohne die Theme-Dateien zu bearbeiten.
- Gehe zu Plugins → Installieren
- Suche nach WPCode
- Installieren und aktivieren
Schritt 2: PHP-Snippet hinzufügen
- Gehe zu WPCode → + Add Snippet
- Wähle „Add Your Custom Code (New Snippet)“
- Setze den Typ auf PHP Snippet
- Füge folgenden Code ein:
add_action('rest_api_init', function() {
$rankmath_fields = [
'rank_math_title',
'rank_math_description',
'rank_math_focus_keyword',
'rank_math_robots',
'rank_math_canonical_url',
];
foreach ($rankmath_fields as $field) {
register_meta('post', $field, [
'show_in_rest' => true,
'single' => true,
'type' => 'string',
'auth_callback' => function() {
return current_user_can('edit_posts');
},
]);
}
});
- Stelle sicher, dass der Status auf Active steht
- Klicke auf Save Snippet
Schritt 3: Testen
Öffne folgende URL in deinem Browser (während du im WordPress-Backend eingeloggt bist):
https://deine-seite.de/wp-json/wp/v2/posts/BEITRAG-ID?_fields=meta
Wenn du im zurückgegebenen JSON-Objekt die Felder rank_math_title, rank_math_description und rank_math_focus_keyword siehst, hat alles geklappt.
Welche Felder werden freigeschaltet?
| Feld | Beschreibung |
|---|---|
rank_math_title |
SEO-Titel (erscheint im <title>-Tag) |
rank_math_description |
Meta-Beschreibung (Google-Snippet-Text) |
rank_math_focus_keyword |
Focus-Keyword für die SEO-Analyse |
rank_math_robots |
Robots-Direktiven (z.B. noindex) |
rank_math_canonical_url |
Canonical URL |
Felder per API setzen
Sobald das Snippet aktiv ist, kannst du die Felder beim Erstellen oder Aktualisieren eines Beitrags direkt mitschicken – zum Beispiel so:
PATCH /wp-json/wp/v2/posts/123
{
"meta": {
"rank_math_title": "Mein SEO-Titel",
"rank_math_description": "Meine Meta-Beschreibung für Google.",
"rank_math_focus_keyword": "mein keyword"
}
}
Wichtiger Hinweis
Das Snippet stellt sicher, dass nur eingeloggte Nutzer mit der Berechtigung edit_posts die Felder über die API schreiben können. Unbefugter Zugriff ist damit ausgeschlossen.