Builds By Luke
All plugins

WordPress Plugin · v1.0.1 · Live on WordPress.org

SEO Flight Recorder

Records your pages’ SEO output — titles, meta, robots, canonicals, schema — and tells you what changed, when, and which update did it.

  • WordPress 6.2+
  • PHP 7.4+
  • GPLv2+
  • Read-only
  • Any SEO plugin

Live on the WordPress.org plugin directory. This page is the plugin’s official home.

BuildsByLuke SEO Flight Recorder icon

Your SEO can break silently. Nothing tells you.

A plugin update wipes your product schema. A settings collision flips a page to noindex. Your canonical quietly starts pointing somewhere else. Your sitemap begins returning errors. The site looks fine. The dashboard says nothing. Google notices — sometimes weeks before you do, and Search Console reports what its crawler decided, days later, without ever telling you what on your site changed or what changed it.

SEO Flight Recorder is the black box for your site’s SEO. It records the SEO-critical output of the pages you care about, re-checks them on a schedule and immediately after anything on the site changes, and writes every difference to a flight log — with the site events that immediately preceded it, so the culprit has a name.

How it works

Record. Diff. Name the culprit.

Job one · The recording

Record what your pages actually say

SEO Flight Recorder fetches the pages you care about from your own server, normalises the SEO-critical fields out of the rendered HTML, and stores a compact snapshot. Then it does it again — as often as hourly, if you want, and on demand — and diffs the result. Not “is there a problem”, but “this field said that yesterday and says this today”.

  • Title & meta description
  • Meta robots — noindex tripwire
  • Canonical URL (value, not just presence)
  • Schema types, including nested @graph
  • Open Graph & Twitter cards
  • First H1 and H1 count
  • HTTP status & redirect target

Recent changes

/product/analog-kit/ critical

meta robots — index, follownoindex, follow

Site events immediately before this change: Plugin updated · Example SEO Suite 4.2

/product/analog-kit/ critical

schema — Product, BreadcrumbListBreadcrumbList

A Product type vanished. Same update window.

/about/ warning

title — About us — StudioAbout us

No site events in the window. Unexplained.

/journal/hello/ expected

meta description changed

You edited this page 4 minutes earlier — filed as a content edit.

The Flight Log — what changed, how bad it is, and what changed it. Example data shown.

Job two · The culprit

Name the update that changed it

External SEO crawlers poll from outside. SEO Flight Recorder lives inside WordPress, so it sees the moment an update finishes, a plugin is activated, the theme is switched, or an SEO-relevant setting changes — and runs a check about 90 seconds later, once caches have settled. When output changed, the log entry carries the events that just happened, so the culprit has a name.

  • It knows when you edited the page, and files those as expected content edits — not alarms.
  • A change that endangers indexability stays critical even then.
  • Site-wide watch too: robots.txt, the sitemap, and the “Discourage search engines” switch.

Site-wide checks

robots.txtReachable · unchanged since 4 Jun
XML sitemapReturns 500 was 1,284 URLs
Search enginesSite is indexable blog_public = 1

Monitoring status

Loopback OK

This site can fetch its own pages, so monitoring is live. If it ever can’t, every screen says monitoring impaired — never a false all-clear.

The site-wide watch, and the self-check that keeps it honest. Example data shown.

A recorder, never a hand on the controls

It does not edit your SEO output, generate meta tags or schema, crawl other websites, or promise rankings. It records, diffs and alerts. It proves what your pages said, when they changed, and what changed them.

Honest when it cannot see

If your host blocks loopback requests, checks cannot run — so it says monitoring impaired on the dashboard, in Site Health and by email. A monitor that goes quiet when it breaks is worse than no monitor at all.

Nothing leaves your site

The only requests it makes are to this site’s own public URLs, from your own server — the way WordPress’s own Site Health checks work. Records stay in your database. No third-party crawler, API or CDN is involved.

In the free build

The whole engine, not a teaser.

Everything the plugin records, diffs, schedules, exposes and keeps is free and uncapped — no page limit, no frequency tier, no history cut-off, nothing switched off pending payment.

  • Unlimited monitored pages

    Front page auto-added; add as many more as you like. Every field, every check — no cap, no gates.

  • Your choice of cadence

    Hourly, twice daily, daily or off — plus the automatic check ~90 seconds after any update, and a manual “Check now”.

  • Flight log, kept forever

    Every change with before → after, severity, timestamp, and the site events that immediately preceded it. Trimming old entries is your option, not our limit.

  • Armed baselines

    Snapshot every monitored page before you run updates, then compare afterwards and see exactly what the update changed.

  • Expected-change intelligence

    Changes to a page you edited yourself are filed as content edits, not alarms — unless they endanger indexability.

  • robots.txt & sitemap watch

    Content drift, reachability, XML validity, URL-count drops — plus a critical alarm if robots.txt starts blocking everyone.

  • The blog_public tripwire

    “Discourage search engines” flipping on — the classic staging-to-production catastrophe — caught even when page checks can’t run.

  • Email alerts with all-clear

    Mail above your chosen severity, once per check, in plain language. Resolved findings send the all-clear.

  • WP-CLI, REST + Site Health

    wp seo-flight-recorder check / status (incl. --format=json), GET /wp-json/sfrec/v1/status, Site Health tests and a dashboard widget.

