rank-math/update-seo-meta writes the Rank Math SEO metadata for one post: title, meta description, focus keyword, robots directives, canonical URL and the pillar and cornerstone flags.
The encoding is the reason this exists rather than a generic meta write.
At a glance
| Ability | rank-math/update-seo-meta |
| Toolset | Rank Math — toolset/rank-math |
| Group | Rank Math › Content SEO |
| Requires | Rank Math SEO, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
The encodings that catch people out
Rank Math stores robots directives as a list, not as separate boolean fields. Writing noindex as true in its own key produces meta that Rank Math does not read and a post that is still indexed.
The pillar and cornerstone flags are stored by presence rather than by value. A key set to false is still present, and Rank Math reads presence — so the flag is on when the writer believed they had turned it off.
Both of those are silent. The meta is written, the admin may even render it correctly, and the behaviour is wrong. Going through this ability means the encoding matches what Rank Math reads.
The canonical is the third field worth care. Setting one on a post that does not need it is the standard way to make a page invisible to search — a canonical pointing elsewhere tells Google this page is a duplicate.
Read the current values with Rank Math’s own rank-math/get-post-seo-meta. Rank Math ships abilities of its own, and this suite deliberately does not duplicate them. Where one already answers a question well, these pages point at it rather than offering a second version that behaves slightly differently.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
post_id | integer | Yes | The post ID. |
title | string | No | SEO title. Template variables are allowed. |
description | string | No | Meta description. |
focus_keyword | string | No | The focus keyword. |
robots | array | No | Robots directives as a list, for example ["noindex", "nofollow"]. |
canonical | string | No | Canonical URL. |
pillar | boolean | No | The pillar/cornerstone flag. |
What comes back
| Name | Type | What it is |
|---|---|---|
post_id | integer | The post written. |
updated | array | Which fields changed. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Set the SEO title and description on post 412.
It resolves to one call:
{
"ability": "rank-math/update-seo-meta",
"parameters": {
"post_id": 412,
"title": "%title% | %sitename%",
"description": "A short, specific description of this page."
}
}Worth knowing
- Robots directives are a list. Writing them as booleans does nothing.
- The pillar flag is stored by presence, not by value.
- A canonical pointing elsewhere removes the page from search. Set it deliberately.
- Idempotent.
Related abilities
- Bulk Update Rank Math Meta — the same fields across many posts
- Get Rank Math Rendered Head — verify what actually renders
- Audit Rank Math Content SEO — find what needs writing
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category