---
name: pp-rankmath
description: "Rank Math SEO from the terminal: bulk meta edits, site-wide SEO audits, Search Console analytics, and IndexNow — with no bridge plugin. Trigger phrases: `audit SEO titles on my WordPress site`, `update Rank Math meta description`, `submit changed posts to IndexNow`, `which posts are not indexed`, `use rankmath`, `run rankmath-pp-cli`."
author: "ElizabethcStone"
license: "Apache-2.0"
argument-hint: "<command> [args] | install cli|mcp"
allowed-tools: "Read Bash"
metadata:
  openclaw:
    requires:
      bins:
        - rankmath-pp-cli
    install:
      - kind: go
        bins: [rankmath-pp-cli]
        module: github.com/mvanhorn/printing-press-library/library/marketing/rankmath/cmd/rankmath-pp-cli
---
<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/marketing/rankmath/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Rank Math — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `rankmath-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install rankmath --cli-only
   ```
2. Verify: `rankmath-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.9 or newer). This installs into `$GOPATH/bin` (default `$HOME/go/bin`), so add that directory to `$PATH` instead:

```bash
go install github.com/mvanhorn/printing-press-library/library/marketing/rankmath/cmd/rankmath-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

Talks to Rank Math's own REST routes on your WordPress site using a WordPress application password. Adds a local store so audit, coverage, and reindex can answer site-wide questions that the Rank Math admin answers one post at a time.

## When to Use This CLI

Use this CLI when an agent or operator needs to read or change Rank Math SEO data on a WordPress site: auditing titles and descriptions site-wide, bulk-updating SEO meta, reading Search Console analytics that Rank Math has collected, or submitting changed URLs to IndexNow.

## Anti-triggers

Do not use this CLI for:
- Editing post content, blocks, or Elementor layouts — use the WordPress REST API or Elementor tooling
- Generating SEO copy with an LLM — this CLI writes the values you give it
- Managing Yoast, AIOSEO, or SEOPress sites
- Raw Google Search Console queries beyond what Rank Math stores — use a Search Console client

## Unique Capabilities

### Site-wide SEO health
- **`audit`** — One list of every synced post with a missing or duplicate SEO title or description, long title, canonical problem, accidental noindex, or no schema. Works on public pages without credentials; run sync first.

  _Reach for this before any bulk meta edit to get a structured fix list instead of scraping pages one by one._

  ```bash
  rankmath-pp-cli audit --agent --select issues.url,issues.issue
  ```
- **`coverage`** — Find published posts Google has not indexed or never inspected, excluding intentionally noindexed pages. Needs credentials and Rank Math Analytics connected to Search Console.

  _Use it to answer which real content is missing from Google rather than reading raw inspection rows._

  ```bash
  rankmath-pp-cli coverage --agent --select gaps.url,gaps.verdict
  ```

### Edit, verify, index
- **`reindex`** — Preview the posts edited since a given window that are not yet in the IndexNow log; --confirm plus credentials submits them.

  _Run after a batch of edits to get fresh pages crawled without resubmitting the whole site._

  ```bash
  rankmath-pp-cli reindex --since 7d
  ```
- **`opportunities`** — Queries ranking in positions 4-20 whose post title or description does not mention the query. Needs credentials and Rank Math Analytics connected to Search Console.

  _Use it to pick which titles to rewrite next with evidence from real search demand._

  ```bash
  rankmath-pp-cli opportunities --min-impressions 100 --agent
  ```

### Multi-site
- **`portfolio`** — Clicks, impressions, and average position for each site in --sites (or RANKMATH_SITES) in one table. Needs credentials per site.

  _Use it for a multi-site weekly check instead of logging into each wp-admin._

  ```bash
  rankmath-pp-cli portfolio --agent
  ```

## Command Reference

**ai_visibility** — Manage ai visibility

- `rankmath-pp-cli ai-visibility brands-generate-queries` — Rank Math ai-visibility: brands generate queries
- `rankmath-pp-cli ai-visibility create-brands` — Rank Math ai-visibility: create brands
- `rankmath-pp-cli ai-visibility get-brands` — Rank Math ai-visibility: get brands
- `rankmath-pp-cli ai-visibility get-brands-insights` — Rank Math ai-visibility: get brands insights
- `rankmath-pp-cli ai-visibility get-brands-queries` — Rank Math ai-visibility: get brands queries
- `rankmath-pp-cli ai-visibility overview` — Rank Math ai-visibility: overview
- `rankmath-pp-cli ai-visibility update-brands` — Rank Math ai-visibility: update brands
- `rankmath-pp-cli ai-visibility update-brands-queries` — Rank Math ai-visibility: update brands queries

