Pro module2 also in Free3 abilities

The SEO Framework ability reference

Reference for the GoBuildWP Pro 1.12.4 and Free 1.18.6 source. Installed schemas and policy remain authoritative.

This The SEO Framework ability reference covers reading one post's TSF settings side by side with what TSF prints in the page head, changing them through TSF's own post meta API with an undo, and checking the site settings that decide a title's separator and a post type's default robots.

Read-only, write and destructive groups describe the source annotations. They do not establish a minimum safety profile, human approval or undo support. Those controls are separate: check the installed ability, the connected user and the active site policy before calling it. A read can still return sensitive data. These pages are not evidence that every operation passed an end-to-end runtime test.

What The SEO Framework needs before these load

2 of the 3 also ship in GoBuildWP Free 1.18.6 under the same names, marked “Also in GoBuildWP Free” below. They need no GoBuildWP Pro licence, but each retains its own dependency, feature and permission checks. Where Free's copy does less, its own description follows Pro's. When Pro's richer copy passes its gates, it registers first and answers.

The SEO Framework must be active: the module registers when both the THE_SEO_FRAMEWORK_VERSION constant and the tsf() function exist. There is no version floor. The kit was checked against The SEO Framework 5.1.4 and reaches each TSF API through a chain of accessors, so a release that moves one answers tsf_api_missing instead of a fatal error. Calls need GoBuildWP's permission (manage_options, or super admin on multisite) and edit_posts, plus edit_post on the post, or tsf_forbidden. Revisions and auto-drafts return tsf_post_not_found. The free plugin's get and update read and write the stored title, description and robots only; the rendered values, canonical, social fields and tsf-check-setup need a Pro licence.

The SEO Framework editions
free

TSF rewrites the whole set on every save

TSF's save_meta() writes every key listed by its get_default_meta(), from _genesis_title and _genesis_description to the _open_graph_, _twitter_ and _social_image_ keys, and deletes the ones left empty. The kit therefore reads the full stored set, changes the requested fields and hands the complete set back, and its before-image covers every one of those keys rather than just the fields sent. wppilot/rollback-change puts all of them back without touching the post's content or unrelated meta.

Because the values pass through update_post_meta(), which strips a level of slashes, the kit slashes the whole set first. Without that, each write would drop the backslashes from every TSF field of the post, including fields the call never mentioned. Changing social_image_url also resets _social_image_id to 0, since the stored attachment id belonged to the previous image.

Robots stored as three-way switches

_genesis_noindex and _genesis_nofollow each hold 1 to force the restriction, -1 to force an index or follow directive, and 0 to follow the site and post-type settings. The kit exposes them as default, index or noindex and default, follow or nofollow. A post type listed under noindex_post_types in the setup report gives its posts a noindex directive while they are on default. A directive only allows or asks to stop indexing; it does not make a search engine index the page.

When the plugin-neutral bulk calls drive TSF under the provider name tsf, a forced follow reads as plain follow, and sending follow clears an existing nofollow instead of writing a forced follow the post never had.

What TSF adds around your title

The read returns seo, what the post stores (an empty string means TSF generates that value), and rendered, taken from TSF's own title, description, canonical, robots, Open Graph and Twitter generators. The setup call reports the separator as printed along with its setting name, which side the site title goes on, whether title_rem_additions strips it, whether descriptions are generated automatically, and the sitemap URL. Write the bare title and check rendered.title afterwards rather than typing the site name in yourself.

Example The SEO Framework input: wppilot/tsf-get-post-seo

This one operation declares the 2 top-level input parameters below in wppilot-pro/includes/kits/seo-tsf/src/abilities/get-post-seo.php; post_id is required. Other calls in this module take different arguments. Nested schemas and constraints are not expanded here; the complete live schema a connected client discovers is authoritative.

ParameterType and meaning
post_idrequiredinteger
include_renderedboolean

Representative call sequence

This sequence describes the documented calls and checks to perform. It is not a recorded result from an installed WordPress site. Inspect returned errors and partial results, then verify the saved values and affected output before proceeding.

Shorten a post's SEO title without the site name appearing twice.

  1. 01 wppilot/tsf-check-setup Reports the printed separator, the site title's position and whether TSF removes it, so the agent knows what TSF will add.
  2. 02 wppilot/tsf-update-post-seo Sent post_id and a bare title; returns the fields that changed and rendered.title as TSF will print it.
  3. 03 wppilot/rollback-change If the editor prefers the old wording, restores every TSF key on the post from the before-image.

Questions about The SEO Framework

Can I set a focus keyword on a site running The SEO Framework?

No. The free plugin has no focus keyword field; it belongs to TSF's paid Extension Manager, and the read lists it under unsupported so an agent does not invent one.

Why does the stored title differ slightly from what I sent?

TSF sanitises on save: tags are stripped, whitespace collapsed and quotes curled. The update response shows the value as stored.

The SEO Framework reads

AbilityWhat it does
wppilot/tsf-check-setupThe SEO Framework SetupWhether The SEO Framework is active, its version, and the site-wide settings that decide what a post's title and robots tags become when the post sets nothing itself: the title separator as printed and its setting name, which side the site title goes on and whether it is removed, whether descriptions are generated automatically, which post types and taxonomies are noindexed or nofollowed by default, whether search engines are discouraged site-wide, and whether TSF's sitemap is on (with its URL). Also says that TSF has no focus keyword. Read-only; returns no other settings.
wppilot/tsf-get-post-seoGet Post SEO (The SEO Framework)Also in GoBuildWP FreeOne post's The SEO Framework settings. "seo" is what the post stores (empty string = no override, TSF generates it): title, description, canonical, robots_index (default | index | noindex), robots_follow (default | follow | nofollow), og_title, og_description, twitter_title, twitter_description, social_image_url, social_image_id. "rendered" is what TSF prints in the page head right now, from its own generators: title, description, canonical, robots, Open Graph and Twitter title/description. TSF has no focus keyword. Pass include_rendered=false to skip the generated values.

In GoBuildWP Free: Reads one post's The SEO Framework meta title, meta description and robots as the post stores them. An empty title or description means TSF generates one. robots_index is default (follow the site and post type settings), index (forced) or noindex; robots_follow is default, follow (forced) or nofollow.

The SEO Framework writes

AbilityWhat it does
wppilot/tsf-update-post-seoUpdate Post SEO (The SEO Framework)Also in GoBuildWP FreeSets one post's The SEO Framework fields through TSF's own post meta API. Send only the fields to change. An empty string clears a text field so TSF generates it again. robots_index: default (follow the site and post-type settings) | index (force index) | noindex; robots_follow: default | follow | nofollow. Setting social_image_url also clears the stored image attachment id. TSF sanitizes on save (tags stripped, whitespace collapsed, curly quotes), so the result returns what was stored, the fields that changed, and what TSF now renders. Recorded in the change ledger with a before-image of the post's TSF meta only; wppilot/rollback-change restores it without touching the post's content.

In GoBuildWP Free: Sets one post's The SEO Framework meta title, meta description and robots through TSF's own post meta API. Send only the fields to change; an empty string clears a title or description so TSF generates it. robots_index: default | index | noindex; robots_follow: default | follow | nofollow (index and follow force the directive, default follows the site and post type settings). Returns the fields that changed and the re-read values. TSF rewrites all of a post's SEO meta on every save, so the change log keeps a before-image of all of it; wppilot/rollback-change restores that.

For the task-level view of The SEO Framework, with worked requests and what to check afterwards, see The SEO Framework integration page.