Currently Available: Need a skilled Software Developer for your next project?
Categories
SEO, GEO and AEO

How to Build an SEO Report That Explains What Changed

When visits from unpaid search results rise or fall, a useful search engine optimization (SEO) report shows what changed, which pages or queries changed, and how strong the evidence is for the explanation. The report records search performance over a set period and includes checks to help distinguish a real change from a measurement problem or an untested assumption.

Start with the metric that changed, then check which pages and search queries contributed to the change. Review relevant site changes and technical evidence before naming a cause. This tells readers what the data shows, what it cannot show, and what to check next.

Start with the metric that changed

Google Search Console measures how a site appears and gets clicks from Google Search. Its main performance metrics are impressions, clicks, click-through rate (CTR), and average position. Impressions count appearances in search results, clicks count visits from those results, and CTR is clicks divided by impressions. Average position summarizes the topmost position the site occupied across impressions, so it is not a fixed rank for one search. Google recommends focusing more on trends in clicks and impressions than on position alone in its explanation of Search Console performance metrics.

The relationship between the first three metrics helps explain a change in clicks:

Clicks = impressions × CTR

For example, in a hypothetical case, impressions rise from 100,000 to 120,000 while CTR falls from 2% to 1.5%. Clicks fall from 2,000 to 1,800. The site appeared more often but received fewer clicks. That arithmetic describes how the metrics fit together; it does not explain why CTR fell. A change in the mix of queries, devices, or search-result features could help explain it, but the report needs evidence before naming one of those as the cause.

For each important metric, show its earlier value, current value, and absolute change. Include the percentage change when the earlier value allows a meaningful calculation. For CTR, also show the change in percentage points. A drop from 2% to 1.5% is a decrease of 0.5 percentage points, or 25% compared with the earlier CTR. When the earlier value is zero, report the absolute change because the percentage change is undefined.

Locate the change before explaining it

A sitewide total can hide where a change occurred. In Search Console, compare the Pages and Queries views. Then check device and country, along with search appearance and search type, when those breakdowns fit the question. Google’s traffic-drop guidance recommends checking whether a decline affects the whole site, a group of pages, or a single page, and separating search types such as Web, Images, and News.

Check whether the change is concentrated on a few pages. If those pages account for much of the lost traffic, name them and the queries that bring people to them. If many parts of the site changed, say so. Focus on the pages and queries that explain the movement instead of reproducing every row in an export.

Use the same settings for both sides of the comparison. Name the date ranges. Identify the Search Console property (the site or group of URLs being measured) and the search type. Also state the latest date included in the data. Compare similar periods, and use a year-over-year comparison when seasonal demand could affect results. Search Console’s latest data can be incomplete; Google says data is normally available after two to three days. Search Console daily reporting also uses California time, while Google Analytics 4 (GA4) uses the time zone set for the Analytics property. Check these timing differences before interpreting a small change.

Use Search Console and GA4 for different parts of the journey

Search Console reports how people found and clicked a site in Google Search. GA4 reports activity after people arrive, including sessions, engagement, and key events such as purchases or form submissions. Its Traffic acquisition report helps you examine visits by source and medium.

These tools measure different things. A Search Console click is not the same as a GA4 session, so their totals can differ. They use different methods to collect and process data. Google’s explanation of Search Console data names privacy filtering and URL coverage. It also cites Analytics measurement that depends on JavaScript and reporting time zones.

Use Search Console to explain changes in how often the site appeared in search results and how many clicks it received. Use GA4 to examine what visitors did after arriving. When reporting conversions or revenue, name the GA4 dimension and attribution model used for the figure. An attribution model decides how to assign credit for key events among traffic sources, as described in Google’s documentation on reporting attribution models.

Test explanations against other evidence

A pattern in the metrics can suggest what to check, but it does not prove what caused the change.