**backup** — Manage backup

- `rankmath-pp-cli backup export-settings` — Rank Math backup: export settings
- `rankmath-pp-cli backup get-view-data` — Rank Math backup: get view data
- `rankmath-pp-cli backup run` — Rank Math backup: run backup

**dashboard** — Manage dashboard

- `rankmath-pp-cli dashboard search-intent` — Rank Math dashboard: search intent
- `rankmath-pp-cli dashboard widget` — Rank Math dashboard: dashboard widget

**gsc** — Manage gsc

- `rankmath-pp-cli gsc add-track-keyword` — Rank Math gsc: add track keyword
- `rankmath-pp-cli gsc analytics-summary` — Rank Math gsc: analytics summary
- `rankmath-pp-cli gsc auto-add-focus-keywords` — Rank Math gsc: auto add focus keywords
- `rankmath-pp-cli gsc dashboard` — Rank Math gsc: dashboard
- `rankmath-pp-cli gsc delete-tracked-keywords` — Rank Math gsc: delete tracked keywords
- `rankmath-pp-cli gsc get-desktop-pagespeed` — Rank Math gsc: get desktop pagespeed
- `rankmath-pp-cli gsc get-keyword-pages` — Rank Math gsc: get keyword pages
- `rankmath-pp-cli gsc get-mobile-pagespeed` — Rank Math gsc: get mobile pagespeed
- `rankmath-pp-cli gsc get-page-seoscore` — Rank Math gsc: get page seoscore
- `rankmath-pp-cli gsc get-post` — Rank Math gsc: get post
- `rankmath-pp-cli gsc get-tracked-keyword-summary` — Rank Math gsc: get tracked keyword summary
- `rankmath-pp-cli gsc get-tracked-keywords` — Rank Math gsc: get tracked keywords
- `rankmath-pp-cli gsc get-tracked-keywords-rows` — Rank Math gsc: get tracked keywords rows
- `rankmath-pp-cli gsc inspection-results` — Rank Math gsc: inspection results
- `rankmath-pp-cli gsc inspection-stats` — Rank Math gsc: inspection stats
- `rankmath-pp-cli gsc keywords-overview` — Rank Math gsc: keywords overview
- `rankmath-pp-cli gsc keywords-rows` — Rank Math gsc: keywords rows
- `rankmath-pp-cli gsc keywords-summary` — Rank Math gsc: keywords summary
- `rankmath-pp-cli gsc posts-overview` — Rank Math gsc: posts overview
- `rankmath-pp-cli gsc posts-rows` — Rank Math gsc: posts rows
- `rankmath-pp-cli gsc posts-rows-by-objects` — Rank Math gsc: posts rows by objects
- `rankmath-pp-cli gsc posts-summary` — Rank Math gsc: posts summary
- `rankmath-pp-cli gsc remove-track-keyword` — Rank Math gsc: remove track keyword
- `rankmath-pp-cli gsc tracked-keywords-overview` — Rank Math gsc: tracked keywords overview

**head** — Manage head

- `rankmath-pp-cli head` — Rendered Rank Math head tags for a URL (needs headless support enabled)

**indexing** — Manage indexing

- `rankmath-pp-cli indexing clear-log` — Rank Math indexing: clear log
- `rankmath-pp-cli indexing get-log` — Rank Math indexing: get log
- `rankmath-pp-cli indexing submit-urls` — Rank Math indexing: submit urls

**link_genius** — Manage link genius

