SEO Baseline Measurement: Before You Start
Capture a dated SEO baseline before changes ship, segmented by page type and business line, so traffic, rankings, revenue, and AI visibility stay provable.
A baseline is the dated, sourced description of performance before planned work changes the system. Without it, a later increase in traffic, rankings, revenue, or AI citations may be encouraging, but it is not a defensible result. A result that cannot be compared with a starting point is an anecdote.
Phase: P5 · Baseline measurement. Stage: A · Understand. Timebox: one focused afternoon for a site with connected data; allow one additional day when segments or historical exports need reconciliation. Owner: the measurement lead or SEO lead, with analytics and revenue-data owners approving their respective figures.
The rule is deliberately strict: capture the baseline before any recommended change ships. A baseline captured retroactively is not a baseline. It is a reconstruction exposed to changed tracking, revised attribution, forgotten releases, and selective memory.
Why this phase comes here
Baseline measurement follows discovery, access setup, the technical audit, and AI accessibility and agent readiness because those phases establish what the business wants, which systems can be trusted, and whether search and AI agents can reach the site. It consumes their approved goals, connected data sources, segment definitions, competitor set, known tracking defects, and technical exceptions.
It comes before research and implementation for a dependency reason. Once a title changes, a template deploys, a crawler restriction lifts, or a campaign starts, the original state begins to disappear. Analytics may still contain older rows, but the comparison has already been contaminated: the tracked set may differ, attribution rules may have changed, and the team now knows the outcome it hopes to prove. Freezing the starting point first prevents the target from moving after the work begins.
This inexpensive phase takes an afternoon and prevents the month-nine argument over whether growth came from the program, seasonality, campaigns, migrations, or competitor decline.
Inputs and outputs
Inputs are accepted only when their scope and date are explicit. Outputs are the contract with keyword and prompt research : the next phase must know which segments exist, what is already measured, where competitors lead, and which tracked sets were frozen.
Baseline inputs and outputs
| Direction | Item | Acceptance condition |
|---|---|---|
| Input | Approved goals and business segments | Each goal names a metric, audience, market, owner, and decision it should inform. |
| Input | Connected analytics, search, revenue, and AmICited sources | Coverage dates, timezone, currency, attribution model, and known gaps are documented. |
| Input | Directory and page-type map | Every in-scope URL belongs to one primary directory, page type, and business segment without double counting. |
| Input | Approved competitor set | Direct business competitors and search/AI visibility competitors are distinguished and dated. |
| Input | Technical and AI-accessibility findings | Known indexing, rendering, consent, crawler, or tracking defects are attached as interpretation notes. |
| Output | Frozen baseline document | Every figure has an as-of date, definition, source, segment, comparison window, and export reference. |
| Output | Immutable export bundle | Raw CSV or spreadsheet exports are stored outside the reporting interface with filenames and access owner recorded. |
| Output | Reporting template | The same rows, segments, definitions, and comparison windows can be reused at every checkpoint. |
| Output | Change annotation ledger | The first annotation is recorded and an owner is assigned to date every material change from this point forward. |
The baseline checklist
Complete the checks in order. Each item has a done-when condition because “looked at the dashboard” is not a reproducible measurement action.
1. Lock definitions, time, and ownership
- What to do: Write a data dictionary for every metric, including formula, source, timezone, currency, attribution basis, lookback window, and accountable owner.
- Why it matters: “Revenue,” “visibility,” and even “page count” can mean different things in different tools. A comparison is invalid when its definition changes between the starting point and the checkpoint.
- How to do it: Choose one reporting timezone and one currency. State whether revenue is gross, net, or attributed; whether traffic includes all organic engines; and whether a visibility value is a percentage or an index.
- Tool: Source settings, analytics documentation, and the reporting template.
- Done when: Every baseline row can be recalculated from its written definition, and no metric is owned by “the team.”
2. Segment the site before calculating totals
- What to do: Assign every in-scope URL to a directory, page type, and business segment, then calculate metrics at those levels before producing a sitewide roll-up.
- Why it matters: A sitewide number hides the level at which work happens. A documentation section can grow while a product category declines, leaving a flat total that tells neither story.
- How to do it: Use mutually exclusive primary segment rules such as
/academy/versus/features/, guide versus product page, and SaaS versus ecommerce business line. Keep “unknown” as a visible bucket rather than silently dropping URLs. - Tool: URL export, analytics dimensions, and AmICited filters.
- Done when: 100% of in-scope URLs and revenue-bearing sessions map to a primary segment, or the unmapped remainder is named, quantified, and below 2% of the relevant total.
3. Freeze organic demand, traffic, and revenue
- What to do: Capture impressions, clicks, organic traffic , conversions, and revenue for each segment and comparison window.
- Why it matters: Rankings can improve without producing useful visits, and visits can rise without producing business value. The baseline must preserve the whole chain from demand to outcome.
- How to do it: Export daily data with device, country, directory, page type, and business segment where volume permits. Reconcile analytics revenue with the system of record and document the accepted variance rather than forcing the numbers to match.
- Tool: Connected search and analytics sources plus Cockpit at AmICited Cockpit .
- Done when: Every segment has dated totals, the year-over-year or substitute window, raw exports, and a written explanation for any source mismatch above 5%.
4. Freeze ranking distribution and indexed coverage
- What to do: Record the tracked keyword set, its ranking distribution, and indexed page count by segment. Ranking distribution means the number of tracked terms in positions 1–3, 4–10, 11–20, 21–50, 51–100, and not ranking.
- Why it matters: An average position can improve while high-value terms disappear. Indexed totals can also remain stable while important pages leave the index and low-value URLs replace them.
- How to do it: Export the exact keyword list with engine, country, device, URL, position, and capture date. Store both submitted and indexed counts where the source provides them, and separate “not indexed” from “not checked.”
- Tool: Organic Rank Report at AmICited Organic Rank , plus connected index-coverage sources.
- Done when: The tracked-set file is immutable, all position bands reconcile to the total tracked set, and indexed counts have a source and capture timestamp.
5. Freeze CTR by position band and page experience
- What to do: Capture click-through rate (CTR) by position band and Core Web Vitals by representative page type.
- Why it matters: A blended CTR cannot distinguish a ranking shift from a weak snippet, while a single homepage speed score cannot represent product, category, article, and application templates.
- How to do it: Calculate clicks divided by impressions for positions 1–3, 4–10, 11–20, and 21–50; retain the underlying clicks and impressions. For page experience, record LCP, INP, and CLS field status and sample size by template where data exists.
- Tool: CTR Gap at AmICited CTR Gap , plus the connected Web Vitals source.
- Done when: Every published CTR rate has its denominator, every position band with fewer than 1,000 impressions is flagged as directional, and each priority template has field data or an explicit “insufficient data” state.
6. Freeze AI visibility, rank, voice, citations, and sentiment
- What to do: Export the prompt set and record AI visibility score, average citation position, share of voice , citation share , and sentiment by engine, market, topic, and business segment.
- Why it matters: These metrics answer different questions. A brand may be mentioned often but rarely cited, or cited frequently while being described negatively. Combining them into one score hides the actionable gap.
- How to do it: Lock prompt wording, engine, locale, and run cadence. Export prompt-level results and label absence as absence, not rank zero. Preserve the answers and cited URLs needed to audit later changes.
- Tool: AI Visibility at AmICited Visibility , AI Rank Tracker at AmICited Rank Tracker , and Source & Citation Intelligence at AmICited Sources .
- Done when: 100% of tracked prompts are in the frozen export, every metric names its denominator, and missing runs are distinguishable from zero mentions or citations.
7. Put competitors on the same measurement frame
- What to do: Record competitor positions for ranking distribution, indexed footprint where observable, AI visibility, share of voice, citation share, sentiment, and Core Web Vitals.
- Why it matters: Your absolute result may rise while the category rises faster. Competitive movement distinguishes a site-specific gain from a market-wide change.
- How to do it: Apply the same engines, markets, devices, topics, prompts, dates, and position bands to every competitor. Mark unavailable private metrics, such as revenue, rather than estimating them.
- Tool: Competitor Analysis at AmICited Competitors , with Visibility, Rank Tracker, and Sources exports.
- Done when: Every observable competitive metric uses the same window and definition as the owned-site value, and every unavailable metric is labeled unavailable rather than zero.
8. Freeze exports, create the report, and start annotations
- What to do: Store raw exports, populate the reporting template, and log the first dated annotation marking the baseline freeze.
- Why it matters: Live dashboards recalculate, retention windows expire, competitor sets change, and connectors can be reauthorized. A screenshot is evidence of appearance; an export preserves the underlying rows.
- How to do it: Use filenames such as
2026-08-27_visibility_prompt-engine-market.csv, store a read-only copy outside the tool, add a manifest with source and filters, and record every deployment, migration, campaign, content release, tracking change, and outage from now on. - Tool: Annotation Outcomes and AmICited report exports; use AmICited Cockpit as the recurring reporting entry point.
- Done when: A second person can open the bundle, reproduce every report total, identify the next checkpoint, and see who owns future annotations.
Tools in AmICited
Use each product view for a defined slice of the baseline, then export the rows needed to preserve that slice outside the live interface.
| Product step | Deep link | Freeze in the baseline |
|---|---|---|
| Visibility | Open Visibility | Score, engine and topic cuts, mentions, sentiment, prompt-level results |
| Rank tracking | Open Rank Tracker | Prompt set, citation positions, engines, markets, run dates, absences |
| Competitors | Open Competitors | Competitive set, share of voice, positions, comparison date |
| Sources | Open Sources | Cited domains, cited URLs, citation share, prompt and engine |
| Cockpit | Open Cockpit | Reporting-period summary, outcome metrics, active filters |
| Organic Rank | Open Organic Rank | Keywords or pages, demand, average position, clicks, channel |
| CTR Gap | Open CTR Gap | Actual and expected CTR, position, impressions, clicks at stake |
| Annotation Outcomes | Open Annotation Outcomes | Baseline-freeze annotation, expectation, checkpoint, owner |
The matching product references are AI Visibility , AI Rank Tracker , Competitor Analysis , Source & Citation Intelligence , Cockpit , Organic Rank Report , CTR Gap , and Annotation Outcomes . The feature page explains the report contract; the app link executes the step.
Decision rules
These are operating thresholds for baseline quality, not promises that crossing a metric automatically causes growth. Apply them consistently and record any stricter business-specific rule.
Baseline acceptance thresholds
| Check | Bad looks like | Decision rule |
|---|---|---|
| Timing | Any planned change shipped before the final export timestamp | Mark the affected metric reconstructed; do not claim a clean before-and-after comparison. |
| Segment coverage | More than 2% of in-scope URLs, sessions, or revenue sits in unknown or overlapping segments | Fix mapping before sign-off or isolate the unknown bucket and exclude it from causal claims. |
| History | Fewer than 28 complete days, or a comparison window of unequal length | Collect more data where possible; otherwise label the baseline provisional and use equal complete weeks. |
| Seasonality | A seasonal business is judged only month over month when prior-year data exists | Use year-over-year as the primary comparison and month over month only as a secondary operational view. |
| CTR evidence | A position-band conclusion rests on fewer than 1,000 impressions | Show the value but label it directional; do not prioritize work from the rate alone. |
| Core Web Vitals | LCP above 2.5 seconds, INP above 200 milliseconds, or CLS above 0.1 at the 75th percentile | Flag the affected template as below the good threshold and preserve field-data coverage with the value. |
| Tracked sets | Keyword or prompt export has missing definitions, duplicate rows, changed wording, or no locale/engine | Do not sign off until the set reconciles exactly to its recorded total. |
| Exports | Any headline number lacks a raw export, source, filter record, date, or owner | The baseline fails; a dashboard screenshot alone is not sufficient evidence. |
| Competitor parity | Owned-site and competitor figures use different dates, markets, engines, devices, or prompts | Re-run on one frame or label the comparison invalid. |
Seasonality and the comparison window
Year-over-year usually beats month-over-month because it compares the business with the same part of its demand cycle. December against November may measure a holiday pattern; December against the prior December is more likely to hold that pattern constant. Still record the immediately preceding period for operational context, but do not let it replace the seasonal comparison.
When no prior year exists, use the longest stable history available, with a floor of four complete weeks for a provisional baseline. Compare equal-length complete weeks, separate launch ramp from steady operation, and annotate promotions, price changes, outages, migrations, consent changes, and major media activity. If the available window contains one of those events, preserve it rather than smoothing it away and state that the baseline is conditional.
Deliverable
Hand over one frozen package, not a link to a changing dashboard. The package contains:
- A PDF or read-only document with an executive summary, scope, definitions, source coverage, comparison windows, segment tables, competitor tables, known limitations, and the as-of timestamp.
- A spreadsheet with one tab per metric family and consistent rows for directory, page type, business segment, market, device, engine, and competitor where applicable.
- A raw-export folder and manifest listing filename, tool, report route, extraction time, timezone, filters, row count, and owner.
- A reusable reporting template with the frozen baseline column locked and empty checkpoint columns for the agreed cadence.
- An annotation ledger naming the change, exact date and time, affected scope, owner, expected metric, direction, observation window, and checkpoint date.
Every displayed figure must be dated and sourced. Round for presentation only; keep the unrounded source value in the workbook. Protect the baseline columns from edits, and create later checkpoint columns rather than overwriting the start.
What goes wrong
Baselining only sitewide totals. The total looks authoritative but conceals opposing movements. Prevent this by making directory, page type, and business segment required dimensions and treating the sitewide figure as a roll-up.
Forgetting to freeze the export. Live tools recalculate as data, competitors, and definitions change. A screenshot cannot be filtered or reconciled. Store raw rows, the manifest, and a read-only copy on the same day.
Starting work before capture. Teams often promise to reconstruct the baseline later from memory or dashboard history. Memory does not preserve filters, prompt wording, an indexed set, or the exact moment tracking changed. Stop the release or label the comparison reconstructed.
Changing the tracked set midstream. Adding easy-win keywords or removing prompts where the brand is absent makes later scores incomparable. Preserve the original cohort and report new additions as a separate cohort.
Using zero for missing. Zero means the system observed none; missing means the system did not observe. Keep separate states for absent, unavailable, insufficient volume, connector failure, and not applicable.
Treating competitor estimates as owned data. A competitor’s observable rankings or citations can be compared; its private traffic and revenue cannot. Do not manufacture symmetry by inserting estimated business outcomes.
Annotating only successful launches. Attribution becomes biased when the ledger omits outages, reversals, campaigns, tracking fixes, and work that missed its target. The habit begins here: every material change gets a dated annotation, regardless of whether the team expects it to look good.
Next phase
The measurement owner hands keyword and prompt research the frozen document, export bundle, reporting template, segment map, approved competitive set, existing keyword and prompt cohorts, coverage gaps, and annotation rules. The research owner signs that the files open, totals reconcile, and baseline columns are locked before expanding the opportunity set.
The next phase may discover new keywords, prompts, topics, or competitors. Add them as dated expansion cohorts; do not rewrite the P5 starting set. That preserves two valid questions: how the original tracked universe changed, and how the broader program performs after its measurement scope expands.
The handoff is complete when the research owner can name the starting performance of every priority segment, identify which comparisons are provisional, and create new cohorts without altering the frozen evidence.
FAQ
Frequently asked questions
Can we build a baseline after implementation has started?
How much history should an SEO baseline include?
Should we baseline the whole site or only pages we plan to change?
What if AmICited or Search Console has missing data?
How often should the baseline document be updated?
More tutorials in this section
Ready to put it into practice?
Free check · 7-day trial · no credit card