30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

Update Term SEO

taxonomies/update-term-seo writes Yoast SEO fields on one taxonomy term. Omitted fields keep their values.

It goes through WPSEO_Taxonomy_Meta::set_values(), which matters more than it sounds.

At a glance

Abilitytaxonomies/update-term-seo
ToolsetYoast SEO — toolset/yoast-seo
GroupYoast SEO › Term SEO
RequiresYoast SEO, active on the site
Capabilitymanage_options
SafetyWrites data
RepeatableIdempotent — running it twice leaves the same result
Ships inAcrossAI Abilities Manager 0.0.34 and later

Why the writer matters

Yoast stores term SEO in a single wpseo_taxonomy_meta option keyed by taxonomy and term, not in term meta. Anything reading term meta finds nothing, and anything writing term meta is writing somewhere Yoast never looks.

The option is a nested array keyed by taxonomy and then by term ID, and writing it by hand means reconstructing that structure correctly. Get it wrong — write a flat key, or drop the taxonomy level — and Yoast reads nothing while the option looks populated.

Worse, writing the whole option to set one term’s title discards every other term’s SEO on the site if the existing structure was not read and merged first. That is a one-line mistake with site-wide consequences.

Yoast’s own writer handles the structure and runs per-key sanitisation, which also matters — the canonical is validated as a URL, the noindex flag is normalised, and the values that come back out are the ones Yoast expects to see.

Partial by default: send the one field that changed.

Idempotent.

Input

NameTypeRequiredWhat it is
taxonomystringYesThe taxonomy.
term_idintegerYesThe term.
seo_titlestringNoSEO title. Template variables are allowed.
meta_descriptionstringNoMeta description.
focus_keyphrasestringNoFocus keyphrase.
canonicalstringNoCanonical URL.
breadcrumb_titlestringNoWhat the term shows in a breadcrumb trail.
noindexbooleanNoWhether the term archive is excluded from search.
is_cornerstonebooleanNoWhether the term is cornerstone.

What comes back

NameTypeWhat it is
term_seoobjectThe term’s SEO fields after the write.
successbooleanWhether the call completed.
messagestringA one-line summary of what happened, suitable for showing a human.
error_codestringPresent 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:

Add a meta description to the Guides category.

It resolves to one call:

{
  "ability": "taxonomies/update-term-seo",
  "parameters": {
    "taxonomy": "category",
    "term_id": 87,
    "meta_description": "Step-by-step guides to getting set up."
  }
}

Worth knowing

  • Writing the option by hand can discard every other term’s SEO on the site.
  • Partial — omitted fields keep their values.
  • Sanitisation runs per key, so values come back in the form Yoast expects.
  • Idempotent.

Related abilities


Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager

Browse the rest: Every ability, by category


Keep reading