Writing

SEO: what we have had to fix

30 write-ups from production, newest first. Each one is a problem hit on a real project and how it was diagnosed and fixed.

30 articles
5 min read

Next.js Metadata API, Sitemaps and Structured Data

SEO plumbing for an App Router site: generateMetadata from one registry, canonical and Open Graph defaults, sitemap.ts, JSON-LD and the checks that catch drift.

Next.jsSEO
5 min read

Indexed in GSC but Missing from site: Search

Indexed in GSC but missing from site: search does not automatically mean deindexing. Here is the debugging path I use before I panic or re-submit URLs.

SEOGoogle Search Console
5 min read

PageSpeed LCP Different From Field Data Fix Guide

PageSpeed Insights LCP score different from CrUX field data? Fix the lab vs real-user gap with throttling, viewport, and resource priority hints.

Core Web VitalsPerformance
6 min read

Cookie Consent Banner CLS Fix: Stop the Layout Shift

Cookie consent banner tanking your CLS score and Core Web Vitals on first paint? Fix the late-injected banner, reserved space, and animation timing in code.

PerformanceCore Web Vitals
7 min read

Crawled Currently Not Indexed in GSC: The Real Fix

Google Search Console shows Crawled currently not indexed on your pages? Here is why it happens and the real fix that actually gets URLs indexed quickly.

SEOGoogle Search Console
6 min read

Technical SEO Audit Checklist for 2026

A practical technical SEO audit checklist for 2026 covering crawlability, indexation, rendering, internal links, structured data, and Core Web Vitals.

SEOTechnical SEO
4 min read

React SPA Dynamic Meta Tags Fix

React SPA dynamic meta tags still miss crawlers and link previews when they only exist after hydration. Here is the scalable SEO fix I recommend today.

ReactSEO
5 min read

GA4 Page Views Not Tracking in Next.js App Router

GA4 page views not firing on client-side navigation in Next.js App Router? Track route changes with usePathname, useSearchParams, and a manual gtag event.

SEOAnalytics