SEO suitesFree + Pro
The SEO Framework MCP, stored values beside what TSF prints
The SEO Framework generates most of a page's head by itself, so the useful question is where a post overrides it. The SEO Framework MCP integration answers that by returning each post's stored fields beside the title, description, canonical and robots TSF actually prints. It writes through TSF's own meta API, and every write can be undone without touching the post's content. GoBuildWP Free reads and sets a post's stored title, description and three-way robots; the rendered comparison, canonical, social fields, setup report and bulk writes are Pro.
Our older blog posts have hand-typed titles that no longer match the headline. For the pricing-changes post, let TSF generate the title again and show me what it prints.
wppilot/tsf-check-setupReadReturns the separator as printed, site-title placement and whether search engines are discouraged site-wide.
wppilot/tsf-get-post-seoReadShows the stored title override next to the title TSF renders now.
wppilot/tsf-update-post-seoWriteSends an empty title, which removes the override; the result lists what was stored, what changed and the newly rendered title.
- Edition
- Free 2 + Pro 1
- Abilities
- 3
- Requires
- WordPress 6.9+, PHP 8.0+
Abilities
The SEO Framework abilities by effect
Inspect2
Create and change1
Destructive0
None.
Reference: /docs/reference/seo-tsf
Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.
Read example: wppilot/tsf-get-post-seo
Discover this ability and its live schema first. The input below illustrates a bounded read from the source declaration; replace the example ID or name with an object returned by your site. It is not a recorded execution result.
| Parameter | Type and meaning |
|---|---|
post_id required | integer, at least 1 |
include_rendered | boolean, default true |
{
"post_id": 42
}Input and output schema from the plugin source
2 input fields. Required: post_id. Optional parameters can affect response size and object selection.
{
"input": {
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"minimum": 1
},
"include_rendered": {
"type": "boolean",
"default": true
}
},
"required": [
"post_id"
],
"additionalProperties": false
},
"output": {
"type": "object",
"properties": {
"post_id": {
"type": "integer"
},
"seo": {
"type": "object"
},
"rendered": {
"type": "object"
},
"unsupported": {
"type": "object"
}
},
"required": [
"post_id",
"seo"
]
}
}Source: wppilot-pro/includes/kits/seo-tsf/src/abilities/get-post-seo.php
A successful read should identify the requested object and expose the structure described by the output schema. Compare it with the native editor before proposing a change. Troubleshoot missing or refused operations.
Data model
_genesis_ keys and three-way robots
Per-post values are post meta named after TSF's Genesis roots: _genesis_title, _genesis_description, _genesis_canonical_uri, _genesis_noindex and _genesis_nofollow, plus _open_graph_, _twitter_ and _social_image_ keys. An empty value is not a blank title; it tells TSF to generate one.
Robots are stored as three-way values: 1 means noindex or nofollow, -1 overrides the defaults with index or follow (an eligibility setting, not a guarantee that search engines index the post), and 0 follows the site and post-type defaults. tsf-check-setup reports those defaults, the separator, which side the site title sits on and whether descriptions are generated automatically.
TSF's save routine rewrites every key it knows for the post, so GoBuildWP slashes values first (TSF's editor would strip backslashes) and snapshots all of those keys before writing. That snapshot is what rollback-change restores.
Limits
What The SEO Framework integration leaves alone
- TSF has no focus keyword in the free plugin, so none is read or written; its separate Focus extension is not covered.
- Only per-post fields are writable. Site-wide settings are reported by check-setup but not changed, and term SEO is not covered.
- TSF sanitises on save, stripping tags, collapsing whitespace and curling quotes, so compare the stored value the result returns with what was sent.
- Setting social_image_url clears the stored attachment id.
- Undo restores TSF fields only, never content, so an editor's later text changes survive it.
Worked example
Let TSF generate a title again
Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.
The post's head shows TSF's generated title built from its headline and site name, and the old override is kept for rollback-change. Free can clear the override the same way; the setup report and the rendered title in the reply come from Pro. For many posts, seo-bulk-update-meta applies the same write through TSF, with a dry run first.
tsf-check-setupReturns the separator as printed, site-title placement and whether search engines are discouraged site-wide.
tsf-get-post-seoShows the stored title override next to the title TSF renders now.
tsf-update-post-seoSends an empty title, which removes the override; the result lists what was stored, what changed and the newly rendered title.
Site-title suffixes, per-post index overrides and the bulk shape
Why TSF titles end up with the brand name twice
The most common mistake in The SEO Framework MCP work is a title like "Pricing | Acme | Acme". TSF builds the printed title from the stored title plus its separator and the site title, on whichever side the settings choose, unless the site has removing the site title switched on. An agent that writes the brand into the stored title, the way it might for another plugin, doubles it. tsf-check-setup reports the separator as printed, which side the site title goes on and whether it is removed, so the agent should read that once per task and leave the brand out of every title it stores.
The same check matters for length. A stored title that looks fine at 55 characters can print at 70 once TSF adds the separator and site name. tsf-get-post-seo returns the rendered title next to the stored one, which is the number to judge, and that comparison is part of GoBuildWP Pro; GoBuildWP Free sets and reads the stored fields.
Letting one post out of a noindexed post type
TSF's three-way robots value gives it something several SEO plugins lack: a post can override its post type's noindex default. robots_index index stores TSF's override value (TSF labels it force index), default follows the site and post-type settings, and noindex asks search engines to leave the post out. The override changes only the robots directive TSF prints: it removes the noindex, which makes the post eligible for indexing, and search engines still decide whether to crawl and index it. robots_follow works the same way for links. That makes TSF the easier plugin for a site that keeps a resources post type out of search except for a handful of cornerstone guides.
Two settings still win. If search engines are discouraged for the whole site, an index override on one post does not undo that, and tsf-check-setup says so. And an override is easy to forget: when the post type's policy changes later, the overridden posts keep their own setting. Ask the agent to list posts with a non-default robots value before changing a post type's defaults in TSF's settings.
Canonical overrides are the other per-post field that deserves care. An empty canonical lets TSF print the post's own URL, which is right for almost every page. Set one only when the same content really lives at another address, such as an article republished from a partner's site, and read the rendered canonical afterwards to confirm TSF printed the URL you meant.
Bulk title and description passes through the tsf provider
For many posts, seo-bulk-get-meta and seo-bulk-update-meta work with provider tsf. The bulk read leaves the focus keyword empty for every TSF post, since the plugin has none, and the duplicate_titles filter compares stored overrides or post titles before TSF adds its suffix. The bulk write covers title, description, canonical, robots and the Open Graph title and description; it has no Twitter fields and no social image, so those stay with tsf-update-post-seo, one post at a time.
As with every bulk SEO write, the dry run shows each post's before and after, the real run needs confirm, and each post gets its own ledger row holding its TSF meta. A bulk pass that turns out wrong on five posts can be rolled back on those five alone.
Descriptions TSF writes by itself, and when to override
tsf-check-setup also reports whether TSF generates descriptions automatically. When it does, a post with no stored description still prints one, built from its content, and the missing_description filter in the bulk read lists posts without an override, not pages without a description. Override where the generated text reads badly in search results; leave the rest to TSF so later content edits keep flowing through. None of the TSF abilities is destructive, so on Production Safe single-post writes can run subject to per-ability and approval policy, and on Read Only the whole audit still runs. The TSF reference lists the fields.
- "Read only: which posts store a title that already contains our site name?"
- "Override the noindex default on the three guides in the resources post type and show me the rendered robots for each."
- "Dry-run new descriptions for posts whose generated description starts with a shortcode or a caption."
Questions
The SEO Framework questions
Does The SEO Framework store a focus keyword GoBuildWP can use?
No. The free plugin has none, and bulk reads return that field empty for a TSF site rather than inventing a value.
What does robots_index default mean on The SEO Framework?
Follow the site and post-type settings. index overrides that plugin's noindex default for the post; noindex requests exclusion. These values control the rendered robots directive. They cannot guarantee that Google crawls or indexes the URL.
Will an undo overwrite my editor's changes?
Post content is not part of the snapshot, so it survives. Undo restores the captured TSF meta from before the write and overwrites any later edits to those same meta fields.
Where these facts come from
GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.
The SEO Framework is a separate product; no partnership or endorsement is implied.