Free vs Pro

Pro doesn’t add monitoring. It adds delivery.

Monitoring is complete and unlimited in the free plugin — every row above the line is true on both sides. Pro exists to carry the flight log out of the dashboard: to Slack, to your own systems, and to your clients.

Capability Free Pro
Field-level snapshot & diff engine (title, meta, robots, canonical, schema, OG, H1, status)
Update-culprit attribution + expected-change intelligence
robots.txt, sitemap and “Discourage search engines” watch
Monitored pages Unlimited Unlimited
Check frequency (hourly / twice daily / daily) + post-update + manual
Flight log history Unlimited Unlimited
Pre-update armed baseline (snapshot now, update, compare)
Email alerts with all-clear, flight log, resolve/mute rules
Site Health, dashboard widget, WP-CLI (incl. --format=json), REST status endpoint
Loopback self-check with honest “monitoring impaired” state
Slack alerts
Outgoing webhooks (each run’s changes as JSON, to your endpoint)
Weekly white-label client report, emailed under your own brand

Pro · founder pricing

Pro

$99/yr

Up to 5 sites · for the freelancer watching the sites they manage

Agency

$199/yr

Unlimited sites · white-label, for client care plans

14-day trial, no card required. Annual, in US dollars. If a licence lapses you keep the features — only updates and support stop. Pro is sold and licensed through Freemius, the merchant of record.

Questions people ask.

Doesn’t Google Search Console already tell me this?

Search Console tells you what Google’s crawler eventually decided, on its own schedule — often days or weeks later — and it doesn’t watch social tags or canonical values, doesn’t run the moment an update finishes, and never names the plugin that caused it. SEO Flight Recorder tells you what your HTML said, within your chosen check window (or ~90 seconds after an update), with the likely cause attached. They complement each other; only one of them is on your side of the fence.

How does it know which update caused a change?

It keeps a short log of site events — plugin, theme and core updates, activations, deactivations, theme switches, SEO-relevant setting changes, and edits to monitored pages. When a check finds a difference, the events since the previous clean check are attached to the log entry. It is honest about uncertainty: entries say “site events immediately before this change”, and when nothing happened in the window, it says so.

Does it work with Yoast, Rank Math, AIOSEO or SEOPress?

Yes — with all of them, and with none of them. It monitors the rendered output of your pages regardless of what generates it. It is not an SEO plugin and does not compete with yours; it verifies that whatever your SEO stack promised is actually what your pages serve.

Does it change my SEO output or fix problems automatically?

No, and that’s deliberate. It is strictly read-only: it records, diffs, and alerts. You — or your SEO plugin — stay in charge of what your pages say. A recorder you can trust must never be a hand on the controls.

What counts as a critical finding?

noindex appearing on a monitored page, the site being switched to “Discourage search engines”, a canonical moving to a different domain or disappearing, a schema type vanishing, a monitored page starting to return errors or redirect off-site, robots.txt blocking all crawlers, a broken or invalid sitemap, and an emptied title. Warnings cover meaningful-but-possibly-intended changes: title and description edits, Open Graph changes, H1 changes, sitemap shrinkage. Changes you made yourself by editing the page are logged as informational.

What can’t it see?

Three things, and it says so rather than pretending otherwise. If your host blocks loopback requests the plugin cannot fetch its own pages — it detects that and reports “monitoring impaired” everywhere, never a false all-clear. CDN-level caches can serve stale HTML until they expire, which delays detection (there is an optional cache-bypass mode that defeats most page caches). And tags injected by JavaScript after page load — schema added via Tag Manager, say — are invisible to a server-side fetch, so they are not monitored.

Will it slow my site down?

No. Checks run in the background via WP-Cron, fetch a handful of your own pages with a strict time budget, and store compact snapshots. Nothing runs on your visitors’ page loads, and nothing is added to your front end.

Found out weeks late, from a traffic graph?

That is the normal way to discover an SEO regression, and it is a terrible one. SEO Flight Recorder puts a timestamp and a suspect on it instead — within your chosen check window, or ninety seconds after the update that did it.