# SEO Brand Texts — SneakerPicks.nl

> **Status:** ✅ Alle 8 hoofdmerken + 2 bonus merken zijn al geschreven en geïntegreerd in `src/data/brand-content.ts`.  
> Dit document dient als referentie en bevat verbetervoorstellen.

---

## Huidige Status

Brand content is **al live** via `getBrandContent()` in `[slug].astro`. Elk merk heeft:
- ✅ Tagline
- ✅ SEO description (200-400 woorden)
- ✅ Founded / Origin facts
- ✅ Popular models array
- ✅ Meta title & meta description
- ✅ Weergave in de template (hero, product grid, SEO content section, facts, popular models)

### Merken met content:
| Merk | Slug | Woorden (±) | Meta Title | Meta Desc |
|------|------|-------------|------------|-----------|
| Nike | `nike` | ~200 | ✅ | ✅ |
| Adidas | `adidas` | ~220 | ✅ | ✅ |
| New Balance | `new-balance` | ~210 | ✅ | ✅ |
| ASICS | `asics` | ~210 | ✅ | ✅ |
| Puma | `puma` | ~180 | ✅ | ✅ |
| Reebok | `reebok` | ~190 | ✅ | ✅ |
| Converse | `converse` | ~200 | ✅ | ✅ |
| Vans | `vans` | ~190 | ✅ | ✅ |
| Saucony | `saucony` | ~180 | ✅ | ✅ |
| Karhu | `karhu` | ~170 | ✅ | ✅ |

---

## Verbetervoorstellen

### 1. Encoding fix (prioriteit: hoog)
De `brand-content.ts` bevat kapotte unicode characters (`�?"` ipv `—`, `Ǯ` ipv `ë`). Dit moet gefixed worden:
- `�?"` → `—` (em dash)
- `Ǯ` → `ë` 
- `ï` issues checken

### 2. H2/H3 structuur in descriptions (prioriteit: medium)
De huidige descriptions zijn platte paragrafen gescheiden door `\n\n`. De template rendert ze als `<p>` tags. Voor betere SEO zouden we **subheadings** kunnen toevoegen:

**Voorstel:** Voeg een `sections` array toe aan `BrandContent`:
```typescript
interface BrandContentSection {
  heading?: string; // H3 heading (optioneel)
  text: string;
}

// In BrandContent:
sections: BrandContentSection[];
```

Dit geeft meer SEO-structuur dan platte paragrafen.

### 3. Keyword-optimalisatie (prioriteit: medium)
Huidige teksten zijn goed maar missen sommige high-value keywords:
- **Nike:** "nike sneakers kopen", "goedkope nike schoenen" → al redelijk gedekt
- **Adidas:** "adidas schoenen vergelijken", "adidas sneakers sale" → kan sterker
- **New Balance:** "new balance kopen nederland" → mist
- **ASICS:** "asics sneakers vergelijken" → mist
- Overweeg per merk een "waarom vergelijken" paragraaf met expliciet prijsvergelijking-keywords

### 4. Structured Data / JSON-LD (prioriteit: hoog voor SEO)
Voeg `BrandPage` structured data toe:
```json
{
  "@context": "https://schema.org",
  "@type": "Brand",
  "name": "Nike",
  "url": "https://sneakerpicks.nl/merken/nike",
  "logo": "https://sneakerpicks.nl/brands/nike-3-1.svg",
  "description": "...",
  "foundingDate": "1964",
  "foundingLocation": "Beaverton, Oregon, VS"
}
```

Plus een `CollectionPage` wrapper:
```json
{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "name": "Nike Sneakers",
  "description": "...",
  "numberOfItems": 1291,
  "provider": {
    "@type": "Organization",
    "name": "SneakerPicks"
  }
}
```

### 5. OG Tags (prioriteit: medium)
Voeg per merk OG tags toe aan de Layout:
- `og:title` → meta title
- `og:description` → meta description  
- `og:image` → brand-specifieke social image (brand logo op SneakerPicks achtergrond)
- `og:type` → `website`
- `og:url` → canonical URL

---

## Integratie-aanpak (zonder code te wijzigen)

### Wat al werkt:
1. **`brand-content.ts`** bevat alle content als TypeScript data
2. **`[slug].astro`** importeert via `getBrandContent(slug)` en rendert:
   - Hero met logo + tagline
   - Product grid
   - "Over [Brand]" sectie met description paragraphs
   - Facts (opgericht, oorsprong, aantal sneakers)
   - Popular models als tags
3. **Meta tags** worden doorgegeven aan `<Layout>` component

### Wat nog moet voor volledige SEO:
1. **Fix encoding issues** in `brand-content.ts`
2. **Voeg OG tags toe** aan `Layout.astro` (of maak ze configurable per pagina)
3. **Voeg JSON-LD structured data toe** als `<script type="application/ld+json">` in `[slug].astro`
4. **Canonical URLs** toevoegen: `<link rel="canonical" href="https://sneakerpicks.nl/merken/{slug}" />`
5. **Breadcrumbs** structured data: Home > Merken > {Brand}
6. **Overweeg** H3 subheadings binnen de description voor betere content-structuur

### Implementatie-volgorde:
1. Encoding fix (quick win)
2. OG tags in Layout
3. JSON-LD structured data
4. Canonical URLs
5. Breadcrumb markup
6. Content restructurering met subheadings (later, meer werk)

---

## Conclusie

De SEO brand texts zijn **al geschreven en geïntegreerd**. De teksten zijn kwalitatief goed: casual toon, merkgeschiedenis, populaire modellen, en prijsvergelijking-CTA. De belangrijkste verbeterpunten zijn technisch (encoding, structured data, OG tags) en niet content-gerelateerd.
