How We Added 15+ Cultural Name Origins to a Baby Name Generator (With SEO Results)

Published: (March 14, 2026 at 10:38 PM EDT)
3 min read
Source: Dev.to

Source: Dev.to

The Architecture Problem

Our name data lives in a single TypeScript file (nameData.ts) as a typed array:

export interface NameEntry {
  name: string;
  meaning: string;
  origin: string;
  gender: "boy" | "girl" | "unisex";
  popularity: "trending" | "classic" | "rare" | "rising";
  style: string[];
}

Each category page is generated at build time using Next.js generateStaticParams:

// app/[category]/page.tsx
export function generateStaticParams() {
  return categories.map((cat) => ({ category: cat.slug }));
}

Adding a new origin means:

  1. Add names to nameData.ts
  2. Add a category definition with filterFn, SEO text, and FAQ schema
  3. Rebuild — Next.js generates the new static page automatically

No database, no API calls, no runtime cost. Pure SSG.

Scaling Name Data Without Losing Quality

The temptation with a name database is to bulk‑import thousands of names from public datasets. We deliberately didn’t do that. Here’s why:

  • Quality signals matter more than quantity. Each name entry includes:
    • A verified meaning (not auto‑translated)
    • Cultural context (origin language and tradition)
    • Popularity classification (trending/classic/rare/rising)
    • Style tags (Nature, Royal, Literary, etc.)

A name like “Emrys” isn’t just “immortal” — it’s specifically the Welsh name for Merlin, which matters for parents exploring Welsh baby names.

FAQ Schema for Rich Snippets

For each category page, we added FAQPage structured data:

interface FaqItem {
  question: string;
  answer: string;
}

// In the category definition:
faqs: [
  {
    question: "How do you pronounce Welsh baby names?",
    answer: "Welsh pronunciation follows consistent rules..."
  }
]

This generates JSON‑LD that Google can display as expandable FAQ sections in search results — dramatically increasing the visual space your result occupies on the page.

SEO Results So Far

After 3 weeks:

  • 20 pages indexed out of 25 submitted
  • 187 impressions in Google Search (doubled week over week)
  • 57 different search keywords driving impressions
  • 3 clicks (CTR 1.6 % — normal for a new site)

The most interesting finding: Irish baby names gets the most impressions despite being a relatively niche category. Cultural name pages attract highly specific, high‑intent searches.

What Worked, What Didn’t

Worked

  • Cultural specificity — “Italian baby names” converts better than generic “baby names”
  • FAQ schema — richer search results
  • Internal linking — every category page links to related categories
  • Static generation — perfect Lighthouse scores, fast indexing

Didn’t work (yet)

  • Bulk directory submissions — most AI directories charge $29‑$247
  • Reddit self‑promotion — new accounts get deleted immediately
  • Medium automation — content‑editable editors break all browser automation

The New Categories

We recently added:

Each page includes cultural context about naming traditions — not just lists, but stories about why these cultures name children the way they do.

Key Takeaways

  • SSG + TypeScript = free scaling — adding 100 names costs $0 in runtime
  • Cultural depth > volume — 15 well‑researched names beat 500 scraped ones
  • FAQ schema is free SEO real estate — more visual space in search results
  • Category pages are long‑tail gold — “hawaiian baby names” has less competition than “baby names”

If you’re building a content site, consider: what dimensions can you slice your data by? Each slice is a potential category page, and each category page is a new entry point from Google.

Try the generator: babynamepick.com

Browse all origins: Boy Names · Girl Names · Nature Names

0 views
Back to Blog

Related posts

Read more »