Blog
Practical, no-fluff guides on SEO, performance and the web — the topics behind the tools I build.
Structured data with JSON-LD: a developer's guide
What structured data actually does, why JSON-LD is the format to use, and copy-paste Article, FAQ and Breadcrumb schema you can ship today.
Read more →On-page SEO checklist: what to check on every page
A practical, no-fluff on-page SEO checklist — title, meta, headings, canonical, robots, images, links, structured data and Core Web Vitals.
Read more →Title tag optimization: length, format and the rewrites
The title tag is still one of the strongest on-page signals. How long it should be, how to format it, and why Google rewrites it anyway.
Read more →Heading structure for SEO: getting H1–H6 right
How to structure headings for SEO and accessibility: one H1 or many, why you shouldn't skip levels, and how to read your page outline.
Read more →Image SEO: alt text, formats and page speed
Alt text that actually helps, why WebP and AVIF matter, and how images quietly wreck your Core Web Vitals — a practical image SEO guide.
Read more →Core Web Vitals explained: LCP, INP and CLS
What LCP, INP and CLS actually measure, the thresholds Google uses, and the highest-impact ways to improve each one.
Read more →Canonical tags and duplicate content, explained
How rel=canonical works, when to use it instead of a redirect or noindex, and the canonical mistakes that quietly split your ranking signals.
Read more →301 vs 302 redirects (and why chains hurt)
When to use a 301 vs a 302, whether redirects pass ranking signals, and how redirect chains and loops quietly waste crawl budget.
Read more →Meta robots and noindex: controlling what Google indexes
The difference between noindex and robots.txt, the meta robots directives that actually matter, and the X-Robots-Tag header for non-HTML files.
Read more →Fixing 'Crawled – currently not indexed' in Search Console
What 'Crawled – currently not indexed' really means, why Google chooses not to index a page, and a practical checklist to get it indexed.
Read more →Internal linking: structure, anchors and orphan pages
How internal links spread ranking signals, why click depth matters, how to write anchor text, and how to find orphan pages on your site.
Read more →hreflang for multilingual sites: a practical guide
How hreflang works, the rules that trip everyone up (reciprocity, x-default, region codes), and how to check your setup.
Read more →JavaScript SEO: how Google renders your app
How Google renders JavaScript, the difference between CSR, SSR and SSG for SEO, and where JavaScript-heavy sites quietly lose indexation.
Read more →robots.txt and sitemap.xml: the basics done right
What robots.txt and sitemap.xml are for, the mistakes that get pages deindexed, and how to keep them healthy.
Read more →Open Graph & Twitter Cards: how link previews work
The Open Graph and Twitter Card tags that control how your links look when shared, which are required, and how to test them.
Read more →What is llms.txt and should you add one?
llms.txt is an emerging standard for helping AI assistants understand your site. Here's what it is, what goes in it, and whether it's worth adding.
Read more →Technical SEO audit: a DIY guide for developers
A step-by-step technical SEO audit you can run yourself — crawlability, indexing, on-page, performance and structured data, with a repeatable checklist.
Read more →Page speed optimization: fixing, not just measuring
Beyond the score: the code-level fixes that actually improve LCP, render-blocking resources, TTFB and layout shifts — a hands-on page speed guide.
Read more →How to get rich results in Google
What rich results are, which types you can realistically earn, how to become eligible, and why your structured data sometimes doesn't show up.
Read more →URL structure best practices for SEO
Readable slugs, the trailing-slash question, subdomain vs subfolder, URL parameters, and how to change URLs without losing rankings.
Read more →Finding and fixing broken links and 404s
Whether 404s hurt SEO, the difference between 404, soft 404 and 410, how to find broken links, and how to reclaim the value of dead pages.
Read more →Crawl budget: does it actually matter for your site?
What crawl budget really is, which sites need to care, where it leaks, and how to stop wasting Googlebot's time on pages that don't matter.
Read more →Generative Engine Optimization: showing up in AI answers
GEO is optimizing to be cited by AI answer engines like ChatGPT, Perplexity and AI Overviews. How it differs from SEO, and what actually moves the needle.
Read more →E-E-A-T: turning trust signals into markup
What E-E-A-T actually is, why the extra E (Experience) was added, and the concrete on-page and structured-data changes that demonstrate it.
Read more →