SEO for Solos

Measurement

Measurement covers 6 of the SEO for Soloschecklist's implementation checks. How to tell whether any of this worked. Without segmentation you cannot distinguish an indexation problem from a ranking problem.

6
Checks in group
1
Free snippets
3.3
Average impact
of 5
10
Position
of 12 groups

0 of 6

Saved in this browser

6 checks shown.

Measurement

How to tell whether any of this worked. Without segmentation you cannot distinguish an indexation problem from a ranking problem.

  • Search Console queries are segmented by page tier, not read in aggregate4/M

    Why it matters

    Sitewide impressions hide everything. A programmatic tier can be collapsing while the total looks flat because the blog is growing.

    How to verify

    In Search Console, filter Pages by a URL pattern per tier and confirm you can produce impressions and clicks for each tier separately.

    measure-gsc-by-tierImpact 4/5MediumRead the chapter
  • You can distinguish an indexation problem from a ranking problem4/S

    Why it matters

    They look identical in a traffic chart and have opposite fixes. Impressions near zero with pages indexed is a ranking problem; pages not indexed is a crawl or quality problem.

    How to verify

    For a struggling tier, compare submitted versus indexed in the Pages report against impressions in the Performance report. Zero impressions with full indexation is a ranking problem.

    measure-indexation-vs-rankingImpact 4/5SmallFreeRead the chapter
  • Revenue events fire server-side from the webhook, never from a client success page4/M

    Why it matters

    A success page is skipped on redirect failure, blocked by extensions and replayed on refresh. Revenue reporting built on it is wrong in both directions.

    How to verify

    Complete a test purchase, close the tab before the success page loads, and confirm the purchase event still recorded exactly once.

    measure-server-side-revenueImpact 4/5MediumRead the chapter
  • Event names come from one const object, imported everywhere3/S

    Why it matters

    A typo in an event name is a silently broken funnel nobody notices for a month, and renaming an event after launch orphans every chart built on it.

    How to verify

    grep -rn 'capture("' app components | grep -v EVENTS

    Then confirm no raw string event names.

    measure-event-taxonomyImpact 3/5SmallRead the chapter
  • Web vitals are captured with element attribution, not just a number2/M

    Why it matters

    Knowing LCP moved from 1.4s to 2.6s is not actionable. Knowing it moved and now points at a specific image is.

    How to verify

    Confirm the LCP event payload includes the element tag and identifier, then check a real event in the analytics tool.

    measure-web-vitals-attributionImpact 2/5MediumRead the chapter
  • Analytics is reverse-proxied through your own origin3/S

    Why it matters

    Ad blockers block the analytics vendor's domain, not yours. Without the proxy an unknown and non-random share of the funnel is invisible.

    How to verify

    curl -s -o /dev/null -w '%{http_code}\n' https://example.com/ingest/static/array.js

    Then confirm 200.

    measure-analytics-proxiedImpact 3/5SmallRead the chapter