ohayo.
← All skills

OHAYO / SKILL 005

See what changed.
Keep what’s unknown.

Compare query or page exports from two Search Console windows. Check the reporting scope first, then record clicks, impressions, CTR and position changes without inventing an optimization result.

Claude Code & CodexPython 3.10+v1.0.0
INCLUDED SYNTHETIC EXAMPLE↗

2 comparable rows. 2 unknown.

One query’s CTR increased by 1 percentage point. Another has a small sample; two lack a row in one window.

See the comparison and its limitations →

DESCRIBE FIRST. CLAIM LESS.

From two exports
to a reviewable record.

  1. Declare the scope

    Keep the property, country, device, search type, filters, dimension, export coverage and reporting dates identical. Use equal-length, nonoverlapping processed windows.

  2. Compare offline

    Preserve your original CSVs and normalize a separate copy. CTR is recomputed from clicks and impressions. Missing rows stay unknown; small samples are marked explicitly.

  3. Record one change

    Log the page, hypothesis, change date, owner and competing explanations. A before-and-after difference does not establish causality or statistical significance.

Know what the evidence supports.

How does this differ from SEO Release Check?

SEO Release Check checks static sitemap, canonical and noindex signals before deployment. This package records observed search metrics after a change.

Why use this instead of free tools?

Search Console comparisons, Looker Studio templates and spreadsheets are useful free alternatives. This package adds repeatable local scripts, explicit rejection rules, provenance, worked examples and tests.

Which exports are supported?

UTF-8 CSV with optional BOM, an explicitly selected query or page column, and English Clicks, Impressions and Position headers. Scope metadata is supplied separately by you; property ownership and export settings are not verified automatically.

What are the limits?

Each input is bounded to 1 MiB and 1,000 rows. CSV headers are bounded to 20 columns. Duplicate or blank keys, mixed scope, overlapping or unequal windows, unprocessed dates and invalid metrics reject the comparison. Fresh output paths are required.

Does this prove my optimization worked?

No. Low-sample warnings are a configurable review threshold, not a significance test. Visible exported rows may omit anonymized queries or truncated results. Missing rows do not mean zero; row sums are not property totals.

Does it measure GEO, and is data private?

It does not measure AI citations, referrals or GEO effectiveness. No uploads or API connections are made. JSON contains private query or page values; Markdown omits them. Input hashes and schema can still be sensitive. The purchaser may use it for personal and client work but may not redistribute the package.