|
1 |
+// Auteur : Simon-Pierre Boucher — contact@spboucher.ai |
|
2 |
+import type { Metadata } from "next"; |
|
3 |
+ |
|
4 |
+export const metadata: Metadata = { |
|
5 |
+ title: "Déclaration de transparence — Robots d'indexation — Groupe KA", |
|
6 |
+ description: |
|
7 |
+ "Fonctionnement des robots d'indexation du Groupe KA (ka·2, ka·4, ka·6) : données publiques uniquement, respect de robots.txt, charge minimale, retrait sur demande — zéro boîte noire.", |
|
8 |
+}; |
|
9 |
+ |
|
10 |
+const MAILTO = "gk-mono font-bold underline underline-offset-4 hover:text-ink"; |
|
11 |
+ |
|
12 |
+const PRINCIPES: { title: string; body: React.ReactNode }[] = [ |
|
13 |
+ { |
|
14 |
+ title: "Données publiques uniquement.", |
|
15 |
+ body: ( |
|
16 |
+ <> |
|
17 |
+ Nos robots n'accèdent qu'à des pages publiquement |
|
18 |
+ accessibles sur le web. Ils ne franchissent aucune authentification, |
|
19 |
+ ne créent aucun compte, ne contournent aucun mur de connexion, aucun |
|
20 |
+ paywall ni aucune mesure technique de protection. |
|
21 |
+ </> |
|
22 |
+ ), |
|
23 |
+ }, |
|
24 |
+ { |
|
25 |
+ title: "Respect de robots.txt.", |
|
26 |
+ body: ( |
|
27 |
+ <> |
|
28 |
+ Chaque robot lit et respecte le fichier robots.txt des sites visités. |
|
29 |
+ Une directive d'exclusion est honorée immédiatement. |
|
30 |
+ </> |
|
31 |
+ ), |
|
32 |
+ }, |
|
33 |
+ { |
|
34 |
+ title: "Identification claire.", |
|
35 |
+ body: ( |
|
36 |
+ <> |
|
37 |
+ Nos robots s'identifient au moyen d'un user-agent explicite |
|
38 |
+ qui les désigne — jamais une identité de navigateur humain. Chaque |
|
39 |
+ robot documente son fonctionnement sur son propre site (ka2.bot, |
|
40 |
+ ka4.bot, ka6.bot). |
|
41 |
+ </> |
|
42 |
+ ), |
|
43 |
+ }, |
|
44 |
+ { |
|
45 |
+ title: "Charge minimale sur les serveurs.", |
|
46 |
+ body: ( |
|
47 |
+ <> |
|
48 |
+ Un délai est appliqué entre chaque requête, et chaque session est |
|
49 |
+ plafonnée en nombre de pages et en durée, afin de ne jamais nuire à la |
|
50 |
+ performance des sites visités. |
|
51 |
+ </> |
|
52 |
+ ), |
|
53 |
+ }, |
|
54 |
+ { |
|
55 |
+ title: "Indexation, pas reproduction massive.", |
|
56 |
+ body: ( |
|
57 |
+ <> |
|
58 |
+ Nos robots recueillent le minimum nécessaire à l'affichage |
|
59 |
+ d'un extrait et d'un lien vers la source. Ils ne visent pas |
|
60 |
+ la reconstitution intégrale des bases de données des sites visités. |
|
61 |
+ </> |
|
62 |
+ ), |
|
63 |
+ }, |
|
64 |
+ { |
|
65 |
+ title: "Journalisation.", |
|
66 |
+ body: ( |
|
67 |
+ <> |
|
68 |
+ L'activité de chaque robot est journalisée (pages visitées, |
|
69 |
+ horodatage, respect des directives), ce qui nous permet de démontrer |
|
70 |
+ nos pratiques et de répondre à toute question d'un exploitant de |
|
71 |
+ site. |
|
72 |
+ </> |
|
73 |
+ ), |
|
74 |
+ }, |
|
75 |
+ { |
|
76 |
+ title: "Retrait sur demande.", |
|
77 |
+ body: ( |
|
78 |
+ <> |
|
79 |
+ Tout exploitant de site ou titulaire de droits peut demander |
|
80 |
+ l'exclusion de son site ou le retrait d'un contenu en |
|
81 |
+ écrivant à{" "} |
|
82 |
+ <a className={MAILTO} href="mailto:admin@groupe-ka.com"> |
|
83 |
+ admin@groupe-ka.com |
|
84 |
+ </a> |
|
85 |
+ . Les demandes sont traitées dans un délai de 48 à 72 heures |
|
86 |
+ ouvrables. |
|
87 |
+ </> |
|
88 |
+ ), |
|
89 |
+ }, |
|
90 |
+ { |
|
91 |
+ title: "Conformité.", |
|
92 |
+ body: ( |
|
93 |
+ <> |
|
94 |
+ Nos pratiques sont conçues pour respecter la Loi 25 (Québec) et la |
|
95 |
+ LPRPDE (Canada) en matière de renseignements personnels. |
|
96 |
+ </> |
|
97 |
+ ), |
|
98 |
+ }, |
|
99 |
+]; |
|
100 |
+ |
|
101 |
+type BotFiche = { |
|
102 |
+ mark: string; |
|
103 |
+ domain: string; |
|
104 |
+ url: string; |
|
105 |
+ role: string; |
|
106 |
+ rows: [string, React.ReactNode][]; |
|
107 |
+}; |
|
108 |
+ |
|
109 |
+const BOTS_FICHES: BotFiche[] = [ |
|
110 |
+ { |
|
111 |
+ mark: "ka·2", |
|
112 |
+ domain: "www.ka2.bot", |
|
113 |
+ url: "https://www.ka2.bot", |
|
114 |
+ role: "Cartographie générale du web québécois", |
|
115 |
+ rows: [ |
|
116 |
+ [ |
|
117 |
+ "Plateformes alimentées", |
|
118 |
+ "l'écosystème de découverte du groupe — les sources repérées par ka·2 sont ensuite proposées aux plateformes ·Ka, qui décident de s'y brancher.", |
|
119 |
+ ], |
|
120 |
+ [ |
|
121 |
+ "Nature du contenu indexé", |
|
122 |
+ "entités publiques du web québécois, classées en quatre types : entreprises, organisations, personnes et sites web.", |
|
123 |
+ ], |
|
124 |
+ [ |
|
125 |
+ "Technologie", |
|
126 |
+ "bot de cartographie propulsé par un modèle d'intelligence artificielle (Claude Haiku 4.5, Anthropic) combiné aux services de crawl Firecrawl et Scrapfly.", |
|
127 |
+ ], |
|
128 |
+ [ |
|
129 |
+ "Paramètres d'exploitation", |
|
130 |
+ "budget quotidien de pages plafonné, durée de session limitée, délai configuré entre chaque requête et nombre maximal de pages par cycle. Le respect de robots.txt est activé.", |
|
131 |
+ ], |
|
132 |
+ [ |
|
133 |
+ "Renseignements personnels", |
|
134 |
+ "le contenu public peut occasionnellement en contenir (p. ex. le nom d'un dirigeant sur le site de son entreprise); ils sont limités au minimum nécessaire à l'identification de l'entité, jamais enrichis ni croisés.", |
|
135 |
+ ], |
|
136 |
+ ], |
|
137 |
+ }, |
|
138 |
+ { |
|
139 |
+ mark: "ka·4", |
|
140 |
+ domain: "www.ka4.bot", |
|
141 |
+ url: "https://www.ka4.bot", |
|
142 |
+ role: "Cartographie élargie, avec activité en direct", |
|
143 |
+ rows: [ |
|
144 |
+ [ |
|
145 |
+ "Plateformes alimentées", |
|
146 |
+ "même rôle d'éclaireur que ka·2 — il double la flotte de découverte sur un second front.", |
|
147 |
+ ], |
|
148 |
+ [ |
|
149 |
+ "Nature du contenu indexé", |
|
150 |
+ "entités publiques du web québécois, classées en cinq types : entreprises, organisations, personnes, sites web et données générales.", |
|
151 |
+ ], |
|
152 |
+ [ |
|
153 |
+ "Technologie", |
|
154 |
+ "même moteur que ka·2 (Claude Haiku 4.5 + Firecrawl/Scrapfly), avec bascule automatique entre backends de lecture et un tableau de bord public où l'activité du bot s'observe en direct.", |
|
155 |
+ ], |
|
156 |
+ [ |
|
157 |
+ "Paramètres d'exploitation", |
|
158 |
+ "budget quotidien de pages plafonné, durée de session limitée, délai configuré entre chaque requête et nombre maximal de pages par cycle. Le respect de robots.txt est activé.", |
|
159 |
+ ], |
|
160 |
+ [ |
|
161 |
+ "Renseignements personnels", |
|
162 |
+ "mêmes règles de minimisation que ka·2 — pour des données d'entreprises, de produits et de sites, normalement aucun.", |
|
163 |
+ ], |
|
164 |
+ ], |
|
165 |
+ }, |
|
166 |
+ { |
|
167 |
+ mark: "ka·6", |
|
168 |
+ domain: "www.ka6.bot", |
|
169 |
+ url: "https://www.ka6.bot", |
|
170 |
+ role: "Cartographie des créateurs et influenceurs du Québec", |
|
171 |
+ rows: [ |
|
172 |
+ ["Plateforme alimentée", "ka6 (www.ka6.bot)."], |
|
173 |
+ [ |
|
174 |
+ "Nature du contenu indexé", |
|
175 |
+ "entités publiques du web québécois — créateurs, agences, marques, entreprises, organisations et sites web — dans le domaine de la création de contenu et de l'influence.", |
|
176 |
+ ], |
|
177 |
+ [ |
|
178 |
+ "Technologie", |
|
179 |
+ "bot de cartographie propulsé par un modèle d'intelligence artificielle (Claude Haiku 4.5, Anthropic) combiné aux services de crawl Firecrawl et Scrapfly.", |
|
180 |
+ ], |
|
181 |
+ [ |
|
182 |
+ "Paramètres d'exploitation", |
|
183 |
+ "budget quotidien de pages plafonné, durée de session limitée, délai configuré entre chaque requête et nombre maximal de pages par cycle. Le respect de robots.txt est activé.", |
|
184 |
+ ], |
|
185 |
+ [ |
|
186 |
+ "Renseignements personnels", |
|
187 |
+ "ka·6 traite des renseignements concernant des personnes exerçant une activité publique de création ou d'influence (nom public ou nom d'artiste, plateformes utilisées, nature de l'activité publique). L'indexation se limite aux informations que ces personnes ont elles-mêmes rendues publiques dans le cadre de leur activité professionnelle. Aucune donnée privée (coordonnées personnelles, adresse résidentielle, informations sur la vie privée) n'est recherchée ni compilée.", |
|
188 |
+ ], |
|
189 |
+ [ |
|
190 |
+ "Droit de retrait renforcé", |
|
191 |
+ <> |
|
192 |
+ toute personne figurant dans les données de ka·6 peut demander la |
|
193 |
+ consultation, la rectification ou le retrait complet de son profil |
|
194 |
+ en écrivant à{" "} |
|
195 |
+ <a className={MAILTO} href="mailto:admin@groupe-ka.com"> |
|
196 |
+ admin@groupe-ka.com |
|
197 |
+ </a> |
|
198 |
+ , sans avoir à justifier sa demande. Le retrait est traité en |
|
199 |
+ priorité. |
|
200 |
+ </>, |
|
201 |
+ ], |
|
202 |
+ ], |
|
203 |
+ }, |
|
204 |
+]; |
|
205 |
+ |
|
206 |
+function Card({ |
|
207 |
+ num, |
|
208 |
+ title, |
|
209 |
+ children, |
|
210 |
+ index, |
|
211 |
+}: { |
|
212 |
+ num: string; |
|
213 |
+ title: string; |
|
214 |
+ children: React.ReactNode; |
|
215 |
+ index: number; |
|
216 |
+}) { |
|
217 |
+ return ( |
|
218 |
+ <article |
|
219 |
+ className="gk-card rise p-5 sm:p-7" |
|
220 |
+ style={{ animationDelay: `${0.12 + index * 0.05}s` }} |
|
221 |
+ > |
|
222 |
+ <span className="gk-mono text-[12px] font-bold text-green">{num}</span> |
|
223 |
+ <h2 className="gk-display mt-2 text-[17px] font-bold uppercase"> |
|
224 |
+ {title} |
|
225 |
+ </h2> |
|
226 |
+ <div className="mt-3 space-y-3 text-[14px] leading-relaxed text-ink-2"> |
|
227 |
+ {children} |
|
228 |
+ </div> |
|
229 |
+ </article> |
|
230 |
+ ); |
|
231 |
+} |
|
232 |
+ |
|
233 |
+function Bullet({ children }: { children: React.ReactNode }) { |
|
234 |
+ return ( |
|
235 |
+ <li className="flex gap-3"> |
|
236 |
+ <span |
|
237 |
+ aria-hidden="true" |
|
238 |
+ className="mt-[8px] h-[5px] w-[5px] flex-none rotate-45 border border-ink bg-lime" |
|
239 |
+ /> |
|
240 |
+ <span>{children}</span> |
|
241 |
+ </li> |
|
242 |
+ ); |
|
243 |
+} |
|
244 |
+ |
|
245 |
+export default function Bots() { |
|
246 |
+ return ( |
|
247 |
+ <main className="mx-auto max-w-4xl px-4 pb-16 sm:px-6"> |
|
248 |
+ <section className="pt-12 sm:pt-14"> |
|
249 |
+ <p className="kicker rise">Zéro boîte noire · nos robots</p> |
|
250 |
+ <h1 className="gk-display rise mt-4 text-[clamp(30px,5vw,52px)] leading-[1] font-bold tracking-[-0.035em] uppercase [animation-delay:0.08s]"> |
|
251 |
+ Déclaration de <span className="hl">transparence</span> — robots |
|
252 |
+ d'indexation |
|
253 |
+ </h1> |
|
254 |
+ <p className="rise mt-5 max-w-2xl text-[15px] text-ink-2 [animation-delay:0.16s]"> |
|
255 |
+ Le Groupe KA exploite des robots d'indexation automatisée |
|
256 |
+ (« bots ») qui alimentent ses plateformes d'agrégation. La |
|
257 |
+ présente déclaration décrit, en toute transparence, le |
|
258 |
+ fonctionnement de ces robots, les principes qu'ils respectent |
|
259 |
+ et les moyens offerts aux exploitants de sites web pour contrôler ou |
|
260 |
+ refuser l'indexation. |
|
261 |
+ </p> |
|
262 |
+ <p className="gk-mono rise mt-4 text-[11px] text-ink-3 [animation-delay:0.2s]"> |
|
263 |
+ Dernière mise à jour : 13 août 2026 |
|
264 |
+ </p> |
|
265 |
+ </section> |
|
266 |
+ |
|
267 |
+ <div className="mt-10 space-y-5"> |
|
268 |
+ <Card num="01" title="Principes communs à tous nos robots" index={0}> |
|
269 |
+ <p> |
|
270 |
+ Tous les robots du Groupe KA appliquent, sans exception, les |
|
271 |
+ règles suivantes : |
|
272 |
+ </p> |
|
273 |
+ <ol className="space-y-3"> |
|
274 |
+ {PRINCIPES.map((p, i) => ( |
|
275 |
+ <li key={p.title} className="flex gap-3"> |
|
276 |
+ <span className="gk-mono font-bold text-green"> |
|
277 |
+ {String(i + 1).padStart(2, "0")} |
|
278 |
+ </span> |
|
279 |
+ <span> |
|
280 |
+ <strong className="text-ink">{p.title}</strong> {p.body} |
|
281 |
+ </span> |
|
282 |
+ </li> |
|
283 |
+ ))} |
|
284 |
+ </ol> |
|
285 |
+ </Card> |
|
286 |
+ |
|
287 |
+ {BOTS_FICHES.map((b, i) => ( |
|
288 |
+ <Card |
|
289 |
+ key={b.mark} |
|
290 |
+ num={String(i + 2).padStart(2, "0")} |
|
291 |
+ title={`${b.mark} — ${b.role}`} |
|
292 |
+ index={i + 1} |
|
293 |
+ > |
|
294 |
+ <p className="gk-mono text-[12px]"> |
|
295 |
+ <a |
|
296 |
+ href={b.url} |
|
297 |
+ target="_blank" |
|
298 |
+ rel="noopener noreferrer" |
|
299 |
+ className="font-bold underline underline-offset-4 hover:text-ink" |
|
300 |
+ > |
|
301 |
+ {b.domain} |
|
302 |
+ </a> |
|
303 |
+ </p> |
|
304 |
+ <ul className="space-y-2"> |
|
305 |
+ {b.rows.map(([label, value]) => ( |
|
306 |
+ <Bullet key={label}> |
|
307 |
+ <strong className="text-ink">{label} :</strong> {value} |
|
308 |
+ </Bullet> |
|
309 |
+ ))} |
|
310 |
+ </ul> |
|
311 |
+ </Card> |
|
312 |
+ ))} |
|
313 |
+ |
|
314 |
+ <Card num="05" title="Ce que nos robots ne font pas" index={4}> |
|
315 |
+ <ul className="space-y-2"> |
|
316 |
+ <Bullet> |
|
317 |
+ Ils ne contournent aucun robots.txt, CAPTCHA, blocage |
|
318 |
+ d'adresse IP ni aucune autre mesure de protection : un |
|
319 |
+ blocage est interprété comme un refus et respecté. |
|
320 |
+ </Bullet> |
|
321 |
+ <Bullet> |
|
322 |
+ Ils ne collectent pas de contenu derrière authentification. |
|
323 |
+ </Bullet> |
|
324 |
+ <Bullet> |
|
325 |
+ Ils ne recueillent pas de renseignements personnels au-delà de |
|
326 |
+ ce qui figure publiquement dans le contenu indexé, et n'en |
|
327 |
+ font aucune vente ni communication à des tiers. |
|
328 |
+ </Bullet> |
|
329 |
+ <Bullet> |
|
330 |
+ Ils ne republient pas intégralement le contenu des sites |
|
331 |
+ visités : nos plateformes affichent des extraits accompagnés |
|
332 |
+ d'un lien vers la source originale. |
|
333 |
+ </Bullet> |
|
334 |
+ </ul> |
|
335 |
+ </Card> |
|
336 |
+ |
|
337 |
+ <Card num="06" title="Pour les exploitants de sites web" index={5}> |
|
338 |
+ <p> |
|
339 |
+ Si vous exploitez un site visité par l'un de nos robots et |
|
340 |
+ souhaitez : |
|
341 |
+ </p> |
|
342 |
+ <ul className="space-y-2"> |
|
343 |
+ <Bullet> |
|
344 |
+ <strong className="text-ink"> |
|
345 |
+ Ajuster la fréquence de visite |
|
346 |
+ </strong>{" "} |
|
347 |
+ : écrivez-nous, nous adapterons les délais; |
|
348 |
+ </Bullet> |
|
349 |
+ <Bullet> |
|
350 |
+ <strong className="text-ink">Exclure votre site</strong> : |
|
351 |
+ ajoutez notre user-agent à votre robots.txt, ou écrivez-nous |
|
352 |
+ pour une exclusion immédiate; |
|
353 |
+ </Bullet> |
|
354 |
+ <Bullet> |
|
355 |
+ <strong className="text-ink"> |
|
356 |
+ Établir un partenariat de données |
|
357 |
+ </strong>{" "} |
|
358 |
+ (flux officiel plutôt que crawl) : nous sommes ouverts à toute |
|
359 |
+ entente, écrivez à{" "} |
|
360 |
+ <a className={MAILTO} href="mailto:contact@groupe-ka.com"> |
|
361 |
+ contact@groupe-ka.com |
|
362 |
+ </a> |
|
363 |
+ . |
|
364 |
+ </Bullet> |
|
365 |
+ </ul> |
|
366 |
+ </Card> |
|
367 |
+ |
|
368 |
+ <Card num="07" title="Contact" index={6}> |
|
369 |
+ <p> |
|
370 |
+ Responsable des robots d'indexation :{" "} |
|
371 |
+ <strong className="text-ink">Simon-Pierre Boucher</strong> |
|
372 |
+ <br /> |
|
373 |
+ Courriel :{" "} |
|
374 |
+ <a className={MAILTO} href="mailto:contact@groupe-ka.com"> |
|
375 |
+ contact@groupe-ka.com |
|
376 |
+ </a>{" "} |
|
377 |
+ · Demandes de retrait :{" "} |
|
378 |
+ <a className={MAILTO} href="mailto:admin@groupe-ka.com"> |
|
379 |
+ admin@groupe-ka.com |
|
380 |
+ </a> |
|
381 |
+ </p> |
|
382 |
+ </Card> |
|
383 |
+ </div> |
|
384 |
+ |
|
385 |
+ <p className="gk-mono mt-8 text-[11px] text-ink-3"> |
|
386 |
+ Cette déclaration complète notre{" "} |
|
387 |
+ <a |
|
388 |
+ href="/loi-25" |
|
389 |
+ className="underline underline-offset-4 hover:text-ink" |
|
390 |
+ > |
|
391 |
+ politique de protection des renseignements personnels (Loi 25) |
|
392 |
+ </a> |
|
393 |
+ . Voir aussi :{" "} |
|
394 |
+ <a |
|
395 |
+ href="/confidentialite" |
|
396 |
+ className="underline underline-offset-4 hover:text-ink" |
|
397 |
+ > |
|
398 |
+ Politique de confidentialité |
|
399 |
+ </a>{" "} |
|
400 |
+ ·{" "} |
|
401 |
+ <a |
|
402 |
+ href="/conditions" |
|
403 |
+ className="underline underline-offset-4 hover:text-ink" |
|
404 |
+ > |
|
405 |
+ Conditions d'utilisation |
|
406 |
+ </a> |
|
407 |
+ </p> |
|
408 |
+ </main> |
|
409 |
+ ); |
|
410 |
+} |