Footer Logo
Command Palette

Search for a command to run...

GitHub
Blog

What the Next.js SEO Fundamentals Course Actually Taught Me

1 min read

Notes from finishing Next.js's official SEO Fundamentals course, and the concrete changes I made to this site's metadata, sitemap, and structured data afterward.

I recently finished the SEO Fundamentals course on nextjs.org/learn and posted about it on X — mostly as a note to future me. A few days later I went back through this portfolio and fixed the things the course made obvious I'd been getting wrong.

Metadata is not an afterthought

The course frames generateMetadata as the first thing a crawler sees, not a nice-to-have. I'd been shipping pages with a generic title and no per-route description. Every route on this site now exports its own metadata, including Open Graph and Twitter card fields, instead of inheriting one root default.

Dynamic OG images pull their weight

Static share images go stale the moment a title changes. I moved this site to a per-page dynamic OG image route so link previews on Twitter/X, Slack, and LinkedIn always match the actual page content — no manual re-export step to forget.

Structured data is cheap and crawlers use it

Adding a JSON-LD entity graph (Person, WebSite, BlogPosting) took an afternoon and is one of the more mechanical parts of the course. It's also one of the highest-leverage: it's how a search engine understands who wrote a post and what it's about, not just what the text says.

Sitemap and robots.txt aren't "set once and forget"

A stale sitemap quietly stops new pages from getting discovered. This blog is generated from MDX files, so the sitemap now derives from the same getBlogPosts() call the blog index uses — a new post can't ship without also appearing in the sitemap.


If you're building on Next.js, the course is free and takes an evening: nextjs.org/learn/seo. Source for this site, including the SEO work described above, is on GitHub. I post shorter updates like this as I go on X/@_naman14.

PreviousTyping Speed, Claude Code, and Two Small Wins
Command Palette

Search for a command to run...