- `rankmath-pp-cli link-genius audit-mark-safe` — Rank Math link-genius: audit mark safe
- `rankmath-pp-cli link-genius audit-recheck` — Rank Math link-genius: audit recheck
- `rankmath-pp-cli link-genius audit-start` — Rank Math link-genius: audit start
- `rankmath-pp-cli link-genius audit-stats` — Rank Math link-genius: audit stats
- `rankmath-pp-cli link-genius bulk-actions-restore` — Rank Math link-genius: bulk actions restore
- `rankmath-pp-cli link-genius bulk-update-apply` — Rank Math link-genius: bulk update apply
- `rankmath-pp-cli link-genius bulk-update-preview` — Rank Math link-genius: bulk update preview
- `rankmath-pp-cli link-genius bulk-update-preview-results` — Rank Math link-genius: bulk update preview results
- `rankmath-pp-cli link-genius bulk-update-rollback` — Rank Math link-genius: bulk update rollback
- `rankmath-pp-cli link-genius create-keyword-maps` — Rank Math link-genius: create keyword maps
- `rankmath-pp-cli link-genius delete` — Rank Math link-genius: delete
- `rankmath-pp-cli link-genius delete-bulk-update-history` — Rank Math link-genius: delete bulk update history
- `rankmath-pp-cli link-genius delete-keyword-maps` — Rank Math link-genius: delete keyword maps
- `rankmath-pp-cli link-genius delete-keyword-maps-variations` — Rank Math link-genius: delete keyword maps variations
- `rankmath-pp-cli link-genius export` — Rank Math link-genius: export
- `rankmath-pp-cli link-genius get-bulk-update-changes` — Rank Math link-genius: get bulk update changes
- `rankmath-pp-cli link-genius get-keyword-maps` — Rank Math link-genius: get keyword maps
- `rankmath-pp-cli link-genius get-keyword-maps-variations` — Rank Math link-genius: get keyword maps variations
- `rankmath-pp-cli link-genius get-links-details` — Rank Math link-genius: get links details
- `rankmath-pp-cli link-genius item-keyword-maps-generate-variations` — Rank Math link-genius: item keyword maps generate variations
- `rankmath-pp-cli link-genius keyword-maps-accept-variations` — Rank Math link-genius: keyword maps accept variations
- `rankmath-pp-cli link-genius keyword-maps-bulk-delete` — Rank Math link-genius: keyword maps bulk delete
- `rankmath-pp-cli link-genius keyword-maps-bulk-toggle` — Rank Math link-genius: keyword maps bulk toggle
- `rankmath-pp-cli link-genius keyword-maps-execute` — Rank Math link-genius: keyword maps execute
- `rankmath-pp-cli link-genius keyword-maps-generate-variations` — Rank Math link-genius: keyword maps generate variations
- `rankmath-pp-cli link-genius keyword-maps-history` — Rank Math link-genius: keyword maps history
- `rankmath-pp-cli link-genius keyword-maps-preview` — Rank Math link-genius: keyword maps preview
- `rankmath-pp-cli link-genius keyword-maps-preview-results` — Rank Math link-genius: keyword maps preview results
- `rankmath-pp-cli link-genius keyword-maps-variations` — Rank Math link-genius: keyword maps variations
- `rankmath-pp-cli link-genius link-opportunities` — Rank Math link-genius: link opportunities
- `rankmath-pp-cli link-genius link-suggestions` — Rank Math link-genius: link suggestions
- `rankmath-pp-cli link-genius list-bulk-update-history` — Rank Math link-genius: list bulk update history
- `rankmath-pp-cli link-genius list-keyword-maps` — Rank Math link-genius: list keyword maps
- `rankmath-pp-cli link-genius list-links` — Rank Math link-genius: list links
- `rankmath-pp-cli link-genius operations-cancel` — Rank Math link-genius: operations cancel
- `rankmath-pp-cli link-genius operations-clear` — Rank Math link-genius: operations clear
- `rankmath-pp-cli link-genius operations-progress` — Rank Math link-genius: operations progress
- `rankmath-pp-cli link-genius posts` — Rank Math link-genius: posts
- `rankmath-pp-cli link-genius posts-stats` — Rank Math link-genius: posts stats
- `rankmath-pp-cli link-genius regenerate` — Rank Math link-genius: regenerate
- `rankmath-pp-cli link-genius related-posts` — Rank Math link-genius: related posts
- `rankmath-pp-cli link-genius remove-nofollow` — Rank Math link-genius: remove nofollow
- `rankmath-pp-cli link-genius stats` — Rank Math link-genius: stats
- `rankmath-pp-cli link-genius undo-delete` — Rank Math link-genius: undo delete
- `rankmath-pp-cli link-genius update` — Rank Math link-genius: update
- `rankmath-pp-cli link-genius update-keyword-maps` — Rank Math link-genius: update keyword maps

