Contents

Chapter 1

Headline Formulas for Technical Blog Posts

50+ proven headline structures organized by format type. Fill in the blanks with your topic. Test 3-5 variations for each post, then pick the one that balances clarity with curiosity.


Universal Rules for Technical Headlines

1. Specificity beats cleverness — "How to Reduce Docker Image Size by 80%" outperforms "Docker Images: A Better Way"

2. Include the technology name — Readers scan for their stack. "React" or "Postgres" in the title gets clicks from the right people.

3. Numbers create commitment — "7 Patterns" tells the reader exactly what they're getting

4. Promise a transformation — Before state → After state (implicitly or explicitly)

5. Front-load keywords — Search engines and readers scan left-to-right. Put the important word first.


Tutorial Headlines

FormulaExample
How to [achieve outcome] with [technology]How to Deploy a Zero-Downtime Application with Kubernetes
[Technology]: A Step-by-Step Guide to [outcome]Docker Compose: A Step-by-Step Guide to Multi-Container Development
Building [thing] with [technology]: A Complete GuideBuilding a REST API with Go: A Complete Guide
[Outcome] in [number] Steps Using [technology]Automated Database Backups in 5 Steps Using pg_dump and Cron
From Zero to [outcome]: [technology] TutorialFrom Zero to Production: Terraform Tutorial for AWS
The Definitive Guide to [specific technique]The Definitive Guide to Database Connection Pooling
How I [achieved outcome] (And How You Can Too)How I Cut My CI Pipeline from 20 Minutes to 4 (And How You Can Too)

Comparison Headlines

FormulaExample
[Tool A] vs [Tool B]: Which Should You Choose in [year]?Kafka vs RabbitMQ: Which Should You Choose in 2025?
[Tool A] vs [Tool B] for [use case]: A Practical ComparisonPostgres vs MySQL for Time-Series Data: A Practical Comparison
Comparing [category]: [Tool A], [Tool B], and [Tool C]Comparing Container Orchestration: Kubernetes, Nomad, and ECS
[Tool A] or [Tool B]? A Decision Framework for [audience]Redis or Memcached? A Decision Framework for Backend Engineers
We Tried Both [Tool A] and [Tool B]. Here's What We Learned.We Tried Both GraphQL and REST. Here's What We Learned.
The [Tool A] vs [Tool B] Decision in [number] MinutesThe Monorepo vs Polyrepo Decision in 5 Minutes

How-To Headlines

FormulaExample
How to Fix [specific error/problem]How to Fix "ECONNREFUSED" in Docker Container Networking
How to [verb] [thing] Without [common pain point]How to Migrate Databases Without Downtime
[Number] Ways to [solve problem] in [technology]4 Ways to Handle Race Conditions in Node.js
A Better Way to [common task]A Better Way to Manage Environment Variables in Python
Stop [doing X]. Do [Y] Instead.Stop Hardcoding Config. Use Environment Variables Instead.
The Right Way to [task] in [technology] [year]The Right Way to Handle Errors in Go (2025)

Opinion Headlines

FormulaExample
Why [popular thing] Is [contrarian take]Why Microservices Are the Wrong Default for Most Teams
[Controversial statement] — And Here's WhyYou Don't Need Kubernetes — And Here's Why
[Thing] Is Dead. Long Live [alternative].REST Is Dead. Long Live RPC (Just Kidding — But Hear Me Out).
The Case Against [popular practice]The Case Against 100% Test Coverage
Unpopular Opinion: [opinion]Unpopular Opinion: Monoliths Scale Better Than You Think
[N] Lies We Tell Ourselves About [practice]5 Lies We Tell Ourselves About Technical Debt
I Was Wrong About [thing]. Here's What Changed My Mind.I Was Wrong About NoSQL. Here's What Changed My Mind.

Case Study Headlines

