DEV Community

Yunhan
Yunhan

Posted on

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

Tags: webdev, seo, nextjs, javascript


When we launched BabyNamePick a few weeks ago, it had names from about 8 cultural origins. Users kept asking: "Do you have Italian names?" "What about Hawaiian names?" "Can I find Persian names?"

So we went from 8 origins to 22. Here's what we learned — technically and strategically.

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[];
}
Enter fullscreen mode Exit fullscreen mode

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 }));
}
Enter fullscreen mode Exit fullscreen mode

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. Ff is pronounced like English F..."
  }
]
Enter fullscreen mode Exit fullscreen mode

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 "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 — contenteditable editors break all browser automation

The New Categories

We recently added Italian names (Matteo, Giulia, Valentina), Persian names (Cyrus, Soraya, Darya), Scottish names (Hamish, Isla, Maisie), Welsh names (Rhys, Seren, Emrys), and Hawaiian names (Kai, Leilani, Moana).

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

  1. SSG + TypeScript = free scaling — adding 100 names costs $0 in runtime
  2. Cultural depth > volume — 15 well-researched names beat 500 scraped ones
  3. FAQ schema is free SEO real estate — more visual space in search results
  4. 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

Top comments (0)