Files
oki-foundation/SEO.md
T

132 lines
5.0 KiB
Markdown
Raw Normal View History

2025-11-05 17:41:27 +04:00
# Guide SEO - o-k-i.net
Ce document décrit l'optimisation SEO du site o-k-i.net (V3, SvelteKit statique).
2025-11-05 17:41:27 +04:00
## 📋 Fichiers SEO
### 1. robots.txt
**Emplacement :** `static/robots.txt` (servi à `/robots.txt`)
2025-11-05 17:41:27 +04:00
Permet aux moteurs de recherche d'indexer tout le contenu du site et indique l'emplacement du sitemap.
```
User-agent: *
Allow: /
Sitemap: https://o-k-i.net/sitemap.xml
```
### 2. sitemap.xml
**Emplacement :** `static/sitemap.xml` (servi à `/sitemap.xml`)
2025-11-05 17:41:27 +04:00
Liste les 8 pages du site avec priorités et fréquences :
2025-11-05 17:41:27 +04:00
- `/` et `/en/` (priorité 1.0, hebdomadaire)
- `/dons/` et `/en/donate/` (0.6, mensuelle)
- `/presse/` et `/en/press/` (0.5, mensuelle)
- `/mentions-legales/` et `/en/legal-notice/` (0.3, mensuelle)
2025-11-05 17:41:27 +04:00
**À mettre à jour :** lors de l'ajout de nouvelles pages.
2025-11-05 17:41:27 +04:00
## 🏷️ Meta Tags
Tous les meta tags sont centralisés dans le composant **`src/lib/components/Seo.svelte`**, alimenté par `src/lib/i18n/{locale}/site.json`. Chaque page l'invoque avec ses props :
2025-11-05 17:41:27 +04:00
```svelte
<Seo title="Titre de la page" description="Description spécifique" path="/ma-page/" locale="fr" />
```
- **Title** : `Titre | ORGANISATION KA INTERNATIONALE` (home : `… | OKI`)
- **Description** : par page, sinon `site.description`
- **Keywords** : `site.keywords` · **Author** : `site.name`
- **Canonical URL** : `https://o-k-i.net{path}` — évite le contenu dupliqué
- **Hreflang** : `fr`, `en`, `x-default`, calculés via `alternatePath()` (`src/lib/i18n/index.ts`)
2025-11-05 17:41:27 +04:00
### Open Graph (10 balises)
2025-11-05 17:41:27 +04:00
```html
<meta property="og:type" content="website">
<meta property="og:url" content="https://o-k-i.net/…">
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="https://o-k-i.net/images/logo-512x512.png">
<meta property="og:image:width" content="512">
<meta property="og:image:height" content="512">
<meta property="og:image:alt" content="…">
2025-11-05 17:41:27 +04:00
<meta property="og:locale" content="fr_FR">
<meta property="og:site_name" content="ORGANISATION KA INTERNATIONALE">
2025-11-05 17:41:27 +04:00
```
### Twitter Cards
`summary_large_image` + url, title, description, image, image:alt — self-hébergées comme tout le reste.
2025-11-05 17:41:27 +04:00
## 📊 Structured Data (JSON-LD)
Deux blocs injectés par `Seo.svelte` sur toutes les pages :
2025-11-05 17:41:27 +04:00
1. **Organization** : nom (OKI), URL, logo, description, adresse (36 Rue Lethière, Basse-Terre 97100, GP), contact (kontak@o-k-i.net), sameAs (niyaj, kute, labola, liberapay), `foundingDate: 2024`, `nonprofitStatus`.
2. **MusicGroup** : DJANGOKAM (genres Reggae/Zouk/Konpa/K-pop, djangokam.pawol.nu, membre OKI).
2025-11-05 17:41:27 +04:00
## 🔍 Attributs lang
2025-11-05 17:41:27 +04:00
L'attribut `lang` du `<html>` est posé au prerender par `src/hooks.server.ts` (`fr` par défaut, `en` sous `/en/`), et `data-locale` pilote la redirection de langue (`static/lang-redirect.js`). Les microcopies en kréyòl (404, hors-ligne) portent `lang="gcf"`.
2025-11-05 17:41:27 +04:00
## 🎯 Bonnes pratiques
### Ajouter une nouvelle page
1. Créer `src/routes/ma-page/+page.svelte` avec `<Seo>` renseigné
2. Ajouter la paire FR↔EN dans `PATH_PAIRS` (`src/lib/i18n/index.ts`)
3. Mettre à jour `static/sitemap.xml`
4. Ajouter un lien dans `src/lib/i18n/*/navigation.json` si nécessaire
2025-11-05 17:41:27 +04:00
## 🚀 Tests et validation
### Outils recommandés
1. **Google Search Console** - Soumettre le sitemap
2. **Facebook Sharing Debugger** - https://developers.facebook.com/tools/debug/
3. **Schema Markup Validator** - https://validator.schema.org/
4. **Google Rich Results Test** - https://search.google.com/test/rich-results
2025-11-05 17:41:27 +04:00
### Commandes utiles (sur `npm run preview`)
```bash
curl http://localhost:4173/robots.txt
curl http://localhost:4173/sitemap.xml
curl http://localhost:4173/ | grep -oE '(property|name)="(og:|twitter:)[^"]*"'
2025-11-05 17:41:27 +04:00
```
## 📈 Suivi et amélioration
### Améliorations futures possibles
- [ ] Pages dédiées pour chaque service Fédiverse
- [ ] FAQ avec Schema.org FAQPage
- [ ] Breadcrumbs avec données structurées
- [ ] Hreflang pour d'autres langues (créole…)
2025-11-05 17:41:27 +04:00
## 🌍 Mots-clés ciblés
### Primaires
- Organisation Ka Internationale · OKI · Fédiverse Guadeloupe · Alternatives GAFAM
2025-11-05 17:41:27 +04:00
### Secondaires
- PeerTube / Mastodon / Nextcloud / Castopod Guadeloupe · Logiciel libre Antilles · Médias libres Caraïbes · Hébergement éthique · Langues créoles
2025-11-05 17:41:27 +04:00
### Longue traîne
- "alternative libre à YouTube Guadeloupe" · "hébergement PeerTube Martinique" · "réseau social décentralisé Antilles" · "promotion langues créoles numérique"
2025-11-05 17:41:27 +04:00
## 📝 Checklist SEO
- [x] Robots.txt configuré
- [x] Sitemap.xml (8 URLs, dates à jour)
2025-11-05 17:41:27 +04:00
- [x] Meta description sur toutes les pages
- [x] Balises title optimisées
- [x] URL canoniques
- [x] Open Graph (10 balises, og:image self-hébergée)
2025-11-05 17:41:27 +04:00
- [x] Twitter Cards
- [x] JSON-LD Organization + MusicGroup
- [x] Logo haute résolution (512×512)
- [x] Images avec attributs alt
- [x] Performance (Lighthouse mobile ≥ 90, mesuré à 91)
- [x] Mobile-friendly (responsive, vérifié Lighthouse)
- [x] HTTPS activé et HSTS configuré
- [x] Hreflang FR/EN/x-default
2025-11-05 17:41:27 +04:00
- [ ] Google Search Console configuré
- [ ] Analytics installé (optionnel, respectueux RGPD — rester sans tiers)