Menu

The verify loop

How every SEO action is logged with a GSC baseline and later graded win, neutral, or loss

Why it exists

dx-seo records each change with a Search Console baseline and compares later performance using the same measurement scope. The ledger helps identify promising actions, but before/after movement does not prove that an edit caused it. Other changes, seasonality, and search updates can affect the result.

The action ledger

The dashboard is the system of record. Commands read the ledger through seo_list_actions and write applied actions and verification outcomes through seo_sync_actions, upserted by entry id.

Each entry captures:

Field Meaning
id, date, cmd Ledger slug, log date, and the producing command
type Action type — internal-link, title-meta, content-expansion, publish, republish-301, 301-merge, noindex, canonical, differentiation, link-exchange, other
target The page whose ranking the action should move
keyword The tracked query, when there is one
status executed or dismissed
baseline The pre-edit GSC reading — position, clicks, impressions, window length, inclusive start/end dates, country, device, and search type
verify_after The date from which the action becomes eligible to grade
outcome /seo-verify's verdict once judged — filled in later

The cooling window

An executed action isn't judged immediately — rankings take time to settle. Each entry carries a verify_after date, typically four to six weeks out. Until then the action sits in the Cooling group on the Actions page. Once that date passes, it moves to Due for verify.

The verdict

/seo-verify pulls fresh Search Console data for every due action and compares it to the baseline:

  • Win — the target query improved meaningfully.
  • Neutral — no clear movement either way.
  • Loss — the target query slipped.

Verification reuses the baseline's exact page/query filters, country, device, search type, and window length. It waits for a complete, finalized post-action window. Legacy entries whose measurement scope cannot be recovered remain ungraded, as do comparisons with insufficient query data. Follow-up dates and scope are saved in outcome.after.

The verdict is written back into the entry's outcome and re-synced. On the dashboard, the Actions page shows the before → after position, and the Overview and Site pages tally win rate by action type — the signal you actually act on.

The full cycle

1

Act and log

A command captures the pre-edit baseline, applies and checks the action, then prepares its ledger entry with a verify_after date.

2

Push

seo_sync_actions saves the entry to the dashboard. The action appears under Cooling.

3

Wait out the window

Rankings settle. When verify_after passes, the action moves to Due for verify.

4

Grade

/seo-verify fetches fresh GSC data, assigns win / neutral / loss, and re-syncs. Win rates update across the Overview and Site pages.

Next Steps