Choose the question and reporting scope

A ranking report should connect search exposure to useful decisions, not merely list a position beside every keyword. State whether you are reviewing a fixed set of queries, the pages that received impressions or a third-party rank tracker. Those sources observe different things. This guide works with Search Console-style exports supplied by the reader and preserves their scope rather than inventing a live account connection.

Both exports must use the same property, dimension, search type, country, device and filters. Record their source and collection dates in Source. Describe omissions and provisional data in Scope. Search Console daily dates use Pacific Time. Supply non-overlapping periods in chronological order.

Define the metrics before judging them

Clicks describe visits initiated from eligible search results; impressions describe recorded search exposure, with rules that depend on the result type. CTR relates clicks to impressions. Average position is based on the topmost result for the property or page and its recorded impressions, not a universal rank every person sees. A manual search on your device is not a validation of the whole-period average.

Google · Compare a ranking report

CTR = total clicks / total impressions. Position = sum(position × impressions) / total impressions, as an estimate for these rows. Any unknown position with positive impressions makes this view’s position unknown. A negative position difference means a lower number, not proof of improved business results.

Google · Weighted row position

Prepare two comparable exports

Keep original exports unchanged and record when they were collected. Use the same final or provisional-data policy for both periods. Equal-length windows help a comparison but do not control seasonality or campaign changes. The worksheet allows unequal durations with a warning and never silently converts totals to daily rates. Query text is matched exactly after trimming outer whitespace; case and wording differences remain distinct.

Use Query or Page, Clicks, Impressions and Position columns. An optional CTR column must agree with the counts. Up to 2,000 rows and 1 MB per file. Use plain integers and decimal points, not thousands separators. Blank or dash positions stay unknown. Duplicate keys are rejected.

Files and notes stay in this browser. This worksheet compares supplied exports; it does not connect to Google, discover rankings or save to an account. Download a JSON draft to retain your work.

Read the worked query example

Load the query example, compare it and enable the common-key filter. The brand row has 900 impressions before and 200 after; the research row has 100 before and 800 after. Each row improves its position and CTR. The aggregate shifts toward the row with the lower CTR and larger position number. Compare the components before calling the combined number a site-wide loss.

Read the worked query example
Query or pageEarlier period · ImpressionsLater period · ImpressionsEarlier period · Weighted row positionLater period · Weighted row position
samplebrand90020021
link research100800108

Fictional practice data, not actual performance. In the matched query cohort, positions improve from 2 to 1 and from 10 to 8, yet the weighted average changes from 2.8 to 6.6 because impression weights change. CTR changes from 9.2% to 7.2% even though each query’s CTR rises.

Compare reports
Query or pageEarlier periodLater period
Clicks9272
Impressions10001000
CTR9.2%7.2%
Weighted row position2.86.6

Explain the change in impression mix

The earlier-only and later-only queries are observations about export membership. They do not prove that a keyword stopped ranking or started ranking. Privacy omissions, export limits and changed filters can all affect which rows appear. Retain a separate evidence request for those cases. Even a matched-only report can remain incomplete, and averaging rounded row positions yields an estimate rather than an exact property reconstruction.

Totals and weighted position describe only the supplied rows in this view. They do not reconstruct the Google property total. Page impressions can count differently from property impressions; query exports may omit rows. Never combine page and query tables into one total.

A key absent from one file stays unknown for that period. It is not automatically zero, newly ranking or lost. A supplied zero is a separate observation. No percentage change is computed from a zero baseline.

Google · Source scope and filters

Google · Queries

Review landing pages separately

Use a page export to decide which destination needs review. Compare the same canonical page and the same device and country scope. Google normally attributes performance to its selected canonical URL, so the reported page may differ from the address a user ultimately visits. A query table and a page table are separate projections: this worksheet cannot infer which query led to which page from independent exports.

Google · Weighted row position

Turn observations into a testable next step

Write an observation, a possible explanation and a next check. For example: impressions fell while CTR rose; the query mix may have shifted; inspect the same query and device segments before editing titles. When clicks rise, check the relevant landing-page measurement before claiming conversions. A ranking report alone does not establish revenue, a backlink’s effect or a technical fault.

Use the notes to separate an observed change, a hypothesis and a proposed next check. Do not attribute ranking or traffic changes to a backlink order from these exports alone.

Read a backlink report

Download, adapt and share the report

Download the query or page draft and restore it in the worksheet. Replace the fictional project, sources, scope, dates and CSVs before sharing. JSON retains inputs and notes; display filters reset when restored. The HTML is a self-contained review handoff that can be printed, while the comparison CSV includes every selected-cohort row. Neither is a live rank tracker, a full technical SEO audit or a free scan of an arbitrary website.

The matched-only switch changes the cohort and all totals and downloads. Search and pagination change only visible rows; downloads contain every row in the selected cohort. CSV output is a comparison, not an input file; use JSON to restore the session.

Queries · Earlier period CSV

Queries · Later period CSV

Queries · Save draft (JSON)

Queries · Download comparison (HTML)

Pages · Earlier period CSV

Pages · Later period CSV

Pages · Save draft (JSON)

Pages · Download comparison (HTML)