Scenario · Content and search
Which 2–3 pages to optimise this month
“Which 2–3 pages do we work on this month, and why those?”
With around two hundred pages up for review every month, the strategist's real job isn't auditing every one of them — it's naming the two or three where work will actually move a number, and knowing whether each one has a traffic problem or a conversion problem, because those need completely different fixes. This pulls the behavior and search data needed to make that call, scores each candidate against both possibilities, and hands back a short, reasoned shortlist instead of another two-hundred-row spreadsheet nobody can act on.
What to ask for
See it work
A real run of On-page SEO:
FAIL — 1 page(s) on toolkit-tests.pages.dev
[error] missing <title>
[warn] missing meta description
[error] no <h1> on the page
[warn] no rel=canonical link
[warn] no viewport meta (mobile rendering)
[warn] no lang attribute on <html>
[warn] no Open Graph tags — shared links get a guessed title/description and no image
[info] no <link rel="icon"> declared (a root /favicon.ico may still resolve; declare one for a modern SVG/PNG icon)
[info] no apple-touch-icon — iOS home-screen bookmarks fall back to a page screenshot
[info] no web app manifest (<link rel="manifest">) — needed for an installable PWA / richer mobile metadata
[info] no theme-color meta — mobile browsers use it to tint the address bar
[info] no structured data (see structured-data-schema)
playbook: local fallback
report: ./out/on-page-seo-on-page-seo.html
text: ./out/on-page-seo-on-page-seo.txtThe captured report, exactly as a run hands it to a client —open the full report ↗
The Page Optimization board runs ~200 rows a month. The strategist’s job is not to audit every page — it is to name the two or three where work will actually move the number. The distinction that matters is the one the human currently adds: is this a traffic problem or a conversion problem — because that changes the fix entirely.
- Fix the window first. Calendar month against the previous month, and the same month last year where seasonality matters. A cosmetic practice’s January is not its June; month-on-month alone will misreport a seasonal swing as a collapse. No window, no diagnosis.
- Pull behaviour — GA4 sessions and key events per page. The read is sessions, users and key events by page over the window; the comparison is the previous window. A page with meaningful sessions but zero or weak key events is a conversion problem, not a traffic problem. A page with no sessions is a traffic problem. Without GA4, label the behaviour read “Not verified — data unavailable (GA4 not configured)” and continue on search data alone — do not block.
- Pull search — GSC clicks, impressions, CTR and position per page and per query. The read is the same window plus the comparator. A page whose impressions held while position slid 3 → 11 is losing the ranking it had; a page whose impressions fell with position is losing visibility. Without GSC, label the search read “Not verified — data unavailable (GSC not configured)” and continue on behaviour data alone.
- Add SEMrush as directional cross-check where configured. Positions 4–20, intent, volume and competitor gap are third-party estimates — cross-check any meaningful trend with GSC before elevating it. When the key is not configured, label the enrichment “Not verified — data unavailable (SEMrush not configured)”.
- Score each candidate as traffic vs conversion. Traffic problem: meaningful query volume exists for the page’s intent but the page has no visibility (no impressions, positions 11–20, or a recent position loss). Conversion problem: the page has traffic (organic sessions, Clarity sessions, impressions with clicks) but no key events or a low conversion rate relative to peer pages. Name which it is per page — that is the value the human adds, and it determines whether the fix is discoverability (title, internal links, schema, brief) or on-page (CTA, form, trust, content).
- Rank to a 2–3 page shortlist, each with its reason and the numbers behind it. No more than three. Each row states: page + intent, traffic vs conversion label, sessions / key events / position movement that earned the rank, and what fixing it would plausibly move (CTR, rank band, key-event count). A page that already converts well but slipped in position is a different row than a page that ranks well but never converts — do not average them into one blended score.
- Do not invent what is not there. No credentials, no medical claims, no analytics that were not pulled, no task history that was not read, no competitor facts beyond what SEMrush returned. A contractual absence (no GA4, no GSC, no Monday task history) is distinguished from a fault and never graded as one. See the entitlements pattern: absence when not contracted is not a defect.
- [manual] Review and record the choice. The shortlist is a recommendation; the strategist approves the two that will actually be worked. Record the approved pair plus the numbers as the baseline that the per-page work plan will be measured against.
- [manual] Hand off each approved page to the selected-page work plan. One page, one implementation-ready change list with priority and post-change KPI, built from the same evidence set.
Traffic vs conversion is the whole point
A page with 255 Clarity sessions and zero key events does not need more traffic; it needs a call to action that exists and is reachable. A page that slid from 3 to 11 but still converts visitors who do arrive needs discoverability, not a rewritten CTA. Ranking the two together as one priority list without that label hands the editor the wrong job. The shortlist’s job is to make that distinction visible before any work starts.
What this does not cover
The work itself. Selection names the pages and the reason; the per-page work plan turns the top pick into an implementation-ready change list. It also cannot see value that does not show up as sessions, key events or position: a thin page that closes bookings by phone looks identical to a thin page nobody wants, and a contractual absence of GA4 or GSC is not a fault.