FormulaExample
How We [achieved metric] by [doing thing]How We Reduced Latency by 90% by Switching to gRPC
[Outcome]: A [team/project] Case StudyZero-Downtime Deployments: A Platform Team Case Study
What Happened When We [did thing]What Happened When We Moved 200 Microservices to a Monorepo
From [bad state] to [good state]: Our Journey to [outcome]From 2-Hour Deploys to 5-Minute Deploys: Our Journey to CI/CD
Lessons from [doing thing] at ScaleLessons from Running Kafka at 2 Million Messages Per Second
We [did risky thing]. Here's How It Went.We Deleted Our Staging Environment. Here's How It Went.

Listicle Headlines

FormulaExample
[Number] [Things] Every [audience] Should Know10 SQL Tricks Every Backend Developer Should Know
[Number] [adjective] [things] for [outcome]7 Underrated CLI Tools for Faster Development
The [Number] Best [things] for [use case] in [year]The 8 Best VS Code Extensions for Python in 2025
[Number] [things] I Wish I Knew Before [event]5 Things I Wish I Knew Before My First On-Call Rotation
[Number] Mistakes [audience] Make with [technology]6 Mistakes Teams Make with Terraform State Management
[Number] [things] That [outcome]9 Git Commands That Will Save You Hours Every Week

Deep Dive Headlines

FormulaExample
How [thing] Actually Works (Under the Hood)How DNS Actually Works (Under the Hood)
[Thing] Internals: A Deep DiveLinux Container Internals: A Deep Dive
What Happens When You [action]?What Happens When You Type a URL Into Your Browser?
Understanding [concept]: From First PrinciplesUnderstanding Consensus: From First Principles
[Thing] Demystified: Everything You Need to KnowDatabase Indexing Demystified: Everything You Need to Know
The Complete Mental Model for [concept]The Complete Mental Model for Async/Await

Announcement Headlines

FormulaExample
Introducing [thing]: [one-line value prop]Introducing FastCache: Sub-Millisecond Caching for Python
[Thing] [version]: What's New and Why It MattersPostgreSQL 17: What's New and Why It Matters
We Just Released [thing]. Here's Why We Built It.We Just Released an Open-Source Rate Limiter. Here's Why We Built It.
[Thing] Is Now [adjective]Our API Documentation Is Now Open Source

Migration Story Headlines

FormulaExample
Migrating from [A] to [B]: A [duration] RetrospectiveMigrating from Jenkins to GitHub Actions: A 6-Month Retrospective
Why We Left [A] for [B] (And What We Gained)Why We Left AWS for GCP (And What We Gained)
Our [A] to [B] Migration: Costs, Surprises, and LessonsOur Heroku to Kubernetes Migration: Costs, Surprises, and Lessons
[Number] Things We Learned Migrating [thing]7 Things We Learned Migrating 500GB of Data to a New Schema

Benchmark Headlines

FormulaExample
[Thing A] vs [Thing B]: Performance Benchmarks with [detail]Python vs Go: Performance Benchmarks with Real API Workloads
We Benchmarked [N] [things]. Here Are the Results.We Benchmarked 6 JSON Parsers. Here Are the Results.
How Fast Is [technology] Really? We Tested It.How Fast Is SQLite Really? We Tested It Under Production Load.
[Thing] Performance: [surprising finding]gRPC Performance: Why It's Not Always Faster Than REST

X in Y Minutes Headlines

FormulaExample
[Technology] in [N] MinutesWebAssembly in 10 Minutes
Learn [concept] in [N] Minutes (No Prior Knowledge Needed)Learn Database Normalization in 8 Minutes (No Prior Knowledge Needed)
[Concept] for [audience] in [N] MinutesOAuth 2.0 for Backend Developers in 12 Minutes
The [N]-Minute Guide to [concept]The 5-Minute Guide to Container Networking

Troubleshooting Headlines

