Writing
Thoughts on building for the web.
Media optimization: what search engines can actually read
Alt text, captions, transcripts, and file metadata each carry a format's search signal. Skip it and even the best content stays invisible to a crawler.
Sitemaps and robots.txt: telling crawlers what to find
Some pages vanish for having no links pointing to them. Others stay listed after being blocked outright. Both trace to files nobody reads until it breaks.
Meta tags: what each one tells a crawler and what to leave out
What lives in the document head and how it shapes crawling, indexing, snippet display, and mobile rendering, plus the tags no search engine reads anymore.
Canonical URLs: telling search engines which URL counts
How duplicate content silently splits ranking signals. What canonical tags do, when they are required, and what gets it wrong.
OpenGraph tags: the complete guide
A complete reference for every OpenGraph and Twitter Card meta tag. What each property does, what breaks without it, and how to test your share cards.
Structured data: What Google needs to see
Schema.org, JSON-LD, and rich results. Why structured data breaks silently, which types matter, and how to validate before Google does.
Core Web Vitals: How Google measures performance
Core Web Vitals and related metrics. LCP, CLS, INP, FCP, TBT, Speed Index. How to read PageSpeed Insights and fix what Google measures.
What SEO actually is
Why your site is not on Google. Technical SEO for developers. Structured data, OpenGraph, Core Web Vitals. Fix what your build process misses.
Until it didn't
Every day looked the same. Until it didn't. How I went from repetitive UI work to building a CMS pipeline from scratch.