**meta** — Manage meta

- `rankmath-pp-cli meta update` — Rank Math meta: update meta
- `rankmath-pp-cli meta update-bulk` — Rank Math meta: update meta bulk
- `rankmath-pp-cli meta update-seo-score` — Rank Math meta: update seo score

**pages** — Manage pages

- `rankmath-pp-cli pages` — List published WordPress pages (id, link, modified)

**posts** — Manage posts

- `rankmath-pp-cli posts` — List published WordPress posts (id, link, modified)

**redirections** — Manage redirections

- `rankmath-pp-cli redirections` — Rank Math redirections: update redirection

**schema** — Manage schema

- `rankmath-pp-cli schema save-template` — Rank Math schema: save template
- `rankmath-pp-cli schema update` — Rank Math schema: update schemas

**settings** — Manage settings

- `rankmath-pp-cli settings save-module` — Rank Math settings: save module
- `rankmath-pp-cli settings update` — Rank Math settings: update settings


**audit**


- `rankmath-pp-cli audit` — One list of every synced post with a missing or duplicate SEO title or description, long title, canonical problem, accidental noindex, or no schema. Works on public pages without credentials; run sync first.


**coverage**


- `rankmath-pp-cli coverage` — Find published posts Google has not indexed or never inspected, excluding intentionally noindexed pages. Needs credentials and Rank Math Analytics connected to Search Console.


**opportunities**


- `rankmath-pp-cli opportunities` — Queries ranking in positions 4-20 whose post title or description does not mention the query. Needs credentials and Rank Math Analytics connected to Search Console.


**portfolio**


- `rankmath-pp-cli portfolio` — Clicks, impressions, and average position for each site in --sites (or RANKMATH_SITES) in one table. Needs credentials per site.


**reindex**


- `rankmath-pp-cli reindex` — Preview the posts edited since a given window that are not yet in the IndexNow log; --confirm plus credentials submits them.




## Freshness Contract

This printed CLI owns bounded freshness only for registered store-backed read command paths. In `--data-source auto` mode, those paths check `sync_state` and may run a bounded refresh before reading local data. `--data-source local` never refreshes. `--data-source live` reads the API and does not mutate the local store. Set `RANKMATH_NO_AUTO_REFRESH=1` to skip the freshness hook without changing source selection.

Covered paths:

