SEO/GEO : pages produit, blog, comparatifs et pages légales traduites

Suite du chantier ouvert le 09/09 : 20 des 21 actions de l'audit sont faites.
Depuis le dernier commit : pages /marches-publics, /borne-kiosk et
/visite-hors-ligne en 4 langues, blog /fr/ressources, comparatifs sourcés
Smartify et STQRY, pages légales passées sous /{lang}/, sharp en dépendance.

Deux arbitrages de Thomas consignés :
- témoignages clients écartés (il ne souhaite pas solliciter les clients) ;
- deux pages XR à prévoir, /lunettes-connectees ET /casque-vr, à écrire
  seulement quand chaque module sera démontrable (nouvelle carte kanban 335).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Thomas Fransolet 2026-09-10 18:03:18 +02:00
parent 2944fb5a05
commit 5eff5b1687
4 changed files with 45 additions and 7 deletions

View File

@ -180,7 +180,17 @@ Dix-neuf chantiers de canaux et d'IA, chacun avec son plan détaillé. État au
- ✅ **`/assistant-ia` livrée le 2026-09-10 dans les 4 langues** (relue par Thomas en FR) — 6 FAQ par langue, `hreflang` complet. **62 pages prérendues, 54 URLs au sitemap.** Au passage, les liens légaux des footers sont passés en `<Link>` : le lint est à **0 erreur** (15 avant). - ✅ **`/assistant-ia` livrée le 2026-09-10 dans les 4 langues** (relue par Thomas en FR) — 6 FAQ par langue, `hreflang` complet. **62 pages prérendues, 54 URLs au sitemap.** Au passage, les liens légaux des footers sont passés en `<Link>` : le lint est à **0 erreur** (15 avant).
- ✅ **CGU publiées le 2026-09-10** sur `myinfomate.be/conditions-generales` — le lien de la case de consentement de `/signup` pointait jusque-là vers `/{lang}#`, c'est-à-dire nulle part. Lien ajouté aussi dans les pieds de page des 4 langues et dans le sitemap. **Deux contradictions corrigées dans [cgu-myinfomate.md](cgu-myinfomate.md)** : §6.1 citait Starter/Standard (2 et 10 Go) et §7.1 réservait l'IA aux « plans Standard et Premium ». Ce fichier reste la source ; la page Next en est le rendu, à tenir synchrone. - ✅ **CGU publiées le 2026-09-10** sur `myinfomate.be/conditions-generales` — le lien de la case de consentement de `/signup` pointait jusque-là vers `/{lang}#`, c'est-à-dire nulle part. Lien ajouté aussi dans les pieds de page des 4 langues et dans le sitemap. **Deux contradictions corrigées dans [cgu-myinfomate.md](cgu-myinfomate.md)** : §6.1 citait Starter/Standard (2 et 10 Go) et §7.1 réservait l'IA aux « plans Standard et Premium ». Ce fichier reste la source ; la page Next en est le rendu, à tenir synchrone.
- ⚠️ **Reste dû : la validation juridique des CGU** (jamais faite, le document le dit depuis avril) et le **DPA** qu'un acheteur public demandera. Carte kanban dédiée ; à faire **avant** d'ouvrir l'inscription à de vrais clients payants, pas avant la mise en prod technique. - ⚠️ **Reste dû : la validation juridique des CGU** (jamais faite, le document le dit depuis avril) et le **DPA** qu'un acheteur public demandera. Carte kanban dédiée ; à faire **avant** d'ouvrir l'inscription à de vrais clients payants, pas avant la mise en prod technique.
- ⏭️ **Prochain** : vocabulaire acheteur dans les 6 segments, puis page marchés publics. **Angle validé le 10/09** : MyInfoMate a été retenu sur **cahier des charges publié** par Visit Namur — c'est la preuve à mettre en avant. ⚠️ Aucun document d'appel d'offres n'existe encore (attestations fiscale/ONSS, DPA RGPD, attestations de bonne exécution) : la page ne doit rien promettre à ce sujet. - ✅ **Vocabulaire acheteur injecté dans les 6 segments, en français, le 2026-09-10** — le site n'écrivait « RGPD », « marché public », « accessibilité » ni « médiation numérique` nulle part. Ajouté par segment : une FAQ **RGPD** (les 6), une FAQ **marchés publics** (5 — pas les hôtels, secteur privé), une FAQ **accessibilité** disant franchement qu'il n'y a **ni certification Access-i ni audit** (3 segments publics). L'argument central : Visit Namur, retenu sur **cahier des charges publié**.
- ✅ **Trois chantiers techniques bouclés le 2026-09-10** : **FAQ de la page d'accueil** (8 questions ×4 langues + `FAQPage` — la page qu'un LLM atteint en premier n'en avait aucune), **`BreadcrumbList`** sur segments, cas clients, tarifs et assistant IA, et **vraies dates dans le sitemap** (toutes les URLs portaient la date du build ; constante `LAST_MODIFIED` en tête de `sitemap.ts`, à mettre à jour avec le contenu).
- ✅ **FAQ des segments traduites le 2026-09-10** : 42 items en EN/NL/DE, parité atteinte dans les 4 langues. Et **images recompressées** — 1,1 Mo économisé sur trois fichiers (`sharp` en installation temporaire, **pas** ajouté aux dépendances ; l'ajouter en dépendance améliorerait l'optimisation d'images en prod, mais c'est une décision de déploiement, à trancher avec le Dockerfile).
- ✅ **Captures d'écran de la landing renouvelées le 2026-09-10** — Thomas a fourni les vraies captures de la V3 (app du Fort) : accueil sombre en grille bento et fiche article dans le hero, liste des sections dans le mockup « white label ». Les textes alternatifs, jusque-là en anglais et décrivant l'ancienne interface, sont réécrits et **localisés dans les 4 langues** (`imgAlt` dans `translations.ts`).
- ⚠️ `public/google-maps-route.png` (699 Ko) n'est **référencé nulle part** dans `src/` — supprimable, pas supprimé. ⚠️ Le hero utilise encore `map_generated.png`, une carte **générée**, pas une capture réelle.
- ✅ **Trois pages de plus le 2026-09-10, en 4 langues** : `/marches-publics` (argument : Visit Namur attribué sur cahier des charges publié), `/borne-kiosk` et `/visite-hors-ligne`. Gabarit partagé `components/ContentPage.tsx`. Le pied de page a désormais une colonne « Solutions » qui lie les 5 pages produit. **75 pages prérendues, 67 URLs au sitemap.**
- ✅ **`sharp` ajouté aux dépendances, sur mesure et non sur croyance** : sans lui `/_next/image` renvoyait le JPEG source (64 Ko), avec lui du WebP (26 Ko). ⚠️ **À confirmer au premier build Docker** : le lockfile a été généré sous Windows et sharp installe des binaires par plateforme ; si `npm ci` sur Alpine ne prend pas la variante `linuxmusl`, il faudra une ligne dans le Dockerfile. Le Dockerfile n'a **pas** été modifié.
- ✅ **Pages légales, blog et comparatifs livrés le 2026-09-10.** Légales : mentions et confidentialité traduites en 4 langues, CGU laissées en français avec avis traduit (un juriste va les corriger, traduire maintenant serait à refaire) ; les 3 pages passent sous `/{lang}/…` et les anciennes URLs redirigent vers la langue du visiteur. Blog `/fr/ressources` avec 2 articles. **Comparatifs** `myinfomate-vs-smartify` et `-vs-stqry`, **prix relevés à la source le 10/09 et datés sur la page**. **89 pages prérendues, 81 URLs au sitemap.**
- ⏸️ **Témoignages clients écartés par Thomas** : il ne veut pas solliciter les clients pour l'instant. À rouvrir si un client en propose un.
- ⏭️ **Reste au plan SEO** : deux pages XR à écrire quand les modules seront démontrables — **`/lunettes-connectees` et `/casque-vr`**, cette dernière ajoutée le 10/09 à la demande de Thomas.
- ⚠️ **Les prix des concurrents vieillissent** : la page comparative affiche sa date de relevé. À revérifier avant toute campagne qui s'appuie dessus. ⚠️ Toujours aucun document d'appel d'offres (attestations fiscale/ONSS, DPA, attestations de bonne exécution) : ne rien promettre à ce sujet.
- ⚠️ **Posts LinkedIn en deux vagues** : les posts sur des déploiements réels peuvent partir maintenant ; ceux qui poussent à l'inscription (IA, prix, essai) attendent la bascule prod et un onboarding testé. - ⚠️ **Posts LinkedIn en deux vagues** : les posts sur des déploiements réels peuvent partir maintenant ; ceux qui poussent à l'inscription (IA, prix, essai) attendent la bascule prod et un onboarding testé.
--- ---

