All commands live under wp visibility. Run wp help visibility for the list and wp help visibility <command> for any one. Add WP-CLI’s global --user=<admin login> to every command that writes, so it runs as a real administrator and the review queue can record who approved, rejected or reverted a proposal. Sources, checked September 27, 2026: wp help and WP-CLI global parameters.
Audit and inspect
audit checks five site settings and prints four counts. What each check means.
wp visibility audit [--format=table|csv|json|yaml|count]
post-audit <id> checks one post: title and description length, noindex, canonical host, word count, social image, H1 count.
wp visibility post-audit 42
get <id> prints the post’s stored SEO fields with the defaults filled in. A field that was never set shows its empty default, not the template output.
wp visibility get 42 --format=json
Change a post
set <id> changes the title, description, indexing or canonical of one post. An empty value resets that field.
wp visibility set 42 --title="Pricing and Plans" --description="What each plan includes."
wp visibility set 42 --noindex=1 # 1 noindex, 0 inherit the site rule, -1 force index
wp visibility set 42 --canonical="https://example.com/original/"
wp visibility set 42 --title="" # back to the template
Social, schema and redirect fields are edited in the editor sidebar.
Settings
settings get [<key>] and settings set <key> <value> read and write any setting. Values are parsed as JSON when they are valid JSON, so lists and objects are written as JSON. A saved license key prints as (redacted).
wp visibility settings get
wp visibility settings get separator
wp visibility settings set noindex_search true
wp visibility settings set modules '{"redirects":true}'
wp visibility settings set sitemap_excluded_types '["testimonial"]'
Import from another plugin
import <source> [--dry-run], where <source> is yoast, rank-math, seopress, tsf or aioseo. Always preview first. The source plugin’s data is never changed.
wp visibility import yoast --dry-run --user=admin
wp visibility import yoast --user=admin
Per-source detail: Yoast, Rank Math, SEOPress, The SEO Framework, All in One SEO.
Review queue
proposals <list|approve|reject|revert> [<id>] [--status=<status>] needs the Autopilot module. --status is one of pending, approved, rejected, applied, reverted, failed or stale. list shows up to 100 rows. Approving a bulk proposal skips every post the approving user cannot edit, so pass --user.
wp visibility proposals list --status=pending
wp visibility proposals approve 123 --user=admin
wp visibility proposals revert 123 --user=admin
The assistant
agent <log|pause|resume|verify-log> [--limit=<n>] needs the Assistant connection module. log shows the latest 50 calls (up to 500). pause stops every ability until someone resumes. verify-log checks that the log’s hash chain is intact.
wp visibility agent log --limit=20
wp visibility agent pause
wp visibility agent verify-log
mcp-config prints the client configuration for the bridge with the --user login filled in (your-username when no user is set), then the direct endpoint address. In 2.10.3 the printed WP_API_URL is the site’s home address; replace it with https://your-site.com/wp-json/wp-visibility/mcp. It does not create a user or a password, so create the user first.
wp visibility mcp-config --user=seo-agent
Internal links
links <orphans|hubs|rebuild|suggest> [<id>] needs the Link Graph module. Run rebuild once before orphans. The link report.
wp visibility links rebuild
wp visibility links orphans --limit=50
wp visibility links suggest 42
AI Traffic Lens
lens [--days=<n>] needs the AI Traffic Lens module and prints AI crawler visits and assistant referrals for the last 30 days by default, 7 to 365.
wp visibility lens --days=90
License, caches, privacy
wp visibility license status
wp visibility license activate WPV-XXXX-XXXX-XXXX
wp visibility license deactivate # removes the key; the plugin keeps working, updates stop
wp visibility flush # marks cached sitemaps stale; each rebuilds on its next request
wp visibility privacy --format=json # the privacy manifest
license activate with no key uses the WPVISIBILITY_LICENSE constant from wp-config.php when it is defined.
Commands checked against WP Visibility 2.10.3.