Files
manoon-headless/.sisyphus/plans/programmatic-seo-serbian-phase1.md
Unchained 9d07a60d3f feat: implement programmatic SEO for solutions pages
- Add 10 oil-for-concern solution pages with localized slugs
- Support 4 languages: sr, en, de, fr with proper canonical URLs
- Add solutions hub, by-concern, and by-oil directory pages
- Filter bundle products from solutions pages
- Add hideLangSwitcher prop to Header component
- Update translations for all languages
- Fix canonical URLs to include locale prefix
2026-04-08 13:29:42 +02:00

9.4 KiB

Programmatic SEO Implementation Plan

ManoonOils Serbian Market - Phase 1

Branch: feature/programmatic-seo
Scope: Create 10 priority "Oil for Concern" pages in Serbian
Estimated Time: 2-3 days


Executive Summary

Create 10 high-priority programmatic SEO pages targeting Serbian market with Serbian-language URLs and content. Pages will focus on top oil/concern combinations based on search volume and product alignment.


Deliverables

1. Data Schema (JSON Files)

Location: data/oil-for-concern/

10 Priority Pages:

# Slug (Serbian) Oil Concern Priority
1 najbolje-ulje-divlje-ruze-za-bore Ulje divlje ruže Bore
2 najbolje-arganovo-ulje-za-suvu-kozu Arganovo ulje Suva koža
3 najbolje-jojoba-ulje-za-akne Jojoba ulje Akne
4 najbolje-ulje-divlje-ruze-za-tamne-pjege Ulje divlje ruže Tamne pjege
5 najbolje-arganovo-ulje-za-bore Arganovo ulje Bore
6 najbolje-ulje-pasjeg-trna-za-hiperpigmentaciju Ulje pasjeg trna Hiperpigmentacija
7 najbolje-jojoba-ulje-za-masnu-kozu Jojoba ulje Masna koža
8 najbolje-ulje-slatkog-badema-za-osetljivu-kozu Ulje slatkog badema Osetljiva koža
9 najbolje-ulje-divlje-ruze-za-oziljke-od-akni Ulje divlje ruže Ožiljci od akni
10 najbolje-arganovo-ulje-za-podocnjake Arganovo ulje Podočnjaci

JSON Schema Structure

Each file must follow this exact structure:

{
  "slug": "serbian-slug-here",
  "oilSlug": "oil-identifier",
  "concernSlug": "concern-identifier",
  "pageTitle": {
    "sr": "Serbian title",
    "en": "English title",
    "de": "German title",
    "fr": "French title"
  },
  "metaTitle": {
    "sr": "Serbian meta title | ManoonOils",
    "en": "English meta title | ManoonOils",
    "de": "German meta title | ManoonOils",
    "fr": "French meta title | ManoonOils"
  },
  "metaDescription": {
    "sr": "Serbian meta description",
    "en": "English meta description",
    "de": "German meta description",
    "fr": "French meta description"
  },
  "oilName": {
    "sr": "Serbian oil name",
    "en": "English oil name",
    "de": "German oil name",
    "fr": "French oil name"
  },
  "concernName": {
    "sr": "Serbian concern name",
    "en": "English concern name",
    "de": "German concern name",
    "fr": "French concern name"
  },
  "whyThisWorks": {
    "sr": "Detailed explanation in Serbian (200+ words)",
    "en": "English translation",
    "de": "German translation",
    "fr": "French translation"
  },
  "keyBenefits": {
    "sr": ["6 benefits in Serbian"],
    "en": ["6 benefits in English"],
    "de": ["6 benefits in German"],
    "fr": ["6 benefits in French"]
  },
  "howToApply": {
    "sr": ["6 steps in Serbian"],
    "en": ["6 steps in English"],
    "de": ["6 steps in German"],
    "fr": ["6 steps in French"]
  },
  "expectedResults": {
    "sr": "Timeline explanation in Serbian",
    "en": "English translation",
    "de": "German translation",
    "fr": "French translation"
  },
  "timeframe": {
    "sr": "Short timeframe summary in Serbian",
    "en": "English translation",
    "de": "German translation",
    "fr": "French translation"
  },
  "complementaryIngredients": [
    "vitamin-c",
    "panthenol",
    "sandalwood",
    "sweet-almond-oil"
  ],
  "productsToShow": [
    "manoon-anti-age-serum"
  ],
  "customerResults": [
    {
      "quote": {
        "sr": "Serbian testimonial",
        "en": "English translation",
        "de": "German translation",
        "fr": "French translation"
      },
      "name": "Name",
      "age": 45,
      "skinType": "Serbian skin type",
      "timeframe": "Serbian timeframe"
    }
  ],
  "faqs": [
    {
      "question": {
        "sr": "Question in Serbian",
        "en": "English translation",
        "de": "German translation",
        "fr": "French translation"
      },
      "answer": {
        "sr": "Answer in Serbian",
        "en": "English translation",
        "de": "German translation",
        "fr": "French translation"
      }
    }
  ],
  "seoKeywords": {
    "sr": {
      "primary": ["3-5 primary keywords"],
      "secondary": ["3-5 secondary keywords"],
      "longTail": ["3-5 long-tail keywords"]
    },
    "en": {
      "primary": ["3-5 primary keywords"],
      "secondary": ["3-5 secondary keywords"],
      "longTail": ["3-5 long-tail keywords"]
    },
    "de": {
      "primary": ["3-5 primary keywords"],
      "secondary": ["3-5 secondary keywords"],
      "longTail": ["3-5 long-tail keywords"]
    },
    "fr": {
      "primary": ["3-5 primary keywords"],
      "secondary": ["3-5 secondary keywords"],
      "longTail": ["3-5 long-tail keywords"]
    }
  },
  "relatedPages": {
    "otherOilsForSameConcern": [
      "serbian-slug-1",
      "serbian-slug-2"
    ],
    "sameOilForOtherConcerns": [
      "serbian-slug-3",
      "serbian-slug-4"
    ]
  }
}

