Migration data intelligence · Playbook
Evidence contract
Recognized source families
| Source | Grain clues | Controlling measures |
|---|---|---|
| GSC | page/query/date/device/country | clicks, impressions, CTR, position |
| GA4 | landing page/page path/date/channel | sessions, users, engaged sessions, key events/conversions |
| SEMrush/rank tracking | keyword/URL/database/date | position, volume, estimated traffic, intent |
| Crawl | address/URL/indexability/status | response code, canonical, directives, word count, headings |
| PageSpeed/CrUX | URL/device/date | performance score, LCP, INP, CLS, FCP, TBT |
| Backlinks | source URL/target URL/referring domain | links, referring domains, authority fields when supplied |
Provider names and export labels vary. Classification must be header-based and confidence-scored; an unknown file stays in the inventory but does not silently contribute metrics.
Common page evidence grain
One row per normalized production path. Strip scheme/host, fragment, default index filename, and trailing-slash differences. Preserve query strings only when the export explicitly treats them as indexable landing pages; the default profiler removes them.
The page row may include:
- search: clicks, impressions, recomputed CTR, impression-weighted position;
- behavior: sessions, users, engaged sessions, key events/conversions;
- technical: worst response status, indexability/directive values, crawl word count;
- performance: worst/median reported score and LCP/INP/CLS when present;
- provenance: contributing files and warnings.
Do not join on title, canonical text, or filename when a URL/path is available.
Opportunity rules
Thresholds are triage defaults, not universal truths:
protect: any meaningful clicks, sessions, conversions, or backlinks. Preserve route/content intent until a reviewed redirect/content plan proves equivalence.technical_blocker: a demanded page with 4xx/5xx, noindex, canonical conflict, or severe performance evidence. Fix mechanics before rewriting copy.improve_ctr: at least 100 impressions, average position 10 or better, CTR below 2%.striking_distance: at least 50 impressions and average position greater than 3 through 20.investigate_measurement: meaningful evidence in one source but an unexplained zero in another.
No rule emits kill, merge, or an approved rewrite. Those require content overlap, business intent,
URL history, redirect destination, and owner review. Medical changes additionally require clinical
review.
Klinklang handoff
After review, translate evidence into the rebuild guide rather than editing the bundle directly:
- fact records and source citations;
- URL disposition rows with explicit owner approval;
- interlinking targets grounded in topic and graph evidence;
- page briefs with intent, required sections, entities, CTA, schema, and acceptance criteria;
- clinical attestation for medical/YMYL claims;
- baseline-versus-candidate SEO, visual, interaction, crawl, and performance gates.