FormulaExample
Fixing "[error message]" in [technology]Fixing "OOMKilled" in Kubernetes Pods
Why Your [thing] Is [symptom] (And How to Fix It)Why Your Database Queries Are Slow (And How to Fix It)
[Number] Causes of [problem] and How to Solve Each One5 Causes of Memory Leaks in Node.js and How to Solve Each One
Debugging [problem]: A Systematic ApproachDebugging Intermittent Timeouts: A Systematic Approach

Architecture Breakdown Headlines

FormulaExample
The Architecture Behind [thing/service]The Architecture Behind a 100K-Request-per-Second API
How We Designed [system] for [requirement]How We Designed Our Notification System for 10M Users
[System] Architecture: Decisions, Trade-offs, and LessonsPayment Processing Architecture: Decisions, Trade-offs, and Lessons
Designing [thing]: An Architecture Decision RecordDesigning a Multi-Tenant SaaS: An Architecture Decision Record

Headline Testing Tips

1. Write 5 headline variations for every post

2. Test the top 2 on Twitter (post both as tweets, see which gets more engagement)

3. Use the winning headline for the blog post

4. A/B test titles on your platform if it supports it (some CMSes do)

5. Revisit and update headlines on older posts if they're underperforming in search

Chapter 2

SEO Checklist for Technical Blog Posts

Run through this checklist before hitting publish on every post. Not every item applies to every post, but skipping more than 3-4 means you're leaving organic traffic on the table.


Pre-Writing SEO

  • [ ] Primary keyword identified — One specific phrase this post will rank for
  • [ ] Search intent matched — Your content format matches what Google already ranks (informational query = guide, not product page)
  • [ ] Keyword difficulty assessed — For new blogs (DA < 30), target KD below 40. Established blogs can go higher.
  • [ ] 3-5 secondary keywords listed — Related terms to weave naturally into headings and body text
  • [ ] Competitor content audited — Read the top 3 results. Know what they cover and what they miss.
  • [ ] Content gap identified — Your unique angle, data, or depth that existing content lacks

Title & Meta

  • [ ] Title contains primary keyword — Ideally within the first 60 characters
  • [ ] Title is under 60 characters — Or at least the meaningful part is (Google truncates at ~60)
  • [ ] Title creates curiosity or promises value — Not just a keyword — a reason to click
  • [ ] Meta description written — 150-160 characters. Includes primary keyword. Answers "why click this?"
  • [ ] URL slug is short and keyword-rich/property-based-testing-guide not /2025/01/20/how-to-use-property-based-testing-in-your-projects
  • [ ] URL uses hyphens, not underscores — Google treats hyphens as word separators

Content Structure

  • [ ] H1 tag is the title — One H1 per page, matches or closely mirrors the title tag
  • [ ] H2 headings used for main sections — Include keywords naturally where they fit
  • [ ] H3 headings for subsections — Create a clear hierarchy (never skip from H2 to H4)
  • [ ] Introduction answers the search query within 100 words — Don't bury the lede behind a long preamble
  • [ ] Table of contents included (for posts > 2,000 words) — Helps readers and generates jump-link rich snippets
  • [ ] Short paragraphs — 2-4 sentences max. Walls of text kill time-on-page.
  • [ ] Lists and tables used where appropriate — These often become featured snippets

Keyword Usage

  • [ ] Primary keyword in first 100 words — Signal to Google what this page is about early
  • [ ] Primary keyword in at least one H2 — Naturally, not forced
  • [ ] Secondary keywords used in body text — 1-2 uses each, naturally integrated
  • [ ] No keyword stuffing — If it sounds unnatural when read aloud, rewrite it
  • [ ] Semantic variations used — Don't repeat exact phrase 15 times. Use related terms, synonyms, acronyms.
  • [ ] Keyword in image alt text (at least one image) — Describe the image AND include the keyword if natural

Internal Linking

  • [ ] 2-3 internal links to related posts — Link to your other content on the same topic cluster
  • [ ] Links use descriptive anchor text — "our guide to database indexing" not "click here"
  • [ ] Link to your pillar page (if applicable) — Strengthens the topical cluster
  • [ ] Link FROM older related posts TO this new post — Go back and add links. This is the most overlooked SEO tactic.
  • [ ] No orphan pages — Every post should have at least one internal link pointing to it