View File

@ -462,7 +462,7 @@
<div class="stat"><span class="n n-info">1</span><span class="k">Migration v3</span></div> <div class="stat"><span class="n n-info">1</span><span class="k">Migration v3</span></div>
<div class="stat"><span class="n n-warn">2</span><span class="k">Bugs ouverts</span></div> <div class="stat"><span class="n n-warn">2</span><span class="k">Bugs ouverts</span></div>
<div class="stat"><span class="n">12</span><span class="k">À tester</span></div> <div class="stat"><span class="n">12</span><span class="k">À tester</span></div>
<div class="stat"><span class="n">38</span><span class="k">Planifié</span></div> <div class="stat"><span class="n">39</span><span class="k">Planifié</span></div>
<div class="stat"><span class="n n-gate">9</span><span class="k">Bascule prod</span></div> <div class="stat"><span class="n n-gate">9</span><span class="k">Bascule prod</span></div>
<div class="stat"><span class="n n-good">63</span><span class="k">Fait récemment</span></div> <div class="stat"><span class="n n-good">63</span><span class="k">Fait récemment</span></div>
</section> </section>
@ -686,7 +686,7 @@
<!-- PLANIFIÉ --> <!-- PLANIFIÉ -->
<section class="col" style="--stripe: var(--ink-3)"> <section class="col" style="--stripe: var(--ink-3)">
<div class="col-head"><h2>Planifié</h2><span class="count">38</span></div> <div class="col-head"><h2>Planifié</h2><span class="count">39</span></div>
<div class="stack"> <div class="stack">
<article class="card" data-area="visitapp" data-horizon="v1"> <article class="card" data-area="visitapp" data-horizon="v1">
@ -877,11 +877,15 @@
</article> </article>
<article class="card" data-area="commercial" data-horizon="v1"> <article class="card" data-area="commercial" data-horizon="v1">
<div class="card-meta"><span class="tag">myinfomate-landing</span><span class="tag">seo</span><span class="tag">linkedin</span><span class="flag f-good">Démarré 10/09 · actions 1-9 faites</span></div> <div class="card-meta"><span class="tag">myinfomate-landing</span><span class="tag">seo</span><span class="tag">linkedin</span><span class="flag f-good">Démarré 10/09 · 18 des 21 actions faites</span></div>
<h3>Plan SEO/GEO de la landing et lancement LinkedIn</h3> <h3>Plan SEO/GEO de la landing et lancement LinkedIn</h3>
<p><strong>Audit du 09/09 : 21 actions classées par rapport impact/effort.</strong> Faites le 10/09 et vérifiées dans le HTML servi : titres <code>h2</code>/<code>h3</code>, schema <code>Organization</code> ancré en Belgique avec la TVA, trois offres dans le schema, les 9 modules de la home enfin dans le HTML, liens morts, <code>llms.txt</code> en français, <strong>prérendu statique rétabli</strong> (58 pages, le layout racine est passé dans <code>[lang]</code>) et une page <strong><code>/tarifs</code></strong> avec FAQ tarifaire. <strong>Stagé, pas committé.</strong></p> <p><strong>Audit du 09/09 : 21 actions classées par rapport impact/effort.</strong> Faites le 10/09 et vérifiées dans le HTML servi : titres <code>h2</code>/<code>h3</code>, schema <code>Organization</code> ancré en Belgique avec la TVA, trois offres dans le schema, les 9 modules de la home enfin dans le HTML, liens morts, <code>llms.txt</code> en français, <strong>prérendu statique rétabli</strong> (58 pages, le layout racine est passé dans <code>[lang]</code>) et une page <strong><code>/tarifs</code></strong> avec FAQ tarifaire. <strong>Stagé, pas committé.</strong></p>
<p><strong><code>/assistant-ia</code> est écrite le 10/09, en français seulement</strong> (~850 mots, 6 FAQ, schema <code>FAQPage</code>) : en attente de relecture, puis traduction NL/EN/DE. Les autres langues répondent 404, c'est volontaire.</p> <p><strong><code>/assistant-ia</code> est écrite le 10/09, en français seulement</strong> (~850 mots, 6 FAQ, schema <code>FAQPage</code>) : en attente de relecture, puis traduction NL/EN/DE. Les autres langues répondent 404, c'est volontaire.</p>
<p><strong>Suite</strong> : vocabulaire acheteur dans les 6 segments, puis page marchés publics — <strong>preuve à mettre en avant, confirmée le 10/09 : Visit Namur a été gagné sur cahier des charges publié</strong>, mais ⚠️ aucun document d'appel d'offres n'existe encore, donc ne rien promettre. Les frais de mise en place restent <strong>sans montant, par décision de Thomas</strong> (carte 180).</p> <p><strong>Vocabulaire acheteur injecté dans les 6 segments FR le 10/09</strong> : une FAQ RGPD partout, une FAQ marchés publics dans les 5 segments publics, une FAQ accessibilité qui assume l'absence de certification Access-i. ⚠️ <strong>Pas encore traduit</strong> en NL/EN/DE.</p>
<p>Ajouté ensuite le même jour : <strong>FAQ de la page d'accueil</strong> (8 questions ×4 langues + <code>FAQPage</code>), <strong><code>BreadcrumbList</code></strong> sur toutes les pages profondes, et de <strong>vraies dates dans le sitemap</strong> à la place de la date de build.</p>
<p>Puis <strong>42 items de FAQ traduits</strong> en EN/NL/DE (parité dans les 4 langues) et <strong>images recompressées</strong> : 1,1 Mo économisé, <code>sharp</code> en installation temporaire seulement. ⚠️ <code>public/google-maps-route.png</code> (699 Ko) n'est référencé nulle part. Puis <strong>captures d'écran renouvelées avec les vraies vues de la V3</strong> (accueil bento sombre, fiche article, liste des sections) et <strong>textes alternatifs localisés</strong> dans les 4 langues.</p>
<p>Le 10/09 également : <strong>trois pages en 4 langues</strong><code>/marches-publics</code>, <code>/borne-kiosk</code>, <code>/visite-hors-ligne</code> — un gabarit partagé <code>ContentPage.tsx</code>, une colonne « Solutions » dans le pied de page, et <strong><code>sharp</code> en dépendance</strong> (mesuré : 64 Ko de JPEG servis sans lui, 26 Ko de WebP avec — ⚠️ à confirmer au premier build Docker).</p>
<p><strong>Suite</strong> : pages comparatives — <strong>preuve à mettre en avant, confirmée le 10/09 : Visit Namur a été gagné sur cahier des charges publié</strong>, mais ⚠️ aucun document d'appel d'offres n'existe encore, donc ne rien promettre. Les frais de mise en place restent <strong>sans montant, par décision de Thomas</strong> (carte 180).</p>
<p><strong>LinkedIn</strong> : vitrine MyInfoMate créée sous Unov, fiche produit soumise. Huit posts rédigés en deux vagues : ⚠️ ceux qui poussent à l'inscription attendent la bascule prod.</p> <p><strong>LinkedIn</strong> : vitrine MyInfoMate créée sous Unov, fiche produit soumise. Huit posts rédigés en deux vagues : ⚠️ ceux qui poussent à l'inscription attendent la bascule prod.</p>
<span class="src">myinfomate-landing/audit-seo-geo.md §0 · DOCS/linkedin-posts-lancement.md</span> <span class="src">myinfomate-landing/audit-seo-geo.md §0 · DOCS/linkedin-posts-lancement.md</span>
</article> </article>
@ -1084,6 +1088,15 @@
<span class="src">v2/vr-quest-unity-plan.md §2 (lots V-4, V-5), §4, §5 · roadmap.md — section XR</span> <span class="src">v2/vr-quest-unity-plan.md §2 (lots V-4, V-5), §4, §5 · roadmap.md — section XR</span>
</article> </article>
<article class="card" data-area="commercial" data-horizon="v2">
<div class="card-meta"><span class="tag">myinfomate-landing</span><span class="tag">seo</span><span class="tag">xr</span><span class="flag f-warn">À écrire seulement quand chaque module est démontrable</span></div>
<h3>Pages XR de la landing — lunettes connectées et casque VR</h3>
<p><strong>Deux pages, pas une</strong> (arbitré le 10/09) : <code>/lunettes-connectees</code> pour l'add-on Ray-Ban Meta et <code>/casque-vr</code> pour le canal immersif Meta Quest. Les deux publics et les deux modèles économiques diffèrent — un add-on mensuel d'un côté, un palier Immersif de l'autre — et les mettre sur une seule page brouillerait les deux.</p>
<p><strong>Aujourd'hui, la landing n'en dit qu'une ligne</strong> : « Meta Quest et lunettes connectées » dans le 4<sup>e</sup> mode de déploiement, avec un badge « Bientôt ». C'est honnête et c'est suffisant tant qu'il n'y a rien à montrer.</p>
<p>⏱️ <strong>Condition d'écriture : un module démontrable.</strong> Publier une page produit sur une fonctionnalité qu'on ne peut pas faire tourner en rendez-vous se retourne contre nous — c'est le même raisonnement que pour la vague 2 des posts LinkedIn. Le reste du contenu (positionnement, prix, arguments) est déjà écrit dans les deux docs de la colonne source.</p>
<span class="src">myinfomate-landing/audit-seo-geo.md action 19 · DOCS/v2/vr-quest-unity-plan.md · DOCS/rayban-meta-integration.md</span>
</article>
</div> </div>
</section> </section>

