SEO Evidence: How to Prove an SEO Finding Is Real

AI OVERVIEW

SEO evidence connects technical findings to measurable proof, making issues easier to verify, document, fix, and compare over time.

"The page has a canonical problem" is an observation. Showing the URL, the canonical it returns, the canonical it should return, the canonical Google actually selected, and how you checked turns that observation into a finding someone else can verify.

SEO findings are rarely acted on by the person who found them. Developers, content teams, clients, and other SEOs need to understand what was found, where, why it matters, and whether the fix worked. When a finding rests on authority alone, it gets questioned, deprioritized, or fixed the wrong way. When it rests on evidence, the conversation changes.

Observation vs. Finding

An observation describes what a tool or person saw. A finding states what was observed, what was expected, and provides enough evidence for someone else to reach the same conclusion.

Observation

Some pages have missing H1s.

Finding

27 of 265 crawled HTML pages returned no H1 in the rendered HTML (crawl of Oct 5, 2026, Googlebot smartphone user agent, JavaScript rendering on). Affected URLs are in the export; page source was checked on a sample of five to confirm.

The second version can be checked independently. That's the standard an audit should aim for: not an SEO opinion, but an auditable finding.

Detected Condition Is Not a Confirmed Problem

A crawler detects conditions. An SEO professional decides whether those conditions are problems. Treating every crawler warning as confirmed is the fastest way to lose a developer's trust.

Two examples:

  • Multiple H1s is evidence of a structural condition, not of an SEO penalty. Google has said multiple H1s are fine when the structure makes sense.
  • A 65-character title is evidence of length, not of a ranking problem. Google truncates by pixel width (roughly 600px), not characters, and often rewrites titles anyway.

Label each finding with how far the evidence actually goes:

Confidence levelMeaning
DetectedA tool reported a condition. Not yet reviewed.
ConfirmedThe condition was reproduced and is an implementation error.
RiskConfirmed, and it plausibly affects crawling, indexing, or ranking.
Verified issueGoogle's own data (URL Inspection, Search Console, logs) shows the effect.
No actionReviewed and intentional or harmless.

Clients and developers can then prioritize by confidence, not by how alarming a warning label sounds.

The Finding Format

A consistent structure stops audits from becoming collections of unexplained warnings. Every finding should carry these fields:

FieldWhat it answers
FindingWhat is wrong?
Affected URLsWhere? Full list exported, with a representative sample in the report.
ObservedThe exact value detected.
ExpectedWhat it should be, and why.
Crawl contextDate, user agent, raw or rendered HTML, crawl configuration.
EvidenceCrawl data, source, headers, Google tool output.
ConfidenceDetected, confirmed, risk, verified, or no action.
ImpactSearch Console clicks and impressions on affected URLs.
RecommendationWhat to change, or "no change required."
VerificationHow you'll confirm the fix worked.

Example

Finding: Product template outputs more than one H1.

Affected URLs: 212 product pages (export attached). Sample:

URLH1 countH1 values
/products/oak-desk/2"Oak Desk" / "Customer Reviews"
/products/walnut-shelf/2"Walnut Shelf" / "Customer Reviews"

Observed: The reviews widget renders its heading as an H1 on every product page.

Expected: One H1 for the product name; widget headings as H2.

Crawl context: Oct 5, 2026, rendered HTML, Googlebot smartphone.

Confidence: Confirmed. Low SEO risk, but a clear implementation error in one component.

Recommendation: Change the widget heading to H2 in the component.

Verification: Re-crawl /products/ and compare H1 counts with this audit.

Note that the recommendation comes from the evidence. The sample showed the second H1 was always the same widget, which pointed to a one-line component fix instead of 212 content edits.

Record the Crawl Context

Many "we can't reproduce it" disputes between SEOs and developers come down to different conditions. The same URL can return different HTML depending on how it's requested. Every finding should state:

  • Crawl date and time
  • User agent
  • Raw or rendered HTML
  • JavaScript rendering on or off
  • Request location
  • Cookies or login state
  • CDN cache state

A canonical injected by JavaScript exists in the rendered HTML but not the raw source. A firewall may serve Googlebot a challenge page while a browser sees content. Without the context, two people can check the same URL and both be right.

Match the Evidence to the Claim

Collect the smallest amount of evidence that proves the finding. Proving a missing canonical needs the URL and the response. Proving an incorrect canonical needs much more.

