Blog

Tutorial

SEO Reporting With Claude or ChatGPT: Turn Evidence Into Decisions

Use Claude or ChatGPT and RankParse to build SEO reports from verified data, connect metrics to business decisions, and explain what attribution cannot prove.

By Abhi Bavishi, Updated , 15 min read

An SEO report can contain accurate charts and still leave everyone unsure what to do next. Traffic rose. Average position improved. Several articles went live. Should the company invest more, fix something, or wait?

A useful report answers that question. It connects a business objective to observable changes, separates evidence from interpretation, and names the next decision with an owner.

You do not need perfect attribution to do this. You need consistent definitions, enough segmentation to avoid misleading averages, and the discipline to say what the data cannot establish.

Use Claude or ChatGPT to reconcile your exports, then use RankParse’s get_page_seo and get_site_health checks to investigate the pages behind a meaningful change. Save those observations in an evidence register and ask the assistant to draft a decision memo that cites it. Your performance exports establish what changed; the RankParse checks identify current conditions worth verifying. The workflow below is a proposed process, not a tested agent execution.

Agree on the decision before choosing metrics

Start the reporting cycle with the question leadership needs answered. For example:

Are our implementation guides helping attract qualified inquiries, and should we spend next month's content budget improving them?

That question defines a useful measurement chain:

LayerExample measureWhat it can help decide
Business outcomeQualified inquiries associated with organic acquisitionWhether the audience appears commercially relevant
On-site behaviorInquiry submissions from organic landing sessionsWhether visits lead to a measurable next step
Search performanceClicks and impressions for the guide page groupWhether visibility and search visits are changing
DeliveryGuides updated and technical blockers resolvedWhether planned work happened

Delivery measures explain effort. They do not prove an outcome. Publishing six articles is worth reporting if it explains capacity or an experiment, but it should not carry the same weight as useful customer behavior.

For an ecommerce store, replace inquiries with orders, net revenue, or contribution margin if reliable data is available. Account for cancellations and returns consistently. For a publisher, the relevant outcome might be subscriptions or engaged readership. Choose the outcome the business actually values.

Keep three systems separate enough to understand

Most reports combine search data, analytics, and a sales or transaction system. Each observes a different part of the journey.

Google Search Console measures activity in Google Search, including clicks, impressions, click-through rate, and average position. Its performance metrics are not measures of website sessions or sales. Average position is an aggregate with a specific definition, not a fixed rank that every searcher saw. Google's Performance report documentation explains the metrics and their limitations.

Website analytics measures observed visits and events under its collection and attribution rules. Consent choices, blocked scripts, configuration changes, and channel definitions can affect the numbers.

A CRM or order system records business events. It may contain better information about lead quality or revenue, while having incomplete or inconsistent acquisition-source information.

Do not force the counts to match. A Search Console click and an analytics session are different events recorded by different systems. Instead, document what each number means and investigate abrupt changes in the relationship between them.

For every headline metric, keep a short definition: source, filters, date basis, timezone, attribution scope, and exclusions. “Organic leads” is not a sufficient definition. “Unique inquiry submissions during sessions classified as Organic Search, excluding test and spam submissions” is much more useful.

If you add competitor estimates, label them separately. Different SEO tools produce different numbers; mixing estimated competitor traffic with measured site sessions creates a comparison that looks more direct than it is.

Assemble an evidence pack for your assistant

For Claude or ChatGPT on the web, connect RankParse through its MCP setup guide and supply your Search Console, analytics, and CRM exports separately. The default OAuth connector has read-only SEO research tools; it does not include Search Console analytics. Direct GSC access requires the API-key route in a supported client, such as Claude Code, plus a connected Search Console integration in RankParse. Neither route supplies your CRM outcomes automatically.

Prepare aggregate exports with matching periods and a short data dictionary. Include landing-page groups, inquiry definitions, and qualification windows; remove personal lead details that the analysis does not need. Supply a release log so the agent can distinguish a recorded site change from a guessed explanation.

Use this prompt with the files attached:

