GoBuildWP

SEO suitesFree + Pro

SmartCrawl MCP for per-post meta and paired robots flags

SmartCrawl, from WPMU DEV, keeps per-post SEO in _wds_ post meta and decides the printed robots tag from paired flags and post-type defaults. This SmartCrawl MCP integration writes those fields the way SmartCrawl's editor does (title, description, canonical, robots, up to three focus keywords, Open Graph and X text and images), then reports what SmartCrawl now prints. Each write is undoable, on SmartCrawl's free build and on its Pro. GoBuildWP Free sets the title, description and robots flags; focus keywords, canonical, social fields and the printed view need GoBuildWP Pro.

AI clientyour-site.comVerify site policy

Our Resources post type is noindexed in SmartCrawl, but the Buyer's Guide in it should be in search, with 'buyer's guide' as its focus keyword.

  1. wppilot/smartcrawl-check-setupRead

    Confirms the onpage module is on and that Resources is noindexed by default.

  2. wppilot/smartcrawl-get-post-seoRead

    Shows the stored flags and the robots value SmartCrawl prints now, which is noindex.

  3. wppilot/smartcrawl-update-post-seoWrite

    Sets robots_index to index, the only value that changes anything on this post type, and a one-item focus_keywords list; returns what SmartCrawl now prints.

Proposed sequence from source declarations; not a recorded task or proof of client compatibility. Inspect saved state and browser or provider results separately.
Edition
Free 2 + Pro 1
Abilities
3
Requires
WordPress 6.9+, PHP 8.0+

Data model

_wds_ meta, paired flags and module switches

Titles, descriptions and canonicals are _wds_title, _wds_metadesc and _wds_canonical; macros such as %%title%% and %%sep%% are kept as written and expanded when SmartCrawl prints. Focus keywords are one _wds_focus-keywords value holding at most three, and social overrides are arrays in _wds_opengraph and _wds_twitter.

Robots use pairs of flags: _wds_meta-robots-noindex with its -index twin, and -nofollow with -follow. On a post type SmartCrawl noindexes by default it reads only the index flag; elsewhere only the noindex one. GoBuildWP keeps at most one flag of each pair so the stored state never contradicts itself.

Site behaviour sits in wds_settings_options, which switches modules such as onpage titles, social, sitemap and schema, and in wds_onpage_options, which holds the separator, templates and post-type robots. GoBuildWP reads these but does not write them, and never returns service or IndexNow keys.

Worked example

Allow indexing for one post in a noindexed post type

Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.

The Buyer's Guide prints index while the rest of its post type inherits the noindex directive; actual search exclusion is separate, and its focus keyword feeds SmartCrawl's analysis. rollback-change restores the post's previous SmartCrawl meta if the decision is reversed.

Allowing indexing changes the requested robots directive; inspect the rendered head. It does not guarantee that a search engine indexes this post.

  1. smartcrawl-check-setup

    Confirms the onpage module is on and that Resources is noindexed by default.

  2. smartcrawl-get-post-seo

    Shows the stored flags and the robots value SmartCrawl prints now, which is noindex.

  3. smartcrawl-update-post-seo

    Sets robots_index to index, the only value that changes anything on this post type, and a one-item focus_keywords list; returns what SmartCrawl now prints.

Limits

SmartCrawl limits

  • Titles and descriptions print only while SmartCrawl's onpage module is on, so check it before trusting a title change.
  • focus_keywords replaces the whole list: at most three, no commas, the first being the focus keyword.
  • On a post type SmartCrawl noindexes by default, only an explicit index changes anything; noindex there matches what already prints.
  • Undo restores the SmartCrawl keys GoBuildWP writes for that post and nothing else; module settings and templates are read-only.
  • og_images and twitter_images replace their lists and take image URLs or attachment ids.

Abilities

SmartCrawl abilities by effect

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/smartcrawl-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.

ParameterType and meaning
post_id requiredinteger, at least 1
include_renderedboolean, 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"
      }
    },
    "required": [
      "post_id",
      "seo"
    ]
  }
}

Source: wppilot-pro/includes/kits/seo-smartcrawl/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.

Module switches, keyword order and social overrides

Reading SmartCrawl's module map before blaming a write

