Nando’s
Senior software engineer on the UK and Ireland replatform, migrating Nando’s customer‑facing websites from legacy Drupal to a unified headless platform built with Next.js and Storyblok, with a focus on performance, accessibility, and SEO.

Use this page when the CMS can publish content but still cannot reliably control titles, descriptions, canonicals, sitemaps, schema, or internal linking. This is about missing SEO controls in the content model and template contract, not runtime rendering bugs.
Fix the missing metadata, canonicals, sitemaps, schema, and internal‑link controls that often get left out of a headless CMS build.
Build a headless CMS-powered Next.js site with stronger content modelling, preview support, and data boundaries that scale well.
Websites have not been set-and-forget for a long time now, and without the technical know-how to update a static site, CMSes are a key part of web development.
Optimising HTML improves SEO, accessibility, and user experience. Here, I explore semantic HTML, clean code, alt text, and other best practices.
Senior software engineer on the UK and Ireland replatform, migrating Nando’s customer‑facing websites from legacy Drupal to a unified headless platform built with Next.js and Storyblok, with a focus on performance, accessibility, and SEO.

An all‑new identity and website. Making careful use of their extensive library of client imagery, this was a ground‑up build using Gatsby, Contentful, and Netlify for this world‑leading licensing company.

Technical director and lead developer for this digital‑centric design agency. A vibrant, animated, and engaging website developed using Gatsby, React, TypeScript, and Contentful.

Parent hub
Choose the right CMS operations fix when preview, freshness, or editorial performance has stopped being trustworthy.
Capability
Bring in engineering‑led SEO help when Google is not indexing important JavaScript pages because rendering, crawlability, metadata, or migration changes are getting in the way.
Adjacent scenario
Diagnose why Google is not indexing important JavaScript pages before incomplete HTML, unstable metadata, or routing changes keep them out of search.
Adjacent scenario
Fix content not updating from your CMS before stale pages and revalidation failures stop editors trusting what the live site is actually showing.
Related page
Bring in headless CMS consulting when CMS architecture, SEO controls, preview trust, or revalidation decisions are about to lock in operational pain.
Related page
Choose the right technical SEO recovery path when rankings, crawlability, or indexation dropped after a release or migration.
Send me the affected page or route, point me at the code if that helps, and tell me what you expected to happen versus what is happening now. If this connects to a Next.js migration, technical SEO drop, performance issue, launch, or platform move, include that context too. I'll come back with the clearest next step.