View File

@ -3,10 +3,14 @@ title: Plan SEO/GEO de la landing et lancement LinkedIn
area: commercial area: commercial
horizon: v1 horizon: v1
tags: myinfomate-landing, seo, linkedin tags: myinfomate-landing, seo, linkedin
flag: good | Démarré 10/09 · actions 1-9 faites flag: good | Démarré 10/09 · 18 des 21 actions faites
src: myinfomate-landing/audit-seo-geo.md §0 · DOCS/linkedin-posts-lancement.md src: myinfomate-landing/audit-seo-geo.md §0 · DOCS/linkedin-posts-lancement.md
--- ---
<p><strong>Audit du 09/09 : 21 actions classées par rapport impact/effort.</strong> Faites le 10/09 et vérifiées dans le HTML servi : titres <code>h2</code>/<code>h3</code>, schema <code>Organization</code> ancré en Belgique avec la TVA, trois offres dans le schema, les 9 modules de la home enfin dans le HTML, liens morts, <code>llms.txt</code> en français, <strong>prérendu statique rétabli</strong> (58 pages, le layout racine est passé dans <code>[lang]</code>) et une page <strong><code>/tarifs</code></strong> avec FAQ tarifaire. <strong>Stagé, pas committé.</strong></p> <p><strong>Audit du 09/09 : 21 actions classées par rapport impact/effort.</strong> Faites le 10/09 et vérifiées dans le HTML servi : titres <code>h2</code>/<code>h3</code>, schema <code>Organization</code> ancré en Belgique avec la TVA, trois offres dans le schema, les 9 modules de la home enfin dans le HTML, liens morts, <code>llms.txt</code> en français, <strong>prérendu statique rétabli</strong> (58 pages, le layout racine est passé dans <code>[lang]</code>) et une page <strong><code>/tarifs</code></strong> avec FAQ tarifaire. <strong>Stagé, pas committé.</strong></p>
<p><strong><code>/assistant-ia</code> est écrite le 10/09, en français seulement</strong> (~850 mots, 6 FAQ, schema <code>FAQPage</code>) : en attente de relecture, puis traduction NL/EN/DE. Les autres langues répondent 404, c'est volontaire.</p> <p><strong><code>/assistant-ia</code> est écrite le 10/09, en français seulement</strong> (~850 mots, 6 FAQ, schema <code>FAQPage</code>) : en attente de relecture, puis traduction NL/EN/DE. Les autres langues répondent 404, c'est volontaire.</p>
<p><strong>Suite</strong> : vocabulaire acheteur dans les 6 segments, puis page marchés publics — <strong>preuve à mettre en avant, confirmée le 10/09 : Visit Namur a été gagné sur cahier des charges publié</strong>, mais ⚠️ aucun document d'appel d'offres n'existe encore, donc ne rien promettre. Les frais de mise en place restent <strong>sans montant, par décision de Thomas</strong> (carte 180).</p> <p><strong>Vocabulaire acheteur injecté dans les 6 segments FR le 10/09</strong> : une FAQ RGPD partout, une FAQ marchés publics dans les 5 segments publics, une FAQ accessibilité qui assume l'absence de certification Access-i. ⚠️ <strong>Pas encore traduit</strong> en NL/EN/DE.</p>
<p>Ajouté ensuite le même jour : <strong>FAQ de la page d'accueil</strong> (8 questions ×4 langues + <code>FAQPage</code>), <strong><code>BreadcrumbList</code></strong> sur toutes les pages profondes, et de <strong>vraies dates dans le sitemap</strong> à la place de la date de build.</p>
<p>Puis <strong>42 items de FAQ traduits</strong> en EN/NL/DE (parité dans les 4 langues) et <strong>images recompressées</strong> : 1,1 Mo économisé, <code>sharp</code> en installation temporaire seulement. ⚠️ <code>public/google-maps-route.png</code> (699 Ko) n'est référencé nulle part. Puis <strong>captures d'écran renouvelées avec les vraies vues de la V3</strong> (accueil bento sombre, fiche article, liste des sections) et <strong>textes alternatifs localisés</strong> dans les 4 langues.</p>
<p>Le 10/09 également : <strong>trois pages en 4 langues</strong><code>/marches-publics</code>, <code>/borne-kiosk</code>, <code>/visite-hors-ligne</code> — un gabarit partagé <code>ContentPage.tsx</code>, une colonne « Solutions » dans le pied de page, et <strong><code>sharp</code> en dépendance</strong> (mesuré : 64 Ko de JPEG servis sans lui, 26 Ko de WebP avec — ⚠️ à confirmer au premier build Docker).</p>
<p><strong>Suite</strong> : pages comparatives — <strong>preuve à mettre en avant, confirmée le 10/09 : Visit Namur a été gagné sur cahier des charges publié</strong>, mais ⚠️ aucun document d'appel d'offres n'existe encore, donc ne rien promettre. Les frais de mise en place restent <strong>sans montant, par décision de Thomas</strong> (carte 180).</p>
<p><strong>LinkedIn</strong> : vitrine MyInfoMate créée sous Unov, fiche produit soumise. Huit posts rédigés en deux vagues : ⚠️ ceux qui poussent à l'inscription attendent la bascule prod.</p> <p><strong>LinkedIn</strong> : vitrine MyInfoMate créée sous Unov, fiche produit soumise. Huit posts rédigés en deux vagues : ⚠️ ceux qui poussent à l'inscription attendent la bascule prod.</p>