What changed What to check next
Impressions and clicks both fell Inspect affected pages and queries, indexing reports, site changes, seasonality, and relevant search updates.
Impressions stayed similar while clicks fell Compare CTR by page, query, device, and search appearance. Check whether the query mix changed before attributing the drop to a title or description.
Impressions rose faster than clicks Review CTR and the changing mix of pages and queries. More appearances do not necessarily mean more visits.
Average position moved down Examine specific pages and queries. A sitewide average can change when the mix of impressions changes.
Search Console and GA4 totals diverged Check date ranges, time zones, URL coverage, Analytics tagging, and the dimensions used in GA4.

Then compare the performance dates with site changes. Review deployment and content records for edits to page content, templates, redirects, canonical tags, indexing directives, internal links, or URL structure. A change that happened before a traffic shift is relevant timing evidence, but timing alone does not show that the edit caused the shift.

If affected pages lost visibility, check whether Google can crawl and index representative URLs. Search Console’s Page indexing and Crawl stats reports provide site-level clues; URL Inspection provides information about a specific URL. Google’s crawling troubleshooting documentation distinguishes crawl problems from indexing outcomes. A recorded crawl does not, by itself, prove that a page is indexed or appearing in results.

Check broader explanations too. Compare demand for affected queries over similar periods, and review Google’s published information about ranking updates when timing makes that relevant. Check Search Console’s data anomaly notices before treating an unusual short-term movement as a change in site performance. A coincident search update or site edit is a lead to investigate, not proof of cause.

Check exported data before trusting the conclusion

Exports and third-party tools can contain errors that make a report seem more certain than its data supports. Before comparing fields, check that they describe the same thing. A URL wrapper, missing destination URL, or mislabeled domain can make a page-level comparison unreliable, even when the export looks complete.

In a one-time US-English Google results check on November 11, 2026, an API returned 65 organic result rows across eight queries. Sixty-three rows contained opaque google.com/goto URLs rather than destination URLs. A string comparison of those wrappers showed no matching URLs between query pairs, but that did not establish zero overlap between the actual destination pages. The destination overlap was unavailable from those unresolved fields. One row also labeled a result’s domain as google.com even though its title and breadcrumb pointed to Moz; those clues did not verify the full destination URL.

This finding applies only to those eight queries and that one snapshot. It does not describe Google results or the provider’s data in general. Keep the original rows and confirm that the destination URLs are available before drawing conclusions about which pages or query groups overlap. If the export does not reliably identify a field that the report depends on, state that limitation rather than making an assumption.

Google omits some queries for privacy, and its tables do not show every row represented in chart totals. A query table can reveal patterns, but it is not a complete record of all searches. State whether your analysis uses a table, an export, or another data source, and avoid presenting a partial query list as the full explanation.

Report AI search data within its limits

Google’s Generative AI performance report adds visibility data for AI Overviews and AI Mode in Search Console. Its report documentation describes impressions and page breakdowns for those features. Google also counts clicks on links in AI Overviews and AI Mode within the overall Web search type, according to its Search Console performance metric definitions.

This matters when you compare visibility in AI features with site traffic. A report can show impressions from AI features alongside all Web clicks, but those Web clicks do not show how many visits came from AI features. Use the AI report as evidence of visibility, not as a count of visits, conversions, or revenue.

Write the finding with clear limits

A strong report finding separates the observation from the explanation. For example: “Organic clicks fell during the comparison period, with most of the decline concentrated on a particular group of pages. Impressions changed less than clicks, so we are checking the query mix and CTR for those pages. A content update preceded the decline, but the available data does not establish that it caused the change.”

The first sentence says what changed and where. The next says what to investigate. The final sentence explains what the evidence cannot confirm. If a technical check, query breakdown, or site-change record supports a stronger explanation, state exactly what it confirms. If the cause is still uncertain, name the next check and who will do it.

A useful SEO report answers four questions: What changed? Where did it change? What evidence supports the explanation? What happens next? Keep the main finding short, then show the comparison, the affected pages or queries, and the checks that support it.

What I'm building

Delegate tasks. Get software.

Give Vroni a GitHub issue, bug report, spec, or rough idea. It reads the repo, plans the change, writes code, runs checks, and works toward a review-ready pull request.

Take a look at vroni.com

Email updates

Usually a new article and a few links I found interesting.

No spam. Unsubscribe with one click.

Leave a Reply

Your email address will not be published. Required fields are marked *