- `rankmath-pp-cli ai_visibility`
- `rankmath-pp-cli ai_visibility get`
- `rankmath-pp-cli ai_visibility list`
- `rankmath-pp-cli ai_visibility search`
- `rankmath-pp-cli dashboard`
- `rankmath-pp-cli dashboard get`
- `rankmath-pp-cli dashboard list`
- `rankmath-pp-cli dashboard search`
- `rankmath-pp-cli gsc`
- `rankmath-pp-cli gsc get`
- `rankmath-pp-cli gsc list`
- `rankmath-pp-cli gsc search`
- `rankmath-pp-cli gsc-dashboard`
- `rankmath-pp-cli gsc-dashboard get`
- `rankmath-pp-cli gsc-dashboard list`
- `rankmath-pp-cli gsc-dashboard search`
- `rankmath-pp-cli gsc-get-keyword-pages`
- `rankmath-pp-cli gsc-get-keyword-pages get`
- `rankmath-pp-cli gsc-get-keyword-pages list`
- `rankmath-pp-cli gsc-get-keyword-pages search`
- `rankmath-pp-cli gsc-get-tracked-keyword-summary`
- `rankmath-pp-cli gsc-get-tracked-keyword-summary get`
- `rankmath-pp-cli gsc-get-tracked-keyword-summary list`
- `rankmath-pp-cli gsc-get-tracked-keyword-summary search`
- `rankmath-pp-cli gsc-get-tracked-keywords`
- `rankmath-pp-cli gsc-get-tracked-keywords get`
- `rankmath-pp-cli gsc-get-tracked-keywords list`
- `rankmath-pp-cli gsc-get-tracked-keywords search`
- `rankmath-pp-cli gsc-get-tracked-keywords-rows`
- `rankmath-pp-cli gsc-get-tracked-keywords-rows get`
- `rankmath-pp-cli gsc-get-tracked-keywords-rows list`
- `rankmath-pp-cli gsc-get-tracked-keywords-rows search`
- `rankmath-pp-cli gsc-inspection-results`
- `rankmath-pp-cli gsc-inspection-results get`
- `rankmath-pp-cli gsc-inspection-results list`
- `rankmath-pp-cli gsc-inspection-results search`
- `rankmath-pp-cli gsc-inspection-stats`
- `rankmath-pp-cli gsc-inspection-stats get`
- `rankmath-pp-cli gsc-inspection-stats list`
- `rankmath-pp-cli gsc-inspection-stats search`
- `rankmath-pp-cli gsc-keywords-overview`
- `rankmath-pp-cli gsc-keywords-overview get`
- `rankmath-pp-cli gsc-keywords-overview list`
- `rankmath-pp-cli gsc-keywords-overview search`
- `rankmath-pp-cli gsc-keywords-rows`
- `rankmath-pp-cli gsc-keywords-rows get`
- `rankmath-pp-cli gsc-keywords-rows list`
- `rankmath-pp-cli gsc-keywords-rows search`
- `rankmath-pp-cli gsc-keywords-summary`
- `rankmath-pp-cli gsc-keywords-summary get`
- `rankmath-pp-cli gsc-keywords-summary list`
- `rankmath-pp-cli gsc-keywords-summary search`
- `rankmath-pp-cli gsc-posts-overview`
- `rankmath-pp-cli gsc-posts-overview get`
- `rankmath-pp-cli gsc-posts-overview list`
- `rankmath-pp-cli gsc-posts-overview search`
- `rankmath-pp-cli gsc-posts-rows`
- `rankmath-pp-cli gsc-posts-rows get`
- `rankmath-pp-cli gsc-posts-rows list`
- `rankmath-pp-cli gsc-posts-rows search`
- `rankmath-pp-cli gsc-posts-rows-by-objects`
- `rankmath-pp-cli gsc-posts-rows-by-objects get`
- `rankmath-pp-cli gsc-posts-rows-by-objects list`
- `rankmath-pp-cli gsc-posts-rows-by-objects search`
- `rankmath-pp-cli gsc-posts-summary`
- `rankmath-pp-cli gsc-posts-summary get`
- `rankmath-pp-cli gsc-posts-summary list`
- `rankmath-pp-cli gsc-posts-summary search`
- `rankmath-pp-cli gsc-tracked-keywords-overview`
- `rankmath-pp-cli gsc-tracked-keywords-overview get`
- `rankmath-pp-cli gsc-tracked-keywords-overview list`
- `rankmath-pp-cli gsc-tracked-keywords-overview search`
- `rankmath-pp-cli link_genius`
- `rankmath-pp-cli link_genius get`
- `rankmath-pp-cli link_genius list`
- `rankmath-pp-cli link_genius search`
- `rankmath-pp-cli link_genius-history`
- `rankmath-pp-cli link_genius-history get`
- `rankmath-pp-cli link_genius-history list`
- `rankmath-pp-cli link_genius-history search`
- `rankmath-pp-cli link_genius-keyword-maps`
- `rankmath-pp-cli link_genius-keyword-maps get`
- `rankmath-pp-cli link_genius-keyword-maps list`
- `rankmath-pp-cli link_genius-keyword-maps search`
- `rankmath-pp-cli link_genius-links`
- `rankmath-pp-cli link_genius-links get`
- `rankmath-pp-cli link_genius-links list`
- `rankmath-pp-cli link_genius-links search`
- `rankmath-pp-cli link_genius-posts`
- `rankmath-pp-cli link_genius-posts get`
- `rankmath-pp-cli link_genius-posts list`
- `rankmath-pp-cli link_genius-posts search`
- `rankmath-pp-cli link_genius-posts-stats`
- `rankmath-pp-cli link_genius-posts-stats get`
- `rankmath-pp-cli link_genius-posts-stats list`
- `rankmath-pp-cli link_genius-posts-stats search`
- `rankmath-pp-cli link_genius-progress`
- `rankmath-pp-cli link_genius-progress get`
- `rankmath-pp-cli link_genius-progress list`
- `rankmath-pp-cli link_genius-progress search`
- `rankmath-pp-cli link_genius-results`
- `rankmath-pp-cli link_genius-results get`
- `rankmath-pp-cli link_genius-results list`
- `rankmath-pp-cli link_genius-results search`
- `rankmath-pp-cli link_genius-stats`
- 