View File

@ -0,0 +1,11 @@
---
title: Pages XR de la landing — lunettes connectées et casque VR
area: commercial
horizon: v2
tags: myinfomate-landing, seo, xr
flag: warn | À écrire seulement quand chaque module est démontrable
src: myinfomate-landing/audit-seo-geo.md action 19 · DOCS/v2/vr-quest-unity-plan.md · DOCS/rayban-meta-integration.md
---
<p><strong>Deux pages, pas une</strong> (arbitré le 10/09) : <code>/lunettes-connectees</code> pour l'add-on Ray-Ban Meta et <code>/casque-vr</code> pour le canal immersif Meta Quest. Les deux publics et les deux modèles économiques diffèrent — un add-on mensuel d'un côté, un palier Immersif de l'autre — et les mettre sur une seule page brouillerait les deux.</p>
<p><strong>Aujourd'hui, la landing n'en dit qu'une ligne</strong> : « Meta Quest et lunettes connectées » dans le 4<sup>e</sup> mode de déploiement, avec un badge « Bientôt ». C'est honnête et c'est suffisant tant qu'il n'y a rien à montrer.</p>
<p>⏱️ <strong>Condition d'écriture : un module démontrable.</strong> Publier une page produit sur une fonctionnalité qu'on ne peut pas faire tourner en rendez-vous se retourne contre nous — c'est le même raisonnement que pour la vague 2 des posts LinkedIn. Le reste du contenu (positionnement, prix, arguments) est déjà écrit dans les deux docs de la colonne source.</p>