Build a monthly SEO decision memo for [business objective] using these exports and definitions. First list sources, date ranges, filters, missing fields, and any incompatible denominators. Reconcile page-group totals before calculating changes. Separate search clicks, website sessions, submissions, and qualified inquiries. For the three pages with the largest relevant decline, use RankParse to inspect current on-page elements and site-health signals. Treat current checks as diagnostic context, not proof of historical cause. Return observations, competing explanations, verification steps, and one recommended business decision with an owner. Cite the source file or inspected URL for each finding. Mark unknowns explicitly; do not infer revenue or causal impact.

Run the reconciliation stage first. If exports overlap, have missing rows, or use incompatible attribution scopes, resolve that before accepting a polished summary. Then let the agent investigate a small set of pages with RankParse. A current canonical or redirect issue may warrant follow-up; a normal check does not explain last month's decline.

Finally, compare the assistant's key calculations with the source reports and have sales operations confirm qualification definitions. RankParse's link evidence can support a separate competitive investigation, but a periodic link snapshot cannot prove a recent loss of links caused a traffic change. Keep the report's business conclusion tied to evidence you actually have.

Give RankParse a specific diagnostic question

Use RankParse after reconciling the outcome data, when the report has identified which pages deserve attention. Calling every available tool can bury a useful question under unrelated scores. For each selected URL, write a hypothesis such as “an unintended canonical may be affecting this implementation page” or “the page now lands on a different destination.” The hypothesis determines the evidence to collect.

Prepare a small investigation packet with url, page_group, comparison_period, observed_change, release_note, and expected_behavior. Include the source filename and row identifier for the observed change. Your packet might contain three implementation pages with declining search clicks and one unaffected page using the same template. The unaffected page is a diagnostic comparison, not an experimental control that proves causality.

Use these tool choices to keep the work relevant:

Reporting questionRankParse evidenceWhat the report must leave unresolved
Does the affected page currently serve the intended version?get_page_seo: final_url, status_code, canonical.url, robots.rawIts historical state and Google's selected canonical
Is there a domain-level access signal worth investigating?get_site_health: homepage and robots checksBehavior across every route and actual Googlebot access
Is loading performance a plausible usability issue?get_page_performance: lab metrics, strategy, cached_atReal-user field values and historical causal impact
Is a linked resource strategically worth maintaining?get_top_pages: returned linked pages and referring-domain countsIts traffic, conversions, and current complete link profile

Start with page checks; add other calls only when their answer could change the recommendation. The following prompt makes the current-versus-historical distinction explicit:

Use get_page_seo for these three affected URLs and the supplied
comparison URL. Preserve final_url, status_code, canonical.url,
robots.raw, title.text, and the check time in a current-state table.
Use get_site_health once for [domain]. Keep domain observations
separate from page observations.

Join this table to the supplied reporting rows by the original URL.
Do not silently replace a URL with its canonical destination or
merge their historical metrics. Mark unmatched rows.

For each anomaly, state: current observation, possible explanation,
required verification, and whether it can change this month's
decision. Do not claim the current check explains the past decline.

The distinction between original and final URLs is particularly important after a migration. Two old URLs might redirect to one destination, but adding their metrics to that destination without a documented rule can double-count a page group or conceal a change in scope. Keep a mapping sheet that preserves original URLs and records the intended reporting treatment.

Make the supporting evidence auditable

Store a short evidence register alongside the memo. Each record needs an ID, source, target or file row, observation time, data period, and limitation. A release-log entry and a page-check response should have separate IDs even when they concern the same URL. This lets a reviewer challenge a causal interpretation without losing the underlying observations.

For example, the following is illustrative and invented, not a tool execution:

IDEvidenceInterpretation allowed
R1Reconciled export shows implementation-page sessions declining from 2,000 to 1,800The recorded page group received fewer organic sessions under the supplied definition
R2Current get_page_seo result for /implementation returns status 200 but canonical /overviewThe fetched page currently declares another URL as canonical
R3Release log records a template change during the comparison periodThe timing makes a release-related explanation worth investigating
R4Browser/source check confirms the canonical; owner says it should be self-referentialAn unintended configuration needs repair, regardless of whether it explains all of R1

