Skip to content

Image SEO: descriptive file names, blog cover alt text, images in the sitemap - #47

Merged
CodeWithEugene merged 1 commit into
mainfrom
feat/image-seo
Sep 26, 2026
Merged

CodeWithEugene merged 1 commit into
mainfrom
feat/image-seo

Conversation

@CodeWithEugene

Copy link
Copy Markdown
Owner

Follow-up to the image audit.

  • Descriptive file names: all 45 marketing images renamed from generic names (build.webp, win.webp) to descriptive ones (hackathon-winner-with-trophy-and-laptop.webp), one map in lib/seo/renamed-images.ts. Every reference in components, blog posts, covers and the seed is updated.
  • Old URLs keep working: next.config.ts adds a permanent (308) redirect for every old path, so anything already indexed, shared, or stored in the database still resolves and passes ranking on.
  • No data migration needed: the only image paths production stores are stock placeholder covers, which coverFor always replaces with the category image; the legacy list now recognises both old and new names.
  • Blog cover alt text: blog cards used alt=""; they now use each post's existing coverAlt.
  • Sitemap images: home (hero, journey, trust photos), How It Works (process photos), every blog post (cover) and every real hackathon (cover).

Test plan

  • New tests: every renamed file exists and no old file remains, names are descriptive, every referenced marketing image exists, stock covers (old and new names) still resolve to the category cover
  • pnpm test 336 passing, lint, typecheck, production build
  • Dev server: 45 images across 5 pages load, no empty alt text, old path 308-redirects to the new one
  • After deploy: live images, redirects, and sitemap image entries

@CodeWithEugene
CodeWithEugene merged commit a503dcd into main Sep 26, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — 28852a6e Deployed Sep 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant