effective

In development, not released yet

Review SEO changes like code.

effective records what every page of your Next.js app actually serves (title, robots, canonical, structured data and more) as plain files in your repository. Every change gets a diff, a commit and the source files that caused it.

effective diff
effective diff  HEAD (933bf9e) → working tree
  2 critical · 16 warning · 17 info  in 11 of 14 pages, 7 change sets

● critical robots  follow, index → follow, noindex  1 page · Page became noindex
    /pricing
    files: app/pricing/page.tsx, lib/seo.ts
    - robots: follow, index
    + robots: follow, noindex
● warning  title  …| Acme Blog → …— Acme  8 pages · Title changed
    /blog/changelog-2026, /blog/design-notes, /blog/hello-world (+5)
    files: lib/seo.ts
    - title: Changelog 2026 | Acme Blog
    + title: Changelog 2026 — Acme

How it works

  1. 1

    Snapshot

    effective snapshot visits every route of your running app, using its sitemap and router, and writes what each page serves to .effective/seo. One fact per line.

  2. 2

    Commit

    Snapshots live in git next to the code that produced them. git log, git diff and git blame work on them directly. Git is the database.

  3. 3

    Diff

    effective diff ranks every change as critical, warning or info. One edit to a shared helper shows up once, not once per page, with the files that likely caused it.

.effective/seo/pricing.snap
# effective snapshot v1
path: /pricing
status: 200
canonical: https://acme.test/pricing
robots: follow, noindex
title: Pricing | Acme
description: Plans from $0. Compare them.
hreflang:
  de https://acme.test/de/pricing
og:
  og:title Pricing
content.words: 384
effective blame /pricing
8aeb353  2026-11-01  canonical    https://acme.test/pricing
0000000  working     robots       follow, noindex
8aeb353  2026-11-01  title        Pricing | Acme
933bf9e  2026-11-04  description  Plans from $0. Compare them.
a8417da  2026-11-03  hreflang     de https://acme.test/de/pricing
8aeb353  2026-11-01  og           og:title Pricing

Your agent checks its own SEO

Coding agents change titles, metadata and layouts without noticing what that does to search. effective mcp gives them the same snapshots and diffs over the Model Context Protocol, with compact, paginated answers.

  1. 1Edit the code
  2. 2Call snapshot
  3. 3Call seo_diff
  4. 4Fix every critical change before reporting done
  • list_pages
  • get_page
  • snapshot
  • seo_diff
  • seo_check
  • seo_log
  • seo_blame

A dashboard that stays on your machine

effective dashboard serves an overview, every page with the commit that last changed each fact, grouped changes, and a compare view for any two commits. Watch mode re-snapshots only the pages an edit renders, as you save.

The effective dashboard overview: page counts, critical changes since the last commit, and the SEO history of recent commits.
The Changes screen: a critical change set showing /pricing became noindex, with app/pricing/page.tsx and lib/seo.ts as likely causes.

Local only

No account, no telemetry, no cloud. effective talks to your app and to git, and nothing else. This website has no analytics or cookies either.