Files
o-k-i.net/SEO.md
T
sucupira 30858926fa docs+fix: nettoyage post-migration et conformité svelte-autofixer
- CONTRIBUTING.md et SEO.md réécrits pour la structure SvelteKit
- README : section documents de référence (charte, recette, AGENTS.md, guides Svelte 5)
- Liens internes via resolve()/asset() de $app/paths, externes en rel="external"
- Seo.svelte : JSON-LD construits dans le script (</script> échappé)
- Titres de sections : {' '} remplacé par &#32;
- Renommage svelte_core_bestpractices.md
- Passe svelte-autofixer : 0 issue restante hors {@html} first-party assumés
2026-07-21 08:41:55 -04:00

5.0 KiB
Raw Blame History

Guide SEO - o-k-i.net

Ce document décrit l'optimisation SEO du site o-k-i.net (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://o-k-i.net/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 :

<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)

Open Graph (10 balises)

<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="…">
<meta property="og:locale" content="fr_FR">
<meta property="og:site_name" content="ORGANISATION KA INTERNATIONALE">

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@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).

🔍 Attributs lang

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".

🎯 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

🚀 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)

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

  • Robots.txt configuré
  • Sitemap.xml (8 URLs, dates à jour)
  • Meta description sur toutes les pages
  • Balises title optimisées
  • URL canoniques
  • Open Graph (10 balises, og:image self-hébergée)
  • Twitter Cards
  • JSON-LD Organization + MusicGroup
  • Logo haute résolution (512×512)
  • Images avec attributs alt
  • Performance (Lighthouse mobile ≥ 90, mesuré à 91)
  • Mobile-friendly (responsive, vérifié Lighthouse)
  • HTTPS activé et HSTS configuré
  • Hreflang FR/EN/x-default
  • Google Search Console configuré
  • Analytics installé (optionnel, respectueux RGPD — rester sans tiers)