External Linking

  • [ ] 2-5 external links to authoritative sources — Link to documentation, research papers, original sources
  • [ ] External links open in new tab — Don't navigate readers away from your site
  • [ ] No broken external links — Verify URLs work before publishing
  • [ ] Links go to canonical sources — Link to official docs, not random blog rehashes

Images & Media

  • [ ] At least one image per post — Diagrams, screenshots, code output, architecture drawings
  • [ ] Images have descriptive alt text — For accessibility AND image search. Describe what's shown.
  • [ ] Images are compressed — Use WebP or compressed PNG. Large images kill page speed.
  • [ ] Images have descriptive file namesdatabase-indexing-btree-diagram.png not screenshot-2025-01-20.png
  • [ ] Featured/social image set — This appears in Twitter cards, LinkedIn previews, etc.

Technical SEO

  • [ ] Page loads in under 3 seconds — Check with browser devtools network tab
  • [ ] Mobile-friendly layout — Code blocks scroll horizontally, images resize, text is readable
  • [ ] Canonical URL set — Especially important for cross-posted content (Dev.to, Hashnode)
  • [ ] Schema markup present — Article schema with author, date published, date modified
  • [ ] No duplicate content issues — If cross-posting, ALWAYS set canonical back to your site
  • [ ] Sitemap includes this URL — Most CMSes handle this automatically
  • [ ] No noindex tag — Double-check your CMS isn't accidentally blocking search engines

Content Quality Signals (Indirect SEO)

  • [ ] Word count matches intent — Is your content as thorough as (or more than) the top-ranking posts?
  • [ ] Code examples are runnable — Copy-paste code should work. Broken code = high bounce rate.
  • [ ] Content is original — Not rehashed from documentation or other blog posts
  • [ ] Published date visible — Freshness signals. Readers and Google trust dated content.
  • [ ] Author information present — Author bio with credentials builds E-E-A-T (Experience, Expertise, Authority, Trust)
  • [ ] Updated date shown (for evergreen content) — "Last updated: January 2025" signals freshness

Post-Publish SEO

  • [ ] Submit to Google Search Console — Request indexing for faster discovery
  • [ ] Share on social media — Social signals don't directly rank, but they drive initial traffic and backlinks
  • [ ] Monitor Search Console for impressions — After 1-2 weeks, check what queries this page appears for
  • [ ] Track target keyword position — Weekly for the first month, then monthly
  • [ ] Update older posts to link to this one — Cross-link within your content cluster
  • [ ] Plan a content refresh — Set a calendar reminder to update this post in 6-12 months

Quick Reference: SEO Metadata Template

Title: [Primary Keyword]: [Value Proposition] (under 60 chars)
Meta Description: [Action verb] [what reader learns/gets]. [Specific detail]. [Outcome/benefit]. (150-160 chars)
URL: /[primary-keyword-short-form]
Canonical: https://yourblog.example.com/[slug]

Example:

Title: Property-Based Testing: Finding Bugs Unit Tests Miss
Meta Description: Learn property-based testing with real Python examples. Find bugs your unit tests miss using Hypothesis. Includes a decision framework.
URL: /property-based-testing-guide
Canonical: https://yourblog.example.com/property-based-testing-guide

Content Type SEO Quick Wins

Content TypeSEO Opportunity
TutorialTarget "how to [X]" keywords — huge search volume
ComparisonTarget "[A] vs [B]" keywords — high commercial intent
ListicleTarget "best [X]" keywords — rich snippet potential
TroubleshootingTarget exact error messages — zero competition, desperate searchers
Deep DiveTarget "how [X] works" — builds topical authority
BenchmarkTarget "[X] performance" — attracts backlinks from others citing your data
Blog Post Templates v1.0.0 — Free Preview