Approval mode, dry runs and undo

How RankKit SEO keeps AI agents in check: preview every change with a dry run, hold edits for your approval, and undo any applied change.

Updated 5 min read
On this page

RankKit SEO gives you three safety nets when an AI agent works on your site: a dry run to preview a change, approval mode to hold changes until you say yes, and undo for anything that was applied.

All three work the same way for every client: claude.ai, ChatGPT, Claude Code, Claude Desktop, Cursor, VS Code or any other MCP client.

Dry runs: preview before anything changes

Every write tool accepts dry_run: true. The tool then returns the old and new value of each field without saving anything and without adding anything to the Change Log.

RankKit SEO tells every connecting agent to dry-run before any write and show you the old and new values, so most agents do this on their own. You can also ask for it:

Preview the new meta description for post 42 with a dry run first.

Write tools also take an optional reason. The agent's reason is stored as the note on the change and shown to you in the Change Log and the approval queue.

A write returns one of these statuses:

Status Meaning
dry_run Preview only. Nothing was saved.
pending Queued for your approval. Nothing is live yet.
pending_approval A site-wide request, waiting for an administrator. Nothing has changed yet. See Site-wide changes always wait for approval.
applied Saved and live. It can be reverted.
unchanged The new value matches the current one, so nothing was written.

Approval mode: nothing goes live until you approve

Agents' changes need my approval in RankKit SEO → AI Agents is on by default, and we recommend leaving it on.

With approval on:

  1. An agent's write is saved as a pending change and the agent is told: "Queued for approval. A site admin must approve it in RankKit SEO → Change Log before it goes live."
  2. You see the number of waiting changes in the red badge on the RankKit SEO menu, in an SEO: … to review item in the admin bar, in a Dashboard notice and in the Waiting for approval count on RankKit SEO → AI Agents.
  3. Open RankKit SEO → Change Log and filter by Needs approval. Each entry shows the field, the object, Before and After, the agent's name and its note.
  4. Click Approve to apply it or Reject to discard it. Changes made in one call are grouped as a batch with Approve all and Reject all.

Agents can't approve changes. They can withdraw their own pending changes with the withdraw_change tool, which marks them rejected.

Approving and rejecting needs the Change Log approval permission, which administrators have by default. See Role manager.

Tip Approval mode suits most sites. If you trust a specific workflow and want edits to apply at once, turn the toggle off: every change is still logged and revertable.

With approval off

When Agents' changes need my approval is off, agent edits to posts, terms and images apply immediately. Each one is still recorded in the Change Log with the old value, the agent's name and its note, so you can revert it. Site-wide changes still wait for approval.

Site-wide changes always wait for approval

Some tools change the whole site rather than one post: settings, modules, title templates, robots.txt, sitemap and llms.txt settings, verification codes, redirects, creating and restoring backups, and reverting site-wide changes. When an agent calls one of them, nothing changes until an administrator approves it in wp-admin, whether Agents' changes need my approval is on or off.

  1. The agent is told: "Nothing has changed yet. "…" changes the whole site, so it waits in RankKit SEO → Change Log until a site administrator approves it in wp-admin."
  2. The request appears under Needs approval in RankKit SEO → Change Log as Site-wide request from an AI agent, with what Runs when you approve and the agent's note.
  3. Click Approve to run it, or Reject to discard it. It runs as you, so you need permission for what it does.

What the approved request changes is logged as normal entries, which you can revert one by one. The request entry itself has no Revert button.

A dry run still previews a site-wide change without queuing it.

Undo: revert any applied change

Every applied change, from an agent or anyone else, can be reverted:

  • In wp-admin: open RankKit SEO → Change Log and click Revert on an entry, or Revert whole batch for a group of changes.
  • By the agent: the revert_change tool undoes a change by its ID, or a whole batch by its batch ID, if the token has Write access to history. Reverting a batch or a site-wide change waits for an administrator's approval first.

If the same field changed again after the edit you want to undo, RankKit SEO warns: "This field changed again after this edit. Revert the newer change first, or force it."

Automatic backups before big changes

Before a real (not dry-run) run of the bulk tools bulk_update_post_seo and ai_bulk_generate, RankKit SEO takes a backup of all its data. Both tools are part of RankKit SEO Pro. You can restore any backup from RankKit SEO → Tools; see Backups, export and import.

What gets logged

Every SEO write goes through the same path, so the Change Log records edits from the block editor, the Classic Editor and Elementor, bulk edits, AI, imports, backup restores, automatic slug redirects and agent calls. Agent entries carry the token's name, followed by the client's name in brackets when the client sends one. See The Change Log.

FAQ

Can an agent publish a post?

No RankKit SEO tool publishes posts. ai_write_draft saves a new article as a draft, and a person reviews and publishes it.

Do dry runs use AI requests?

Some do. For example, ai_write_draft with dry_run returns the article without saving it, but still uses AI requests from your daily limit.

How long are changes kept?

Applied, reverted and rejected entries older than 180 days are removed daily. Pending changes are kept until someone approves or rejects them.

Was this page helpful?

Still need help?

Email us with your WordPress and RankKit SEO versions and what you tried. Pro customers get priority replies.

Contact support