SEO — the fundamentals
Every page carries its own title, description and canonical URL — none of it inherited from the front page. Every case, guide and page is described as structured data (schema.org / JSON-LD): one Organization and one Person, referenced by the same ID from every page that mentions them, instead of repeating the same facts with a slightly different shape each time. The sitemap only moves a page's lastmod when its content actually changed, not on every deploy — telling a crawler everything changed every time is how it learns to ignore the field.
GEO and AEO — legible to a machine, not just a person
The site ships an llms.txt: a plain-text map for language models, pointing straight at every case and guide with one sentence each. robots.txt explicitly allows AI crawlers rather than blocking them by default. This very page carries its own FAQPage markup, below — the same format Google and AI answer engines use to answer a question directly, without anyone needing to click through.
Chrome recently shipped an entirely new Lighthouse category: Agentic Browsing — whether a page is legible to an AI agent browsing on someone's behalf. Among other things, it checks for exactly that llms.txt file, and whether the page's accessibility tree is well-formed. kodekid.app scores 100 on it.
Speed — measured, not guessed
No buzzwords, just numbers. Images and video served from Supabase Storage cache for a full year — Supabase's own default is one hour, which meant a returning visitor re-fetched every case image on every visit. A handful of security headers (CSP, HSTS, COOP) are set without trading away speed to get them. A tighter target browser list is in place and ready to drop unnecessary JavaScript polyfills the moment two known bugs in Next.js's own bundler are fixed upstream (tracked directly in the code); until then it already benefits the CSS, autoprefixed precisely to the browsers this site actually needs to support.
The three numbers Google's ranking actually looks at — Core Web Vitals — measured 18 September 2026, same runs as the scores above:
| Metric | Desktop | Mobile | "Good" is |
|---|---|---|---|
| Largest Contentful Paint | 1.5 s | 5.7 s | ≤ 2.5 s |
| Cumulative Layout Shift | 0.02 | 0.01 | ≤ 0.1 |
| Total Blocking Time | 10 ms | 150 ms | ≤ 200 ms |
Mobile LCP is the one weak spot in these numbers — over the "good" threshold, not just slower than desktop. That's a real thing to fix, not something this page pretends isn't there.
Accessibility — 100 on desktop, 96 on mobile, and that's deliberate
The four points are one thing: a text/background contrast ratio kept exactly as designed rather than turned up to hit a rounder number. Everything else — labels, focus order, alt text, video descriptions — is there because it should be, not because a tool demanded it.
Want the same?
This is exactly the kind of work I do for clients — nobody just asked to see it. See what it costs.