This guide helps you quickly add essential SEO elements to existing blog posts.
Fix posts in this order for maximum impact:
For each post, add these three essential fields:
description: "120-155 character description with primary keyword"
Quick formula:
Learn [topic] using [method/tool]. [What they'll achieve]. [Optional: audience or benefit].
Examples:
# For tutorial
description: "Learn how to build a SwiftUI stopwatch app with lap timing. Complete tutorial with code examples for iOS developers."
# For how-to
description: "Fix the CFBundleVersion error in Xcode by incrementing your build number. Step-by-step guide with screenshots."
# For guide
description: "Master iOS delegate patterns with simple explanations and real code examples. Perfect for beginners learning Swift."
image: "/assets/images/post-slug/featured.png"
If you don’t have an image yet:
image: "/assets/images/default-featured.png"permalink: "/descriptive-post-slug/"
Create from title:
Example:
Title: "Building a SwiftUI Stopwatch App with Lap Timing"
Permalink: "/building-swiftui-stopwatch-app-lap-timing/"
Copy this template and fill in the blanks:
---
title: ""
date: ""
permalink: "//"
description: ""
image: "/assets/images//featured.png"
categories:
- ""
tags:
- ""
excerpt_separator: <!--more-->
---
# Find posts missing descriptions
grep -L "description:" _posts/*.md | wc -l
# Find posts missing images
grep -L "image:\|og_image:" _posts/*.md | wc -l
# Find posts missing permalinks
grep -L "permalink:" _posts/*.md | head -20
# Find posts missing excerpt separator
grep -L "<!--more-->" _posts/*.md | head -20
Per post:
For 400 posts:
Recommendation: Start with quick fixes, then enhance over time.
description: "Learn how to [build/create/implement] [thing] using [technology]. Step-by-step [tutorial/guide] with [code examples/screenshots]."
description: "How to [solve problem] in [software/platform]. [Quick/Simple/Step-by-step] guide with [screenshots/instructions] for [audience]."
description: "Fix [error message] in [software]. [Quick/Easy] solution with [explanation/steps] to resolve this common [iOS/Mac/Xcode] issue."
description: "Understand [concept] in [context]. [Simple/Clear] explanation with [real examples/code samples] for [beginners/developers]."
Don’t have time to create custom images? Use these quick options:
Use your editor to quickly update patterns:
<!--more--># Old format

# New format with alt text

Review and consolidate:
swift and Swift → swiftiOS and ios → iostutorial and tutorials → tutorialCreate a simple spreadsheet:
| Post Title | Description | Image | Permalink | Alt Text | Links | Status |
|---|---|---|---|---|---|---|
| Post 1 | ✅ | ✅ | ✅ | ⏳ | ⏳ | 60% |
| Post 2 | ✅ | ⏳ | ✅ | ❌ | ❌ | 40% |
Or use a simple text file:
DONE (80):
- 2025-10-31-building-twaist...
- 2025-08-26-how-chantflow...
IN_PROGRESS (15):
- 2024-02-08-building-personal-journal...
TODO (305):
- 2024-01-11-swiftui-stopwatch...
You don’t need perfection. Move to the next post when you’ve added:
Everything else can be enhanced later.
Before updating, quickly answer:
Consider automating repetitive tasks:
# Pseudo-code
for post in posts_without_description:
first_paragraph = extract_first_paragraph(post)
description = truncate(first_paragraph, 155)
add_to_frontmatter(post, description)
for post in posts_without_permalink:
permalink = slugify(post.title)
add_to_frontmatter(post, permalink)
# Add default image to all posts missing one
for file in _posts/*.md; do
if ! grep -q "image:" "$file"; then
sed -i '' '/^date:/a\
image: "/assets/images/default-featured.png"
' "$file"
fi
done
Reference the full guidelines:
Pro Tip: Set a timer for 10 minutes per post. If you’re not done, save progress and move to the next one. You can always come back later.
Remember: Done is better than perfect. Getting basic SEO on all posts is more valuable than perfect SEO on a few posts.