| name | blog-seo-topic-research |
| description | Researches and scores the next BabyPickr blog topic using content gaps, catalog fit, Google autocomplete, Trends, and SERP intent. Produces a topic brief with title, slug, situations, and outline. Use when the user asks what blog to write next, SEO topic research, keyword research for guides, or Google Trends / autocomplete for content planning. |
BabyPickr blog SEO topic research
Read this skill before recommending or green-lighting a new guide.
Output: a completed topic-brief-template.md (copy the template, fill it in, deliver to the user).
Handoff to writing: blog-writing + the matching journey-* skill for the category.
When to run this
- User asks "what should we write next?", "SEO for the blog", or "find a topic with Trends/autocomplete"
- Before drafting a new
app/blog/{slug}/page.tsx guide
- When comparing two topic ideas (pick one with a scored brief each)
Do not skip catalog verification. BabyPickr only ranks products with real ASINs and specs in data/*.ts.
Workflow (45–60 min)
1. Map what we already cover (5 min)
Read lib/blogRegistry.ts (BLOG_POSTS). Build a quick gap table:
| Category | Published slugs | Situations covered |
|---|
| strollers | … | … |
| car-seats | … | … |
| … | … | … |
Situation IDs (from lib/journeyStorage.ts):
city-apartment, house-suburbs, travel-often, compact-car, tall-parent, value-matters, active-lifestyle, newborn-focus, breastfeeding-mom
Prefer topics that:
- Fill an uncovered situation × category pair
- Cluster with a recent post (internal links, e.g. Disney strollers → travel car seats)
- Match a journey filter we already ship (see
journey-* skills)
Deprioritize: categories where we have 3+ guides unless SERP shows a sharp sub-niche (e.g. "jogging stroller" not generic "best stroller").
2. Seed keywords (5 min)
Start from gaps, then parent language (not jargon):
| Gap example | Seed queries |
|---|
active-lifestyle + strollers | best jogging stroller, running stroller |
travel-often + car-seats | best car seat for airplane, FAA approved car seat |
newborn-focus + cribs | best bassinet, bedside sleeper small room |
List 2–4 seed phrases per candidate topic.
3. Google autocomplete (10 min)
In incognito (or logged out), type each seed slowly and record suggestions.
Also try:
{seed} for / {seed} vs / {seed} under
- Alphabet suffix:
{seed} a, {seed} b, …
- Year modifier if commercial:
{seed} 2026
Capture: primary keyword (highest intent + volume feel), 3–6 long-tail modifiers for H2s/FAQ.
4. Google Trends (10 min)
Use trends.google.com. Settings: United States, Web Search.
| View | Use for |
|---|
| Past 12 months | Evergreen vs fad; seasonal peaks; publish timing |
| Past 3 months | Keyword variant winner; Rising queries; brand spikes |
Compare synonym variants (e.g. jogging stroller vs running stroller vs jogger stroller). Put the winner in the H1; use losers in subheads and FAQ.
Related queries:
- Top → FAQ and section ideas
- Rising / Breakout → timely H2s or "also searched" callouts (only if catalog supports the product)
12 months is enough for go/no-go. Use 3 months to structure the post, not to decide whether to write it.
5. SERP + People Also Ask (10 min)
Google the primary keyword in incognito. Note:
- Title patterns (situation + year + "for {constraint}")
- People Also Ask →
Quick Answers section in the blog
- Who ranks: Wirecutter / BabyGearLab vs forums / thin listicles
- Content gap: specs we can win on (folded width, FAA, elevator, no WiFi, catalog prices)
Green light SERP: mix of weak pages or generic lists without situation constraints.
Yellow: dominated by major review sites unless we have a sharper niche angle.
Red: we cannot support with 5–6 catalog picks with ASINs.
6. Catalog fit check (10 min) — required
Before recommending the topic, verify in data/{category}.ts:
- [ ] ≥5 products with real ASINs for ranked pickMeta
- [ ] Enough spec diversity for honest rankings (price, weight, flags)
- [ ] Journey flags match the angle (grep apartmentFriendly, isJoggingStroller, etc.)
- [ ] No pick requires ranking asin: null products (ANB-only → Premium section only)
If fewer than 5 ASIN picks: defer topic or narrow the angle until the catalog fits.
Read the matching journey-{category} skill so the brief does not promise filters we do not ship.
7. Score and decide (5 min)
Score each candidate 1–5 on:
| Criterion | Question |
|---|
| Search intent | Autocomplete + Trends show stable demand? |
| SERP winnable | Room for situation-specific spec guide? |
| Catalog | ≥5 ASIN picks with watch-outs? |
| Site fit | Maps to SituationId + gear finder journey? |
| Cluster | Links to 2+ existing posts? |
| Seasonality | Publish now or queue for peak? |
Total ≥22/30: write next. 18–21: second in queue. <18: drop or revisit when catalog grows.
8. Deliver the brief
Copy topic-brief-template.md, fill every section, and give the user:
- Recommendation (one sentence)
- Filled brief (primary keyword, title, slug, situations, outline, FAQ from PAA, browse CTA URL)
- Next step: "Say go and we draft using blog-writing skill"
Browse deep links (supported stroller params only): space, budget, parentHeight, sortBy, highlight.
Not supported in URLs: features=jogging, features=travel, etc. CTA copy can mention journey chips; links use supported params + highlight={ASIN}.
Title and slug conventions
Match existing guides in lib/blogRegistry.ts:
| Field | Pattern |
|---|
| Title | Best {Product Type} for {Situation/Use} in 2026 (+ optional subtitle in metadata) |
| Slug | best-{category}-{situation-or-angle} kebab-case |
| situations | Real SituationId[] only |
| category | BlogCategoryId matching catalog |
Examples: best-jogging-strollers-runners, best-car-seats-compact-cars, best-strollers-city-apartments
Seasonal queue (optional)
| Window | Topic types |
|---|
| Late Jun–Jul | Prime Day / deal roundup (seasonal: true) |
| May–Aug | Travel, jogging, outdoor |
| Aug–Sep | Back-to-travel, flying-with-baby cluster |
| Nov–Dec | Holiday travel refresh on evergreen travel posts |
Anti-patterns
- Recommending Breakout products not in
data/*.ts
- Generic "Top 10 baby products" with no situation hook
- Promising double-jogger / niche SKU guides with zero catalog rows
- Using
features= in browse URLs (unsupported)
- Skipping Trends synonym compare and guessing the H1 keyword
Additional resources