# Guide SEO - oki-foundation.org Ce document décrit l'optimisation SEO du site oki-foundation.org (V3, SvelteKit statique). ## 📋 Fichiers SEO ### 1. robots.txt **Emplacement :** `static/robots.txt` (servi à `/robots.txt`) Permet aux moteurs de recherche d'indexer tout le contenu du site et indique l'emplacement du sitemap. ``` User-agent: * Allow: / Sitemap: https://oki-foundation.org/sitemap.xml ``` ### 2. sitemap.xml **Emplacement :** `static/sitemap.xml` (servi à `/sitemap.xml`) Liste les 8 pages du site avec priorités et fréquences : - `/` 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) **À mettre à jour :** lors de l'ajout de nouvelles pages. ## 🏷️ 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 : ```svelte ``` - **Title** : `Titre | ORGANISATION KA INTERNATIONALE` (home : `… | OKI`) - **Description** : par page, sinon `site.description` - **Keywords** : `site.keywords` · **Author** : `site.name` - **Canonical URL** : `https://oki-foundation.org{path}` — évite le contenu dupliqué - **Hreflang** : `fr`, `en`, `x-default`, calculés via `alternatePath()` (`src/lib/i18n/index.ts`) ### Open Graph (10 balises) ```html ``` ### Twitter Cards `summary_large_image` + url, title, description, image, image:alt — self-hébergées comme tout le reste. ## 📊 Structured Data (JSON-LD) Deux blocs injectés par `Seo.svelte` sur toutes les pages : 1. **Organization** : nom (OKI), URL, logo, description, adresse (36 Rue Lethière, Basse-Terre 97100, GP), contact (kontak@oki-foundation.org), sameAs (niyaj, kute, labola, liberapay), `foundingDate: 2024`, `nonprofitStatus`. 2. **MusicGroup** : DJANGOKAM (genres Reggae/Zouk/Konpa/K-pop, djangokam.pawol.nu, membre OKI). ## 🔍 Attributs lang L'attribut `lang` du `` 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"`. ## 🎯 Bonnes pratiques ### Ajouter une nouvelle page 1. Créer `src/routes/ma-page/+page.svelte` avec `` 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 ## 🚀 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 ### 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:)[^"]*"' ``` ## 📈 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…) ## 🌍 Mots-clés ciblés ### Primaires - Organisation Ka Internationale · OKI · Fédiverse Guadeloupe · Alternatives GAFAM ### Secondaires - PeerTube / Mastodon / Nextcloud / Castopod Guadeloupe · Logiciel libre Antilles · Médias libres Caraïbes · Hébergement éthique · Langues créoles ### Longue traîne - "alternative libre à YouTube Guadeloupe" · "hébergement PeerTube Martinique" · "réseau social décentralisé Antilles" · "promotion langues créoles numérique" ## 📝 Checklist SEO - [x] Robots.txt configuré - [x] Sitemap.xml (8 URLs, dates à jour) - [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) - [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 - [ ] Google Search Console configuré - [ ] Analytics installé (optionnel, respectueux RGPD — rester sans tiers)