An actionable report row is: “Engineer corrects the confirmed canonical configuration; SEO owner verifies the change through get_page_seo and Search Console URL Inspection. Continue investigating the remaining pages. We have not attributed the group decline to this issue.” That is more useful than “technical SEO caused a 10% traffic loss.”

Ask the assistant to produce the decision artifact only after the evidence review:

Draft the decision memo using the reconciled metrics and evidence
register. Every factual diagnostic sentence must cite an evidence ID.
Label hypotheses explicitly. Include action, owner, dependency,
release verification, and later outcome review for each decision.

Audit your own draft: flag any claim about revenue, indexing,
causation, or historical page state that the sources do not support.
Replace unsupported claims with a verification task or an unknown.

Check at least the headline totals, the affected URL mapping, and the evidence behind the main recommendation yourself. The assistant can make internally consistent calculations from an incorrectly filtered export. Review the source reports using the same filters, and have the responsible team confirm that “qualified” means the same thing in both periods.

Handle missing data before explaining it

If the OAuth assistant says it cannot retrieve Search Console data, attach the scoped export; repeatedly requesting a GSC tool will not add it to that connector. An API-key client with the separately connected integration can use tools such as get_gsc_page_trend and get_gsc_page_queries, but its dates, property, filters, and returned coverage still need documenting. See the GSC endpoint guide for that route.

If a page fetch fails, write “current check unavailable” and use a manual browser check or supplied source. A failed tool request does not establish downtime. If get_site_health flags robots_txt.disallow_all, inspect the actual directives because that field is a heuristic. If a performance check returns yesterday's cached_at, keep that date: a repeat call can return cached results, so it cannot necessarily verify today's release. The performance response returns lab metrics; crux_data signals field-data availability, not field measurements in the response.

If a link table changed between reports, first compare snapshot releases, parameters, and partial-result status. Do not label the difference “links gained this month.” Keep that research separate from measured monthly acquisition unless you have independent evidence connecting the events.

For a solo marketer, investigate one important page group and preserve unresolved questions for the next cycle. For a larger organization, assign one owner to the shared metric definitions and keep department-specific interpretations below those definitions. Both approaches prevent the assistant from synthesizing incompatible spreadsheets into a deceptively precise company-wide conclusion.

A worked example: visits rise while qualified inquiries fall

The following report is fictional and illustrative. It describes a B2B software company with two groups of landing pages. Both periods contain 28 days, and the team compares inquiries created in each period after allowing the same 30-day qualification window.

MetricEarlier periodCurrent periodChange
Organic sessions, all pages4,0004,800+20%
Organic inquiry submissions8072−10%
Qualified inquiries from those submissions3224−25%
Qualified inquiries ÷ submissions40.0%33.3%−6.7 percentage points

The headline traffic result is positive. The business outcome gives the team a reason to investigate.

Segmenting by the page on which each session began reveals more:

Landing-page groupEarlier sessionsCurrent sessionsEarlier submissionsCurrent submissions
General educational articles2,0003,0002024
Product and implementation pages2,0001,8006048
Total4,0004,8008072

In this example, qualified inquiries from educational pages rose from 4 to 5, while those from product and implementation pages fell from 28 to 19. Those counts reconcile with the overall totals of 32 and 24.

The report now has a useful observation: the overall increase came from a page group with a lower observed inquiry rate, while the more commercially productive group lost sessions and submissions.

That is not yet an explanation. The data does not prove that educational content harmed performance, that rankings caused the decline, or that a recent page update failed. With only 24 qualified inquiries in the current cohort, a small number of cases can materially move the percentage.

The next actions should reduce uncertainty:

  1. Check tracking, form availability, spam filtering, and qualification rules for changes.
  2. Review Search Console performance for the product and implementation page group, split by relevant device and country where volume allows.
  3. Examine whether the decline is concentrated in particular pages or queries.
  4. Read the inquiry-quality notes to distinguish audience mismatch from delayed sales follow-up.

