rank-math/update-seo-scores stores Rank Math SEO scores for a batch of posts.
It exists because Rank Math computes scores in the browser and nowhere else.
At a glance
| Ability | rank-math/update-seo-scores |
| 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 |
Client-side scoring, and what that means
The Rank Math score you see beside a post is calculated by JavaScript in the editor. There is no server-side scorer — so a post that has never been opened in the editor since Rank Math was installed has no score at all, and appears in every score filter as unscored.
That is why a site can show hundreds of posts with no score despite the content being perfectly good. Nothing has ever opened them.
Rank Math’s own rank-math/analyze-post-content ability can produce a score programmatically. This is the other half: persisting it, so it shows up in the score filters, the reports and the audit.
Scores must be 0 to 100. Rows that are missing, unauthorised or out of range come back as skipped with a reason rather than being silently dropped.
Idempotent — storing the same score twice changes nothing.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
scores | array | Yes | One entry per post: its ID and a score from 0 to 100. |
What comes back
| Name | Type | What it is |
|---|---|---|
applied | array | The scores that were stored. |
skipped | array | Rows that were not, each with a reason. |
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:
Store the scores we just calculated for these posts.
It resolves to one call:
{
"ability": "rank-math/update-seo-scores",
"parameters": {
"scores": [
{ "post_id": 412, "score": 78 },
{ "post_id": 413, "score": 64 }
]
}
}Worth knowing
- Rank Math has no server-side scorer. An unscored post has simply never been opened.
- Scores are 0–100. Out-of-range rows are skipped with a reason.
- Pair with Rank Math’s own analysis ability to produce the number.
- Idempotent.
Related abilities
- Audit Rank Math Content SEO — where the scores are used
- Get Cached Rank Math SEO Analysis — the site-level analysis
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category