Missing or duplicate title

URL, status, extracted title, and for duplicates, the shared text and all URLs using it.

Missing H1

URL, H1 count, extracted heading structure, rendered HTML confirmation.

Incorrect canonical

Declared canonical (HTML and HTTP Link header), expected canonical, target status, and Google-selected canonical from URL Inspection.

Broken internal link

Source URL, destination URL, status returned, anchor text, link location.

robots.txt block

URL, the matching rule, the user agent evaluated, and the Search Console robots.txt report.

Structured data

Expected type, detected markup, and results from the Rich Results Test or Schema Markup Validator.

Noindex

Meta robots value and X-Robots-Tag header, since either can apply.

Status and redirects

Full redirect chain and final status, ideally as rerunnable command output.

For status codes, headers, and redirects, the most developer-friendly evidence is output they can rerun themselves:

curl -sI https://www.example.com/old-page/
HTTP/2 301
location: https://www.example.com/new-page/
x-robots-tag: noindex

That three-line response proves a redirect and a header-level noindex faster than any screenshot.

Add Google's Own Evidence

Crawler evidence shows what the page contains. Google's evidence shows what search engines did with it. For any finding rated as a risk, add at least one:

SourceWhat it proves
URL InspectionIndexed status, user-declared vs. Google-selected canonical, live test vs. indexed version
Page Indexing reportHow many URLs Google excludes, and for what reason
robots.txt reportThe robots.txt version Google fetched and any errors
Server logsWhat Googlebot requested and the responses it received
Performance reportClicks and impressions on affected URLs, for impact and priority

The Performance report also fixes the weakest field in most audits: impact. "Affects 212 pages" is a count. "Affects 212 pages that earned 48,000 clicks last quarter" is a priority.

Evidence Also Proves When Nothing Is Wrong

Evidence isn't only for proving problems. A crawler may flag an unusual URL pattern, a canonical pointing elsewhere, or a page missing from the sitemap. Checking canonicals, internal links, indexability, and the page's purpose may show it's entirely intentional.

"No change required" is a valid findingAn audit that can say "leave it alone" with evidence is more credible than one that recommends fixing everything. It also saves developer time for the issues that matter.

Prove the Fix Worked

A recommendation isn't the end of the evidence trail. "Did we deploy the fix?" and "did the deployed change produce the expected SEO state?" are different questions. The second needs a re-crawl compared against the original evidence, with the same crawl configuration:

MetricBeforeAfterResult
Pages crawled10,00010,050+0.5%
Missing meta descriptions500 (5.0%)12 (0.1%)Improved
Duplicate descriptions3841Regression
4xx pages2424Unchanged

Three things make this comparison trustworthy. Rates sit alongside counts, because the crawl grew. The regression is reported, not hidden: the template fix created three new duplicates worth checking. And the 12 remaining pages become a new, smaller finding with their own evidence.

Each crawl becomes a snapshot. Snapshots can be compared, comparisons build a history, and the history is the evidence trail. It's the same record that makes change management verifiable and incident investigation possible.

What Good SEO Evidence Looks Like

1

Specific

Exact URLs, elements, and values.

2

Reproducible

Someone else gets the same result under the same crawl context.

3

Relevant

Supports the claim, nothing extra.

4

Time-bound

Dated, so it can be compared later.

5

Traceable

Linked to a URL, template, crawl, or deployment.

6

Proportional

A missing title needs one line. An indexing collapse needs much more.

Evidence Checklist

Before delivering a finding, confirm:

  • Affected URLs are listed or exported
  • Observed and expected values are stated
  • Crawl context is recorded
  • The finding was reproduced
  • A confidence level is assigned
  • False positives were considered
  • Google's data was checked for risks
  • Impact uses real traffic data
  • The recommendation follows from the evidence
  • A verification method is defined

If several are missing, the finding needs more investigation before it becomes a recommendation.

From SEO Report to Evidence Trail

A crawler's job isn't just to produce warnings. It's to establish the factual record behind an SEO decision. SiteAuditLint keeps every crawl as part of the site's audit history, so the evidence for a finding, the state after the fix, and any regressions in between stay connected instead of scattered across exports.

A useful audit answers three questions, in order:

  • What is wrong?
  • How do we know?
  • Did we actually fix it?

An SEO report lists problems. An evidence trail proves them.