If a form broke, fix it. If one important page lost relevant visibility, investigate that page. If the apparent qualification drop disappears after late CRM updates, correct the interpretation before changing the content plan.

Use cohorts to avoid moving the denominator

Long sales cycles make monthly reports especially easy to misread.

Suppose an inquiry arrives in January and closes in April. A report of revenue closed in April answers a different question from a report of eventual revenue generated by January's inquiry cohort. Both can be useful, but they cannot be casually combined into one conversion rate.

For lead generation, choose between two views and label them:

  • Activity view: What happened this month, such as inquiries received or deals closed.
  • Cohort view: What happened to the inquiries acquired in a particular period after a defined amount of time.

Recent cohorts are incomplete. Mark them as provisional, or compare cohorts at the same age. The worked example uses a 30-day qualification window for that reason; a real company should choose a window that fits its process.

Apply similar care to content groups. If you add several pages to a group, rising total clicks may reflect a larger group rather than improving performance on existing pages. Keep a stable set for a like-for-like view, and show new pages separately when the distinction matters.

Explain attribution without making the report useless

A buyer might discover a guide through search, return through a saved link, speak to a colleague, and later book a demo after an email. Different attribution models assign credit differently.

A report can say that organic search was associated with a lead under a defined model. It generally cannot establish that SEO alone caused the sale.

Make three distinctions explicit:

Observed acquisition. Which channel or landing session your measurement system recorded.

Assigned credit. How an attribution model distributes conversion value among recorded interactions.

Incremental impact. What happened because of the investment compared with what would have happened without it.

Ordinary monthly reporting mostly covers the first two. Establishing incremental impact requires a credible comparison or experiment and careful treatment of other changes. A before-and-after chart alone is usually insufficient.

Use sales feedback, customer interviews, and self-reported discovery answers as supporting context. They can reveal journeys tracking misses, but they also have recall and selection limitations. Do not add their counts to analytics conversions as though they were necessarily different people.

Put the decision on the first page

The opening page should be readable without the charts. A reusable format is:

Objective: Increase qualified inquiries from manufacturers evaluating an implementation project.

Finding: Organic sessions increased 20%, while qualified inquiries in the comparable cohort declined from 32 to 24. Growth came mainly from general educational pages.

Confidence and limits: Moderate confidence in the page-group shift. Low confidence about its cause. Qualification counts are small; attribution follows the documented session source.

Decision: Investigate the product and implementation page decline before expanding the general article program.

Owner and deadline: Analytics owner verifies tracking this week; SEO owner reviews the affected pages next week; sales operations checks qualification consistency.

Reconsideration point: Review the findings before allocating the next production cycle. Change the recommendation if measurement errors explain the decline.

Attach only the charts needed to support those statements. Keep detailed exports available for investigation rather than making every reader work through them.

If several actions compete for the same people, use SEO audit prioritization to compare likely business value, evidence, effort, and dependencies. The report should help allocate work, not simply add tasks.

Investigate meaningful changes, not every fluctuation

Choose investigation thresholds around normal variation and business consequences. A consultancy receiving three inquiries a month should not change strategy because one month has two. Use a longer window and qualitative review where volumes are small. Account for seasonality, promotions, and site releases; neither equal-length nor year-over-year comparisons control for every change.

Avoid universal CTR or average-position targets. Query mix and search features affect both. Use Search Console page and query analysis to investigate meaningful groups before treating an average as a diagnosis.

Close the loop in the next report

Carry forward the previous report's decisions. State what happened, what was learned, and whether the next action changes.

A strong follow-up might say: “Tracking checks found no issue. The decline was concentrated on two implementation pages. Their relevant search clicks fell, while inquiry rates remained broadly similar. We will refresh the outdated migration instructions and review the pages again after enough comparable data accumulates.”

That still does not promise recovery or claim causation. It gives the team a defensible next move.

A report earns its place when someone can use it to allocate time, investigate a meaningful risk, or stop work that lacks evidence. If a metric changes but never changes a decision, move it out of the headline report.

Start free

Let your agent take the first pass.

100 free credits. No card. No seats.