Content Guidelines

whyThisWorks Section (200+ words)

  • Scientific explanation of mechanism
  • Reference to specific compounds (vitamin A, fatty acids, etc.)
  • Comparison to synthetic alternatives
  • Why this oil specifically helps this concern

keyBenefits (6 items)

  • Specific, measurable benefits
  • Focus on the target concern
  • Include both immediate and long-term benefits

howToApply (6 steps)

  • Specific dosage (2-3 kapi)
  • Application technique
  • Frequency
  • Best time of day
  • Areas to focus on
  • Tips for better absorption

expectedResults

  • Week 1-2: Initial improvements
  • Week 4-6: Visible changes
  • Week 8-12: Significant results
  • Long-term maintenance

customerResults (2 testimonials)

  • Realistic names (Serbian)
  • Ages 35-55
  • Specific skin types
  • Realistic timeframes
  • Authentic language

FAQs (3 questions)

  • Common concerns about usage
  • Safety/side effects
  • Timeline expectations

Manoon Product Ingredients Reference

Use these ingredients in content:

  • Sweet almond oil (ulje slatkog badema)
  • Panthenol
  • Vitamin C
  • Sandalwood (sandalovina)
  • Apple oil (jabukovo ulje)

URL Structure

/sr/resenja/najbolje-ulje-divlje-ruze-za-bore
/sr/resenja/najbolje-arganovo-ulje-za-suvu-kozu
...

Note: Keep existing /solutions/ routing but create Serbian slugs for new pages.


Translation Requirements

Primary Language: Serbian (native, authentic)
Secondary Languages: English, German, French (professional translation quality)

Tone:

  • Informative but approachable
  • Scientific but not clinical
  • Encouraging but not hyped
  • Trustworthy, expert advice

SEO Keywords Strategy

Primary Keywords Pattern:

  • [oil] za [concern]
  • najbolje [oil] za [concern]
  • prirodno rešenje za [concern]

Secondary Keywords:

  • serum za [concern]
  • [oil] protiv [concern]
  • prirodna nega za [concern]

Long-Tail Keywords:

  • kako ukloniti [concern] prirodnim putem
  • [oil] iskustva
  • najbolji serum za [concern] posle 40

Page Template Components

Using existing:

  • OilForConcernPageTemplate component
  • Header with logo and navigation
  • Footer
  • ProductReviews section
  • BeforeAfterGallery (existing from homepage)
  • ProductsGrid
  • FAQSchema

Tracking:

  • Rybbit (already configured)
  • Mautic (already configured)

Implementation Steps

Step 1: Create JSON Data Files (Day 1)

  • Create all 10 JSON files in data/oil-for-concern/
  • Verify valid JSON structure
  • Test with dataLoader

Step 2: Verify Routing (Day 1)

  • Test /sr/resenja/{serbian-slug} works
  • Verify canonical URLs correct
  • Check hreflang tags

Step 3: Content Review (Day 2)

  • Review Serbian content for authenticity
  • Verify translations for other languages
  • Check all internal links work

Step 4: Testing (Day 2)

  • Test all 10 pages render correctly
  • Verify product grids display
  • Check mobile responsiveness
  • Validate schema markup

Step 5: Polish (Day 3)

  • Optimize images if needed
  • Add any missing related pages links
  • Final SEO review

Success Criteria

  • 10 pages created with Serbian slugs
  • All pages render correctly at /sr/resenja/{slug}
  • Header/Footer/Tracking all present
  • Product grids display correctly
  • Before/After gallery shows
  • Schema markup validates
  • No console errors
  • Mobile responsive

Next Steps After Completion

  1. Deploy to production
  2. Submit sitemap to Google
  3. Monitor indexing
  4. Track rankings for target keywords
  5. Plan Phase 2 (next 20 pages)

Appendix: Existing Infrastructure

Components already built:

  • OilForConcernPageTemplate - Main page template
  • ProductsGrid - Product display with add-to-cart
  • FAQSchema - Schema markup component
  • dataLoader.ts - Data fetching utilities
  • types.ts - TypeScript interfaces
  • /[locale]/solutions/[slug]/page.tsx - Route handler

Components reused from site:

  • Header - With logo, nav, hamburger menu
  • Footer - Full footer with links
  • ProductReviews - Testimonial section
  • BeforeAfterGallery - Before/after slider

Tracking already configured:

  • Rybbit script in layout
  • Mautic tracking in layout

Notes

  • Use existing page template - no new component development needed
  • Focus on high-quality content in Serbian
  • Ensure ingredients match actual Manoon products
  • Keep URLs in Serbian for better local SEO
  • All translations should be professional quality