Capability · Technical SEO
Technical SEO that makes a schema graph LLMs can read.
Schema with @id threading, canonical structure, metadata discipline, and Core Web Vitals work — shipped sitewide by end of Month 2 of the engagement.
What this is
The technical SEO work is everything that makes search engines — Google’s index and the answer engines — read your site as a coherent knowledge entity. It is unglamorous; the productized schema, canonical URL strategy, metadata discipline, and Core Web Vitals work are decided once and applied sitewide.
Most SaaS marketing sites have a Schema.org Organization block in the <head> and call schema “done”. That is not schema. Schema is a threaded @graph where Organization, WebSite, Service, Offer, Person, FAQPage, Article, and BreadcrumbList nodes reference each other by @id. When a Service node says provider: { "@id": "/#organization" } instead of duplicating the Organization fields inline, the graph collapses into a single knowledge entity that answer engines can navigate.
How we run it
Audit (Days 1–14)
We crawl the site, parse the JSON-LD on every route, and produce a written graph map. We run Schema.org validator + Google Rich Results Test. We export Search Console coverage and rank, GA4 traffic, and SEMrush AI Visibility for the canonical query bank. The Month 0 baseline goes live in the dashboard on Day 21.
Schema graph (Days 14–45)
We ship the threaded @graph sitewide. Every route emits a single <script type="application/ld+json"> block; every node has an @id that resolves; every cross-reference uses @id instead of duplicating fields. The pattern is the same one this site itself ships — see src/lib/schema-graph.ts in the public repo.
Canonical structure + metadata (Days 30–60)
We resolve duplicate-coverage URLs to a single canonical, and we rewrite meta titles and descriptions to match search intent rather than stuffing anchor language. The Adalo §3.2 rule is non-negotiable: anchor language belongs in schema and body; meta titles target the actual query. Build-time validators reject pages that violate it.
Core Web Vitals (Days 60–90)
LCP under 1.5s, INP under 200ms, CLS under 0.05 across the canonical query landing pages. Image optimisation, JS-bundle reduction, font-loading discipline. Where the bottleneck is the CMS itself, we propose Astro migration — but most clients hit the targets without replatforming.
What you get
- Sitewide threaded
@graph— one JSON-LD block per route, every node with a resolvable@id. Validator passes. - Canonical URL strategy — written map of every duplicate-coverage URL pair, the canonical chosen, the
rel=canonicalupdates that landed. - Metadata audit + fixes — every page’s title and description checked against the SEO/GEO layer separation rule. Build pipeline rejects future bleed.
- CWV report — LCP/INP/CLS per route, deltas vs Month 0, list of changes that produced each delta.
- Build-pipeline guardrails — the validator that rejects anchor-bleed in meta tags and unthreaded schema graphs ships into your CI so future PRs cannot break the work.
How this connects to the rest
Technical SEO is one of three layers the engagement runs in parallel. The other two are positioning (the spine) and content cadence (the throughput). Schema is what makes the spine readable to LLMs; canonical structure is what makes the cadence countable as cluster authority instead of dilution.
For the dual SEO + GEO discipline behind it, see LLM discoverability. For how we measure all of this monthly, see the measurement framework.