Last Updated: 2025-11-19
| Issue | Count | Status | Priority |
|---|---|---|---|
| Multiple meta description tags | 442 | âś… FIXED | Critical |
| 404 broken pages | 11 | ⏳ Pending | Critical |
| Links to broken pages | 8 | ⏳ Pending | Critical |
| Orphan pages (no internal links) | 8 | ⏳ Pending | Critical |
| Meta description too long | 373 | ⏳ Pending | Warning |
| Title too long | 84 | ⏳ Pending | Warning |
| Meta description too short | 59 | ⏳ Pending | Warning |
| 3XX redirects | 198 | ⏳ Pending | Low |
| Links to redirects | 56 | ⏳ Pending | Low |
Problem: 442 pages had duplicate <meta name="description"> tags
Root Cause:
jekyll-seo-tag plugin (automatic)_includes/head/custom.html also added manual meta descriptionsSolution:
Removed manual meta description code from _includes/head/custom.html (lines 14-21).
The theme’s built-in SEO will now handle all meta descriptions based on:
page.description (front matter)page.excerpt (if no description)site.description (fallback)Testing: After deployment, verify with:
curl -s https://www.rshankar.com/ | grep -i "meta name=\"description\""
# Should only show ONE meta description tag
Action Required: Export the 404 page list from Ahrefs
Next Steps:
Fix Options:
# Option A: Create redirect (if page moved)
# Add to old page's front matter:
redirect_to: /new-page-url/
# Option B: Create redirect file
---
permalink: /old-url/
redirect_to: /new-url/
layout: redirect
---
# Option C: If truly dead, ensure no links point to it
Dependency: Fix after identifying 404 pages
Action Required: Export the list from Ahrefs showing:
Next Steps:
Problem: Pages with no incoming internal links won’t rank well
Action Required: Export orphan page list from Ahrefs
Fix Strategy:
Problem: Descriptions > 155 characters get truncated in search results
Optimal Range: 120-155 characters
Diagnosis: Run the audit script:
./scripts/fix-seo-issues.sh
Fix Strategy:
Long (175 chars): "Learn how to build a comprehensive SwiftUI stopwatch application with advanced lap timing features, including detailed explanations and complete code examples for iOS developers."
Short (145 chars): "Build a SwiftUI stopwatch app with lap timing. Complete tutorial with code examples and best practices for iOS developers."
[Action verb] [topic] [method/tool]. [Benefit]. [Optional: audience].
Problem: Titles > 60 characters get truncated in search results
Optimal Range: 50-60 characters
Diagnosis: Run the audit script to find all titles > 60 chars
Fix Strategy:
Too Long (78 chars): "How to Build a Comprehensive SwiftUI Stopwatch Application with Lap Timing Features"
Good (56 chars): "Building a SwiftUI Stopwatch App with Lap Timing"
Too Long (92 chars): "Understanding the iOS Delegate Pattern: A Complete Beginner's Guide with Code Examples"
Good (58 chars): "iOS Delegate Pattern: A Beginner's Guide with Examples"
Problem: Descriptions < 120 characters don’t use available space effectively
Minimum: 120 characters (ideal: 120-155)
Fix Strategy:
Too Short (85 chars): "Learn SwiftUI stopwatch development with this tutorial for iOS developers."
Better (130 chars): "Learn SwiftUI stopwatch development with lap timing features. Complete tutorial with code examples and best practices for iOS."
Lower Priority: These aren’t critical but slow down page loads
Action Required: Export redirect list from Ahrefs
Types of Redirects:
Fix Strategy:
Problem: Internal links pointing to URLs that redirect slow down navigation
Action Required: Export list from Ahrefs
Fix: Update internal links to point directly to final destination:
# Bad (links to redirect)
[Read more](/old-url/) # This redirects to /new-url/
# Good (direct link)
[Read more](/new-url/) # Direct to final destination
Strategy:
Location: scripts/fix-seo-issues.sh
Usage:
cd /Users/ravishankar/Work/MyApps/rshankras.github.io
./scripts/fix-seo-issues.sh > seo-audit-report.txt
Checks:
Completed: 1/9 issues In Progress: 0/9 issues Pending: 8/9 issues Overall: 11% complete
./scripts/fix-seo-issues.sh to get local audit