A SmartCrawl MCP write can succeed and still change nothing on the page, because SmartCrawl prints each kind of tag only while the module behind it is switched on. smartcrawl-check-setup reports six of them: onpage for titles and descriptions, social for Open Graph and X tags, sitemap, schema, autolinks and instant indexing. A new og_title stored while social is off sits in _wds_opengraph and never reaches the head; a new title stored while onpage is off leaves whatever the theme prints. The check also reports whether the installed build is SmartCrawl's free or Pro edition and whether search engines are discouraged for the whole site, which outranks any per-post flag.

Modules are SmartCrawl settings held in wds_settings_options, which GoBuildWP reads and never writes, so switching one on is done in SmartCrawl's own dashboard. The same read is a quick answer to "why does the X preview ignore my text?" before anyone edits a post.

The follow flags pair up the same way as the index flags. robots_follow takes default, follow or nofollow, and on a post type SmartCrawl nofollows by default only an explicit follow changes what prints. smartcrawl-check-setup lists which post types are nofollowed by default, so the agent knows which value is the meaningful one before it writes.

Three focus keywords, and why their order matters

SmartCrawl stores up to three keywords per post in one value, and the first one is the focus keyword its analysis works against. smartcrawl-update-post-seo replaces the whole list, so adding a secondary keyword means sending the existing focus keyword first and the new one after it. A comma inside a keyword is refused, since the list itself is comma-joined. Focus keywords are a GoBuildWP Pro field on this integration.

The plugin-neutral bulk ability behaves differently on purpose: with provider smartcrawl, seo-bulk-update-meta's focus_keyword replaces only the first keyword and leaves the other two in place. That suits a bulk pass that re-targets each post's main phrase. To rewrite secondary keywords as well, use the single-post ability, one post at a time.

Open Graph and X overrides that differ from the SEO title

Unlike some SEO plugins, SmartCrawl keeps social text separate from search text. og_title and og_description, twitter_title and twitter_description can each say something different from the meta title, which is useful when a page's search title is keyword-led but its share card should read like a headline. og_images and twitter_images accept image URLs or attachment ids and replace the whole list, so adding a second image means sending the first one again.

Macros work in these fields as in the title: %%title%%, %%sep%%, %%sitename%% and %%excerpt%% are stored as written and expanded when SmartCrawl prints. The rendered block of smartcrawl-get-post-seo shows the expanded result, which is the part worth checking before a launch. Social networks cache share cards, so confirm a changed image with the network's own preview tool.

What the agent leaves to SmartCrawl and to WPMU DEV

Instant indexing, the sitemap, autolinks, schema settings and templates are configured in SmartCrawl. GoBuildWP does not submit URLs to IndexNow and never returns the IndexNow or service keys stored in SmartCrawl's options. Whether SmartCrawl's own instant indexing reacts to a meta-only change made through the agent is something to confirm on your site rather than assume.

No SmartCrawl ability is destructive. On Read Only, the agent can audit modules, templates and any post; on Production Safe, writes apply for a user who can manage options and each one can be put back with rollback-change. The SmartCrawl reference lists every field.

  • "Read only: are SmartCrawl's onpage and social modules on, and which post types are nofollowed by default?"
  • "Give the webinar page a share title and description written for LinkedIn, separate from its SEO title."
  • "Add 'pricing calculator' as a second keyword on the pricing page without changing its focus keyword."

Questions

SmartCrawl questions

Does the SmartCrawl integration work with SmartCrawl's free build?

Yes, with both builds; smartcrawl-check-setup, a GoBuildWP Pro ability, reports which one is installed. The index flag set in the example above is also within GoBuildWP Free's smartcrawl-update-post-seo; the focus keyword is not.

Why did setting noindex on a SmartCrawl post change nothing?

If the post type is already noindexed by default, SmartCrawl looks only at the index flag, so noindex matches what it already prints.

Can SmartCrawl edits be made across many posts?

Yes. The plugin-neutral bulk SEO abilities use SmartCrawl as a provider, with a dry run that shows each post's before and after and a ledger row per post.

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.

SmartCrawl is a separate product; no partnership or endorsement is implied.

Try it on SmartCrawl in Read Only first