PDF

Rapport completharborcyclery.example

L’IA ne voit que 0 % de votre contenu. Elle lit une page presque vide.

Analysé le 24 septembre 2026 à 20:17 · 25 problèmes · 36 vérifications

Ce que voit une personne, et ce que reçoit une IA

0%de correspondance

Si les deux colonnes disent la même chose, tout va bien. Tout ce qui est marqué en rouge existe sur votre écran mais n’arrive jamais jusqu’au robot.

Capture de harborcyclery.example telle qu’elle s’affiche dans un navigateur
Capture de harborcyclery.example avec JavaScript désactivé, c’est-à-dire telle que la reçoit un robot d’IA
Ce que voit une personne160 motsCe que reçoit une IA0 mots
La même page, avec JavaScript d’un côté du trait et sans de l’autre. Ce qui devient blanc, c’est ce qui n’arrive jamais au robot.

Note par catégorie

  • Accès des IA83/100

    Les robots de ChatGPT, Claude, Perplexity et Gemini peuvent-ils seulement entrer sur votre site ? · compte pour 26 % · 2 alertes

  • Contenu visible par l’IA15/100

    Ce qu’une personne voit à l’écran arrive-t-il aussi au robot qui n’exécute pas JavaScript ? · compte pour 26 % · 4 alertes

  • Structure et sémantique25/100

    Le modèle peut-il comprendre la page et la découper en fragments citables ? · compte pour 15 % · 6 alertes

  • Données structurées14/100

    Dites-vous à l’IA qui vous êtes et ce que vous proposez, dans un format qu’elle n’a pas à deviner ? · compte pour 15 % · 5 alertes

  • Contenu qui répond5/100

    Y a-t-il des réponses concrètes qu’une IA peut reprendre et citer telles quelles ? · compte pour 12 % · 6 alertes

  • Technique71/100

    Vitesse, transport et hygiène de base du serveur. · compte pour 6 % · 2 alertes

Accès des moteurs de recherche IA

Moteur de recherche IArobots.txtServeur
ChatGPT SearchOAI-SearchBotAutoriséHTTP 200
ChatGPT (navigation en direct)ChatGPT-UserAutoriséHTTP 200
OpenAI GPTBotGPTBotBloquéDisallow: /HTTP 200
Anthropic ClaudeBotClaudeBotAutoriséHTTP 200
Claude SearchClaude-SearchBotAutoriséHTTP 200
Claude (navigation en direct)Claude-UserAutoriséHTTP 200
PerplexityPerplexityBotAutoriséHTTP 200
Google GeminiGoogle-ExtendedAutoriséHTTP 200
Apple IntelligenceApplebot-ExtendedAutoriséHTTP 200
Meta AImeta-externalagentAutoriséHTTP 200
Copilot / Bing (source de nombreuses IA)BingbotAutoriséHTTP 200

Ce que Google mesure sur votre site

Lighthouse · PageSpeed Insights · mobile

Performances
38
Accessibilité
91
Bonnes pratiques
100
SEO
83
Plus grand élément affiché (LCP)
4,1 s
Premier contenu affiché (FCP)
2,6 s
Temps de blocage total (TBT)
620 ms
Décalage de mise en page cumulé (CLS)
0,02
Indice de vitesse
5,8 s

Ces chiffres varient avec le réseau et le serveur. Ils servent à comparer avant et après une modification, pas à courir après un 100 parfait. Ils ne comptent pas dans votre note de visibilité IA.

Les 25 problèmes et comment les corriger

Critique

L’IA ne voit que 0 % de votre site

Une personne lit 160 mots à l’écran ; un robot d’IA en reçoit 0. La différence, c’est du contenu généré dans le navigateur.

Ce que ça vous coûte

Quand un modèle décide qui citer, il compare le contenu qu’il a réussi à lire. S’il manque la moitié de votre page, vous vous battez avec la moitié de vos arguments.

Comment corriger

Passez le contenu principal en rendu côté serveur : textes, prix, fiches produit, FAQ et liens de navigation. Ne laissez côté client que ce qui est interactif (paniers, filtres, cartes).

Critique

Seulement 0 mot arrive jusqu’à l’IA

Le HTML renvoyé par le serveur contient 0 mot de vrai texte, contre les 160 qu’une personne voit à l’écran.

Ce que ça vous coûte

Les modèles ont besoin de texte pour en extraire une réponse et vous citer. Avec moins de 300 mots, ils n’ont pas grand-chose à se mettre sous la dent.

Comment corriger

Rendez le contenu côté serveur (SSR/SSG) ou pré-rendez le HTML : l’IA doit recevoir le texte déjà écrit dans la réponse, pas un conteneur vide.

Critique

Une partie du contenu n’arrive jamais à l’IA

Ces textes s’affichent à l’écran mais ne figurent pas dans le HTML que reçoit un robot : • Bike repair in Portland • Full service in 24 hours. • We collect your bike from home and bring it back ready to ride. • Gear and brake adjustment, wheel truing, lubrication and a bolt check. • New 11 or 12-speed chain, with a check of cassette wear. • Bleed on both brakes, new pads and lever adjustment. • We assemble it and set it up for your size. • Over 3,000 bikes serviced since 2016.

Ce que ça vous coûte

GPTBot, ClaudeBot et PerplexityBot lisent le HTML tel qu’il arrive. Ils n’attendent pas que votre JavaScript s’exécute. Tout ce qui précède leur est littéralement invisible.

Comment corriger

Servez ce contenu depuis le serveur. Selon votre stack : • Next.js : utilisez des Server Components ou getStaticProps/generateStaticParams au lieu de useEffect + fetch. • Nuxt : ssr: true et useAsyncData au lieu de onMounted. • SPA React/Vue classique : ajoutez un pré-rendu (vite-plugin-prerender, react-snap) ou passez au SSR. • CMS avec widgets JS : remplacez le widget par du HTML statique ou mettez le texte dans le contenu lui-même. Vérifiez le résultat avec : curl -s http://harborcyclery.example/ | grep -i "un bout de votre texte"

Ce que nous avons trouvé sur votre site
Bike repair in Portland
---
Full service in 24 hours.
---
We collect your bike from home and bring it back ready to ride.
---
Gear and brake adjustment, wheel truing, lubrication and a bolt check.
---
New 11 or 12-speed chain, with a check of cassette wear.

Grave

Aucun titre H1

Le HTML brut ne contient aucun <h1>.

Ce que ça vous coûte

Le H1 indique au modèle le sujet principal. Sans lui (ou avec plusieurs), la page perd son fil et le modèle ne sait pas ce qu’il est en train de résumer.

Comment corriger

Ajoutez un seul <h1> avec le sujet principal de la page, formulé comme le dirait un client.

Grave

La page n’a aucun titre de section

Aucune balise H1 à H6 dans le HTML servi.

Ce que ça vous coûte

Les titres sont les points de coupe qu’un modèle utilise pour découper la page en fragments citables. Sans eux, votre contenu forme un bloc compact, cité en entier ou pas du tout.

Comment corriger

Structurez le contenu avec un H1 et plusieurs H2/H3, chacun formulé comme la question à laquelle répond la section.

Grave

Vous n’avez aucune donnée structurée

Le HTML ne contient aucun <script type="application/ld+json"> avec schema.org.

Ce que ça vous coûte

Le JSON-LD est la carte d’identité qu’un modèle lit sans ambiguïté : nom, services, prix, horaires, avis. Sans lui, l’IA doit deviner à partir du texte, se trompe plus souvent, ou vous ignore et cite celui qui lui a mâché le travail.

Comment corriger

Ajoutez un bloc comme celui-ci dans le <head>, en adaptant les valeurs à votre activité :

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "VOTRE MARQUE",
  "url": "http://harborcyclery.example",
  "logo": "http://harborcyclery.example/logo.png",
  "description": "Ce que vous faites, pour qui et où, en une phrase.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hello@harborcyclery.example",
    "availableLanguage": ["en"]
  }
}
</script>

Grave

Le site n’utilise pas HTTPS

http://harborcyclery.example/ est servi sans chiffrement.

Ce que ça vous coûte

Sans HTTPS, vous perdez des positions dans les moteurs de recherche classiques, et plusieurs robots écartent d’emblée le domaine comme source fiable.

Comment corriger

Installez un certificat TLS (Let's Encrypt est gratuit), redirigez tout le trafic HTTP vers HTTPS avec une 301 et activez HSTS.

Moyen

Pas de sitemap.xml

http://harborcyclery.example/sitemap.xml ne répond pas et robots.txt n’en déclare aucun.

Ce que ça vous coûte

Sans sitemap, un robot ne trouve que ce qui est lié depuis la page d’accueil. Les pages profondes, justement celles qui répondent à des questions précises, ne sont jamais indexées.

Comment corriger

Générez un sitemap.xml avec chaque URL publique et sa vraie date <lastmod>, publiez-le sur http://harborcyclery.example/sitemap.xml et déclarez-le dans robots.txt avec la ligne :

Sitemap: http://harborcyclery.example/sitemap.xml

Moyen

Aucun contenu de secours sans JavaScript

La page dépend de JS et n’a pas de <noscript> avec le contenu essentiel.

Ce que ça vous coûte

Le temps de corriger le rendu côté serveur, un vrai <noscript> donne au moins à l’IA le texte principal au lieu de rien.

Comment corriger

Comme rustine temporaire, placez le titre, les deux ou trois paragraphes clés et les liens principaux dans <noscript>. La vraie correction reste de servir du HTML rendu.

Moyen

Le titre n’est pas optimisé

Le <title> fait 14 caractères : « Harbor Cyclery ».

Ce que ça vous coûte

Le titre est le premier signal qu’un modèle lit pour savoir de quoi parle la page et si elle répond à la question de l’utilisateur.

Comment corriger

Rédigez un titre de 50 à 60 caractères sur le modèle « Ce que vous proposez | Marque », avec les mots que votre client taperait en interrogeant une IA.

Ce que nous avons trouvé sur votre site
Harbor Cyclery

Moyen

Meta description manquante

Le HTML n’a pas de <meta name="description">.

Ce que ça vous coûte

Beaucoup de systèmes d’IA utilisent la description comme résumé de référence de la page, avant même de lire le corps du texte.

Comment corriger

Ajoutez une description de 140 à 160 caractères qui dit en une phrase ce que vous faites, pour qui et où :

<meta name="description" content="…">

Moyen

La page n’utilise pas de HTML sémantique

Il n’y a ni <main>, ni <article>, ni <nav>, ni <header> : tout est en <div>.

Ce que ça vous coûte

Les balises sémantiques indiquent à l’extracteur quelle partie est du contenu et laquelle est un menu ou un pied de page. Sans elles, votre texte se mélange à la navigation et le modèle vous cite moins bien.

Comment corriger

Enveloppez le contenu principal dans <main>, chaque bloc autonome dans <article>, le menu dans <nav> et le pied de page dans <footer>. Il s’agit de remplacer des div par des balises qui ont un sens, sans toucher aux styles.

Moyen

Aucun lien dans le HTML servi

Le document ne contient aucun <a href>.

Ce que ça vous coûte

Si la navigation est générée en JavaScript, un robot d’IA ne peut pas trouver le reste de votre site : il n’indexe que cette page isolée.

Comment corriger

Servez le menu sous forme de vrais liens <a href> dans le HTML, pas de boutons avec onClick.

Moyen

L’IA ne sait pas qui vous êtes

Il n’y a aucun schéma de type Organization, LocalBusiness ou Person.

Ce que ça vous coûte

Les IA recommandent des entités, pas des URL isolées. Si vous ne déclarez pas votre nom, votre champ d’activité et vos coordonnées, elles ne vous associent ni à votre secteur ni à votre ville.

Comment corriger

Ajoutez un bloc Organization (ou LocalBusiness si vous recevez vos clients à une adresse physique) avec name, url, logo, description, sameAs avec vos profils sur les réseaux sociaux et, le cas échéant, address et areaServed.

Moyen

Vos sous-titres ne répondent pas aux questions que les gens posent

La page n’a aucun sous-titre H2/H3.

Ce que ça vous coûte

Les IA cherchent le passage qui répond littéralement à la question de l’utilisateur. Un H2 « Nos services » ne correspond à rien ; « Combien coûte la rénovation d’une salle de bains à Lyon ? » correspond à une vraie question.

Comment corriger

Réécrivez au moins 3 sous-titres sous la forme exacte de la question que poserait un client, et répondez dans le premier paragraphe qui suit, en 2 ou 3 phrases. Exemple : « ## Combien de temps dure la rénovation d’une salle de bains ? » suivi de « Deux à trois semaines pour une salle de bains standard de 5 m²… ».

Moyen

Pas de réponse directe dans les premières lignes

La page commence sans paragraphe qui résume son sujet.

Ce que ça vous coûte

Un modèle cite en général les 40 à 60 premiers mots qui répondent à la requête. Si vous ouvrez sur du remplissage marketing, il n’a rien à extraire.

Comment corriger

Ouvrez la page avec un paragraphe de 40 à 70 mots qui répond littéralement : ce que c’est, pour qui, combien ça coûte ou combien de temps ça prend. Gardez les effets de style pour plus tard.

Moyen

Pas de bloc de questions fréquentes

Aucune section de questions fréquentes détectée.

Ce que ça vous coûte

Une FAQ balisée est le format question-réponse que les moteurs IA consomment directement : chaque paire est une réponse prête à servir, avec votre marque à côté.

Comment corriger

Ajoutez 5 à 8 vraies questions de clients avec leurs réponses (2 à 4 phrases chacune) et balisez-les ainsi :

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Combien coûte le service ?",
    "acceptedAnswer": {"@type": "Answer", "text": "À partir de 300 € pour un projet standard…"}
  }]
}
</script>

Partez des questions que vous recevez déjà par e-mail ou sur WhatsApp : ce sont celles que les gens tapent dans une IA.

Mineur

Pas de fichier llms.txt

http://harborcyclery.example/llms.txt n’existe pas.

Ce que ça vous coûte

llms.txt est un standard émergent (tous les moteurs ne l’utilisent pas encore) pour indiquer à un modèle quelles pages comptent et dans quel ordre les lire. Cela prend dix minutes et vous place en bonne position pour le jour où il se généralisera.

Comment corriger

Créez http://harborcyclery.example/llms.txt en Markdown :

# harborcyclery.example

> Une phrase qui décrit ce que fait votre entreprise et pour qui.

## Pages principales
- [Services](http://harborcyclery.example/services): ce que vous proposez, précisément.
- [Tarifs](http://harborcyclery.example/pricing): prix et formules.
- [Contact](http://harborcyclery.example/contact): comment faire appel à vous.

Mineur

Métadonnées Open Graph manquantes

Il manque : og:title, og:description, og:image.

Ce que ça vous coûte

Plusieurs assistants utilisent Open Graph comme résumé rapide quand ils affichent votre lien dans une réponse.

Comment corriger

Ajoutez dans le <head> :

<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://harborcyclery.example/cover.jpg">
<meta property="og:url" content="http://harborcyclery.example/">
<meta property="og:type" content="website">

Mineur

Il manque la carte d’aperçu de vos liens

Aucune balise <meta name="twitter:card"> trouvée.

Ce que ça vous coûte

Quand quelqu’un colle votre lien dans X, Slack, WhatsApp ou Discord, un lien sans carte s’affiche comme une ligne de texte gris sur laquelle personne ne clique. Avec une image, il prend dix fois plus de place et se partage beaucoup plus.

Comment corriger

Ajoutez dans le <head> :

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://harborcyclery.example/twitter-image.png">

L’image doit mesurer 1200×630 px. Sur Next.js, vous pouvez la générer depuis le code avec un fichier opengraph-image.tsx et un fichier twitter-image.tsx : ainsi, elle n’est jamais périmée.

Mineur

URL canonique manquante

La page ne déclare pas de <link rel="canonical">.

Ce que ça vous coûte

Sans URL canonique, un même contenu servi à plusieurs adresses (avec et sans www, avec des paramètres, en http et en https) compte comme autant de pages différentes, et votre autorité se répartit entre elles.

Comment corriger

Ajoutez dans le <head> : <link rel="canonical" href="http://harborcyclery.example/">

Mineur

Peu de contenu en listes ou en tableaux

La page ne compte que 0 élément de liste et 0 tableau.

Ce que ça vous coûte

Les listes et les tableaux sont le format qu’un modèle recopie le plus fidèlement, parce qu’ils arrivent déjà découpés en unités comparables (prix, étapes, caractéristiques).

Comment corriger

Transformez les étapes de votre processus et le contenu de chaque service en listes, et la comparaison de vos formules ou de vos prix en tableau. Il s’agit de remettre en forme ce que vous avez déjà écrit.

Mineur

Le contenu ne donne aucun chiffre concret

Seulement 0 chiffre avec unité trouvé sur toute la page.

Ce que ça vous coûte

Les IA préfèrent citer des affirmations vérifiables. « Nous sommes leaders du secteur » ne se cite pas ; « nous livrons en 48 heures et l’installation coûte 149 € » se cite, et entraîne votre marque avec le chiffre.

Comment corriger

Ajoutez des chiffres réels : prix de départ, délais, années d’activité, projets réalisés, pourcentage d’économies. Un chiffre par section.

Mineur

Le contenu semble daté

Il n’y a aucune date ni référence à l’année en cours.

Ce que ça vous coûte

Entre deux sources qui disent la même chose, les moteurs de recherche IA citent celle qui prouve qu’elle est récente. Une page sans repère dans le temps est présumée ancienne.

Comment corriger

Relisez et mettez à jour le contenu, affichez à l’écran la date de dernière révision et mettez à jour « dateModified » dans le JSON-LD. Si vos données changent rarement, indiquez quand même « Mis à jour en 2026 » là où c’est vrai, mais jamais si vous n’avez pas relu la page. Page analysée : /

Mineur

Le HTML est envoyé sans compression

La réponse n’a pas d’en-tête Content-Encoding.

Ce que ça vous coûte

La compression réduit le HTML de 70 à 80 %. Moins d’octets, c’est moins de temps de téléchargement par page, et davantage de pages explorées avec le même budget.

Comment corriger

Activez gzip ou brotli sur votre serveur (gzip on; dans Nginx, mod_deflate dans Apache) ou placez-vous derrière un CDN qui s’en charge.

Et vos concurrents ?

Quand quelqu’un interroge une IA sur votre secteur, votre site ne se mesure pas à un idéal : il se mesure à ceux des autres. Analysez-en deux et voyez par vous-même. Inclus dans votre rapport.

SiteNote
1bristolbikeworks.example588 mots (95%) · aucun moteur de recherche IA bloqué79/100 · B
2quaysidecycles.example231 mots (68%) · 1 moteur de recherche IA bloqué55/100 · C
3harborcyclery.examplevous0 mots (0%) · aucun moteur de recherche IA bloqué36/100 · F

Vous arrivez 3e sur 3. Face à la même question, une IA a 2 autres sites qu’elle lit mieux que le vôtre.

Emportez-le

Deux façons de corriger

Option A · vous et votre IA

Vous corrigez vous-même, sans rien payer de plus

Copiez le prompt ci-dessous et collez-le dans Claude, ChatGPT, Cursor ou Copilot. Il contient tout le diagnostic, donc l’IA n’a pas besoin de voir votre site : elle vous dit quel fichier modifier et termine par les commandes pour vérifier que ça a marché.

Option B · nous nous en chargeons

Nous corrigeons ensemble

Si vous préférez ne pas vous battre avec le SSR, les schémas et le robots.txt, envoyez-nous ce rapport et nous l’implémentons. Nous vous disons à l’avance ce que nous ferions et ce que ça coûte.

Écrivez-nous à hello@gettarsier.com

Collez ceci dans votre IA et laissez-la tout corriger

Ce prompt contient tout le diagnostic : le contexte de votre site, les problèmes classés par impact, les instructions de correction et les commandes pour vérifier que ça a marché. L’IA n’a pas besoin de voir votre site.

Lequel utiliser :Dans votre langue, il se lit plus naturellement ; en anglais, il consomme environ 25 % de tokens en moins, ce qui aide si votre IA facture à l’usage ou manque de contexte.

Prompt pour votre IA562 lignes
> Répondez en français et rédigez aussi en français les commentaires du code.

# Tâche : rendre mon site lisible par les moteurs de recherche IA

Agissez en ingénieur spécialisé en SEO technique et en GEO (optimisation pour les moteurs génératifs : ChatGPT Search, Claude, Perplexity, Google AI Overviews, Copilot).

## Contexte

- Site analysé : http://harborcyclery.example/
- Date de l’analyse : 24/09/2026
- Note actuelle de visibilité IA : 36/100 (note F)
- Parité humain/IA : un visiteur voit 160 mots et un robot d’IA en reçoit 0 (0 %).
- Titre actuel : "Harbor Cyclery"
- Données structurées présentes : aucune

## Note par domaine

- Accès des robots d’IA : 83/100
- Contenu visible pour l’IA : 15/100
- Structure et sémantique : 25/100
- Données structurées : 14/100
- Contenu qui répond aux questions : 5/100
- Technique : 71/100

## Mes concurrents

Face à la même question, une IA choisit parmi ces sites. Les chiffres viennent d’une analyse réelle, menée selon les mêmes critères :

- bristolbikeworks.example : 79/100, 588 mots lisibles
- quaysidecycles.example : 55/100, 231 mots lisibles
- harborcyclery.example (mon site) : 36/100, 0 mots lisibles

## Ce que j’attends de vous

Corrigez les problèmes listés ci-dessous **dans l’ordre où ils apparaissent** (ils sont classés selon leur effet réel sur la possibilité qu’une IA me cite).
Pour chaque problème :

1. Trouvez dans mon projet le fichier ou le template d’où il vient.
2. Appliquez la modification en l’adaptant à ma stack réelle (ne recopiez pas les exemples tels quels : servez-vous-en comme référence).
3. Expliquez-moi en une phrase ce que vous avez changé et pourquoi.
4. Dites-moi comment vérifier que ça a fonctionné.

Travaillez par étapes, pas tout d’un coup : d’abord les points bloquants. À la fin de chaque étape, résumez ce que vous avez modifié et le résultat des vérifications, puis attendez ma confirmation avant de passer à la suivante.

Je n’ai pas pu détecter la technologie du site depuis l’extérieur. Avant de modifier quoi que ce soit, vérifiez-la dans le projet (package.json, fichiers de configuration) et indiquez-la-moi ; si vous n’avez pas accès au code, demandez-la-moi et attendez ma réponse.

Attention : le HTML servi par le site est presque vide, et beaucoup de points de la liste (H1, titres, liens, HTML sémantique, balises meta) peuvent en découler. Une fois le contenu rendu côté serveur, revérifiez le HTML servi et ne corrigez que ce qui échoue encore. Si la liste contient le correctif <noscript>, ignorez-le : avec le HTML rendu, il n’est plus utile.

Si quelque chose demande une décision commerciale (prix, textes de vente, vraies coordonnées), n’inventez rien : posez-moi la question.

## Bloquants (tant qu’ils ne sont pas corrigés, le reste ne compte pas)

### 1. L’IA ne voit que 0 % de votre site

**Gravité :** Critique

**Ce qui se passe :** Une personne lit 160 mots à l’écran ; un robot d’IA en reçoit 0. La différence, c’est du contenu généré dans le navigateur.

**Pourquoi c’est important :** Quand un modèle décide qui citer, il compare le contenu qu’il a réussi à lire. S’il manque la moitié de votre page, vous vous battez avec la moitié de vos arguments.

**Ce qu’il faut faire :**

Passez le contenu principal en rendu côté serveur : textes, prix, fiches produit, FAQ et liens de navigation. Ne laissez côté client que ce qui est interactif (paniers, filtres, cartes).

### 2. Seulement 0 mot arrive jusqu’à l’IA

**Gravité :** Critique

**Ce qui se passe :** Le HTML renvoyé par le serveur contient 0 mot de vrai texte, contre les 160 qu’une personne voit à l’écran.

**Pourquoi c’est important :** Les modèles ont besoin de texte pour en extraire une réponse et vous citer. Avec moins de 300 mots, ils n’ont pas grand-chose à se mettre sous la dent.

**Ce qu’il faut faire :**

Rendez le contenu côté serveur (SSR/SSG) ou pré-rendez le HTML : l’IA doit recevoir le texte déjà écrit dans la réponse, pas un conteneur vide.

### 3. Une partie du contenu n’arrive jamais à l’IA

**Gravité :** Critique

**Ce qui se passe :** Ces textes s’affichent à l’écran mais ne figurent pas dans le HTML que reçoit un robot :

• Bike repair in Portland
• Full service in 24 hours.
• We collect your bike from home and bring it back ready to ride.
• Gear and brake adjustment, wheel truing, lubrication and a bolt check.
• New 11 or 12-speed chain, with a check of cassette wear.
• Bleed on both brakes, new pads and lever adjustment.
• We assemble it and set it up for your size.
• Over 3,000 bikes serviced since 2016.

**Pourquoi c’est important :** GPTBot, ClaudeBot et PerplexityBot lisent le HTML tel qu’il arrive. Ils n’attendent pas que votre JavaScript s’exécute. Tout ce qui précède leur est littéralement invisible.

**Ce qu’il faut faire :**

Servez ce contenu depuis le serveur. Selon votre stack :
• Next.js : utilisez des Server Components ou getStaticProps/generateStaticParams au lieu de useEffect + fetch.
• Nuxt : ssr: true et useAsyncData au lieu de onMounted.
• SPA React/Vue classique : ajoutez un pré-rendu (vite-plugin-prerender, react-snap) ou passez au SSR.
• CMS avec widgets JS : remplacez le widget par du HTML statique ou mettez le texte dans le contenu lui-même.
Vérifiez le résultat avec : curl -s http://harborcyclery.example/ | grep -i "un bout de votre texte"

<details><summary>Extrait détecté sur le site</summary>

```
Bike repair in Portland
---
Full service in 24 hours.
---
We collect your bike from home and bring it back ready to ride.
---
Gear and brake adjustment, wheel truing, lubrication and a bolt check.
---
New 11 or 12-speed chain, with a check of cassette wear.
```

</details>

## Importants

### 1. Aucun titre H1

**Gravité :** Élevée

**Ce qui se passe :** Le HTML brut ne contient aucun <h1>.

**Pourquoi c’est important :** Le H1 indique au modèle le sujet principal. Sans lui (ou avec plusieurs), la page perd son fil et le modèle ne sait pas ce qu’il est en train de résumer.

**Ce qu’il faut faire :**

Ajoutez un seul <h1> avec le sujet principal de la page, formulé comme le dirait un client.

### 2. La page n’a aucun titre de section

**Gravité :** Élevée

**Ce qui se passe :** Aucune balise H1 à H6 dans le HTML servi.

**Pourquoi c’est important :** Les titres sont les points de coupe qu’un modèle utilise pour découper la page en fragments citables. Sans eux, votre contenu forme un bloc compact, cité en entier ou pas du tout.

**Ce qu’il faut faire :**

Structurez le contenu avec un H1 et plusieurs H2/H3, chacun formulé comme la question à laquelle répond la section.

### 3. Vous n’avez aucune donnée structurée

**Gravité :** Élevée

**Ce qui se passe :** Le HTML ne contient aucun <script type="application/ld+json"> avec schema.org.

**Pourquoi c’est important :** Le JSON-LD est la carte d’identité qu’un modèle lit sans ambiguïté : nom, services, prix, horaires, avis. Sans lui, l’IA doit deviner à partir du texte, se trompe plus souvent, ou vous ignore et cite celui qui lui a mâché le travail.

**Ce qu’il faut faire :**

Ajoutez un bloc comme celui-ci dans le <head>, en adaptant les valeurs à votre activité :

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "VOTRE MARQUE",
  "url": "http://harborcyclery.example",
  "logo": "http://harborcyclery.example/logo.png",
  "description": "Ce que vous faites, pour qui et où, en une phrase.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hello@harborcyclery.example",
    "availableLanguage": ["en"]
  }
}
</script>

### 4. Le site n’utilise pas HTTPS

**Gravité :** Élevée

**Ce qui se passe :** http://harborcyclery.example/ est servi sans chiffrement.

**Pourquoi c’est important :** Sans HTTPS, vous perdez des positions dans les moteurs de recherche classiques, et plusieurs robots écartent d’emblée le domaine comme source fiable.

**Ce qu’il faut faire :**

Installez un certificat TLS (Let's Encrypt est gratuit), redirigez tout le trafic HTTP vers HTTPS avec une 301 et activez HSTS.

## Améliorations complémentaires

### 1. Pas de sitemap.xml

**Gravité :** Moyenne

**Ce qui se passe :** http://harborcyclery.example/sitemap.xml ne répond pas et robots.txt n’en déclare aucun.

**Pourquoi c’est important :** Sans sitemap, un robot ne trouve que ce qui est lié depuis la page d’accueil. Les pages profondes, justement celles qui répondent à des questions précises, ne sont jamais indexées.

**Ce qu’il faut faire :**

Générez un sitemap.xml avec chaque URL publique et sa vraie date <lastmod>, publiez-le sur http://harborcyclery.example/sitemap.xml et déclarez-le dans robots.txt avec la ligne :
Sitemap: http://harborcyclery.example/sitemap.xml

### 2. Aucun contenu de secours sans JavaScript

**Gravité :** Moyenne

**Ce qui se passe :** La page dépend de JS et n’a pas de <noscript> avec le contenu essentiel.

**Pourquoi c’est important :** Le temps de corriger le rendu côté serveur, un vrai <noscript> donne au moins à l’IA le texte principal au lieu de rien.

**Ce qu’il faut faire :**

Comme rustine temporaire, placez le titre, les deux ou trois paragraphes clés et les liens principaux dans <noscript>. La vraie correction reste de servir du HTML rendu.

### 3. Le titre n’est pas optimisé

**Gravité :** Moyenne

**Ce qui se passe :** Le <title> fait 14 caractères : « Harbor Cyclery ».

**Pourquoi c’est important :** Le titre est le premier signal qu’un modèle lit pour savoir de quoi parle la page et si elle répond à la question de l’utilisateur.

**Ce qu’il faut faire :**

Rédigez un titre de 50 à 60 caractères sur le modèle « Ce que vous proposez | Marque », avec les mots que votre client taperait en interrogeant une IA.

<details><summary>Extrait détecté sur le site</summary>

```
Harbor Cyclery
```

</details>

### 4. Meta description manquante

**Gravité :** Moyenne

**Ce qui se passe :** Le HTML n’a pas de <meta name="description">.

**Pourquoi c’est important :** Beaucoup de systèmes d’IA utilisent la description comme résumé de référence de la page, avant même de lire le corps du texte.

**Ce qu’il faut faire :**

Ajoutez une description de 140 à 160 caractères qui dit en une phrase ce que vous faites, pour qui et où :
<meta name="description" content="…">

### 5. La page n’utilise pas de HTML sémantique

**Gravité :** Moyenne

**Ce qui se passe :** Il n’y a ni <main>, ni <article>, ni <nav>, ni <header> : tout est en <div>.

**Pourquoi c’est important :** Les balises sémantiques indiquent à l’extracteur quelle partie est du contenu et laquelle est un menu ou un pied de page. Sans elles, votre texte se mélange à la navigation et le modèle vous cite moins bien.

**Ce qu’il faut faire :**

Enveloppez le contenu principal dans <main>, chaque bloc autonome dans <article>, le menu dans <nav> et le pied de page dans <footer>. Il s’agit de remplacer des div par des balises qui ont un sens, sans toucher aux styles.

### 6. Aucun lien dans le HTML servi

**Gravité :** Moyenne

**Ce qui se passe :** Le document ne contient aucun <a href>.

**Pourquoi c’est important :** Si la navigation est générée en JavaScript, un robot d’IA ne peut pas trouver le reste de votre site : il n’indexe que cette page isolée.

**Ce qu’il faut faire :**

Servez le menu sous forme de vrais liens <a href> dans le HTML, pas de boutons avec onClick.

### 7. L’IA ne sait pas qui vous êtes

**Gravité :** Moyenne

**Ce qui se passe :** Il n’y a aucun schéma de type Organization, LocalBusiness ou Person.

**Pourquoi c’est important :** Les IA recommandent des entités, pas des URL isolées. Si vous ne déclarez pas votre nom, votre champ d’activité et vos coordonnées, elles ne vous associent ni à votre secteur ni à votre ville.

**Ce qu’il faut faire :**

Ajoutez un bloc Organization (ou LocalBusiness si vous recevez vos clients à une adresse physique) avec name, url, logo, description, sameAs avec vos profils sur les réseaux sociaux et, le cas échéant, address et areaServed.

### 8. Vos sous-titres ne répondent pas aux questions que les gens posent

**Gravité :** Moyenne

**Ce qui se passe :** La page n’a aucun sous-titre H2/H3.

**Pourquoi c’est important :** Les IA cherchent le passage qui répond littéralement à la question de l’utilisateur. Un H2 « Nos services » ne correspond à rien ; « Combien coûte la rénovation d’une salle de bains à Lyon ? » correspond à une vraie question.

**Ce qu’il faut faire :**

Réécrivez au moins 3 sous-titres sous la forme exacte de la question que poserait un client, et répondez dans le premier paragraphe qui suit, en 2 ou 3 phrases. Exemple : « ## Combien de temps dure la rénovation d’une salle de bains ? » suivi de « Deux à trois semaines pour une salle de bains standard de 5 m²… ».

### 9. Pas de réponse directe dans les premières lignes

**Gravité :** Moyenne

**Ce qui se passe :** La page commence sans paragraphe qui résume son sujet.

**Pourquoi c’est important :** Un modèle cite en général les 40 à 60 premiers mots qui répondent à la requête. Si vous ouvrez sur du remplissage marketing, il n’a rien à extraire.

**Ce qu’il faut faire :**

Ouvrez la page avec un paragraphe de 40 à 70 mots qui répond littéralement : ce que c’est, pour qui, combien ça coûte ou combien de temps ça prend. Gardez les effets de style pour plus tard.

### 10. Pas de bloc de questions fréquentes

**Gravité :** Moyenne

**Ce qui se passe :** Aucune section de questions fréquentes détectée.

**Pourquoi c’est important :** Une FAQ balisée est le format question-réponse que les moteurs IA consomment directement : chaque paire est une réponse prête à servir, avec votre marque à côté.

**Ce qu’il faut faire :**

Ajoutez 5 à 8 vraies questions de clients avec leurs réponses (2 à 4 phrases chacune) et balisez-les ainsi :

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Combien coûte le service ?",
    "acceptedAnswer": {"@type": "Answer", "text": "À partir de 300 € pour un projet standard…"}
  }]
}
</script>

Partez des questions que vous recevez déjà par e-mail ou sur WhatsApp : ce sont celles que les gens tapent dans une IA.

### 11. Pas de fichier llms.txt

**Gravité :** Faible

**Ce qui se passe :** http://harborcyclery.example/llms.txt n’existe pas.

**Pourquoi c’est important :** llms.txt est un standard émergent (tous les moteurs ne l’utilisent pas encore) pour indiquer à un modèle quelles pages comptent et dans quel ordre les lire. Cela prend dix minutes et vous place en bonne position pour le jour où il se généralisera.

**Ce qu’il faut faire :**

Créez http://harborcyclery.example/llms.txt en Markdown :

# harborcyclery.example

> Une phrase qui décrit ce que fait votre entreprise et pour qui.

## Pages principales
- [Services](http://harborcyclery.example/services): ce que vous proposez, précisément.
- [Tarifs](http://harborcyclery.example/pricing): prix et formules.
- [Contact](http://harborcyclery.example/contact): comment faire appel à vous.

### 12. Métadonnées Open Graph manquantes

**Gravité :** Faible

**Ce qui se passe :** Il manque : og:title, og:description, og:image.

**Pourquoi c’est important :** Plusieurs assistants utilisent Open Graph comme résumé rapide quand ils affichent votre lien dans une réponse.

**Ce qu’il faut faire :**

Ajoutez dans le <head> :
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://harborcyclery.example/cover.jpg">
<meta property="og:url" content="http://harborcyclery.example/">
<meta property="og:type" content="website">

### 13. Il manque la carte d’aperçu de vos liens

**Gravité :** Faible

**Ce qui se passe :** Aucune balise <meta name="twitter:card"> trouvée.

**Pourquoi c’est important :** Quand quelqu’un colle votre lien dans X, Slack, WhatsApp ou Discord, un lien sans carte s’affiche comme une ligne de texte gris sur laquelle personne ne clique. Avec une image, il prend dix fois plus de place et se partage beaucoup plus.

**Ce qu’il faut faire :**

Ajoutez dans le <head> :
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://harborcyclery.example/twitter-image.png">

L’image doit mesurer 1200×630 px. Sur Next.js, vous pouvez la générer depuis le code avec un fichier opengraph-image.tsx et un fichier twitter-image.tsx : ainsi, elle n’est jamais périmée.

### 14. URL canonique manquante

**Gravité :** Faible

**Ce qui se passe :** La page ne déclare pas de <link rel="canonical">.

**Pourquoi c’est important :** Sans URL canonique, un même contenu servi à plusieurs adresses (avec et sans www, avec des paramètres, en http et en https) compte comme autant de pages différentes, et votre autorité se répartit entre elles.

**Ce qu’il faut faire :**

Ajoutez dans le <head> : <link rel="canonical" href="http://harborcyclery.example/">

### 15. Peu de contenu en listes ou en tableaux

**Gravité :** Faible

**Ce qui se passe :** La page ne compte que 0 élément de liste et 0 tableau.

**Pourquoi c’est important :** Les listes et les tableaux sont le format qu’un modèle recopie le plus fidèlement, parce qu’ils arrivent déjà découpés en unités comparables (prix, étapes, caractéristiques).

**Ce qu’il faut faire :**

Transformez les étapes de votre processus et le contenu de chaque service en listes, et la comparaison de vos formules ou de vos prix en tableau. Il s’agit de remettre en forme ce que vous avez déjà écrit.

### 16. Le contenu ne donne aucun chiffre concret

**Gravité :** Faible

**Ce qui se passe :** Seulement 0 chiffre avec unité trouvé sur toute la page.

**Pourquoi c’est important :** Les IA préfèrent citer des affirmations vérifiables. « Nous sommes leaders du secteur » ne se cite pas ; « nous livrons en 48 heures et l’installation coûte 149 € » se cite, et entraîne votre marque avec le chiffre.

**Ce qu’il faut faire :**

Ajoutez des chiffres réels : prix de départ, délais, années d’activité, projets réalisés, pourcentage d’économies. Un chiffre par section.

### 17. Le contenu semble daté

**Gravité :** Faible

**Ce qui se passe :** Il n’y a aucune date ni référence à l’année en cours.

**Pourquoi c’est important :** Entre deux sources qui disent la même chose, les moteurs de recherche IA citent celle qui prouve qu’elle est récente. Une page sans repère dans le temps est présumée ancienne.

**Ce qu’il faut faire :**

Relisez et mettez à jour le contenu, affichez à l’écran la date de dernière révision et mettez à jour « dateModified » dans le JSON-LD. Si vos données changent rarement, indiquez quand même « Mis à jour en 2026 » là où c’est vrai, mais jamais si vous n’avez pas relu la page. Page analysée : /

### 18. Le HTML est envoyé sans compression

**Gravité :** Faible

**Ce qui se passe :** La réponse n’a pas d’en-tête Content-Encoding.

**Pourquoi c’est important :** La compression réduit le HTML de 70 à 80 %. Moins d’octets, c’est moins de temps de téléchargement par page, et davantage de pages explorées avec le même budget.

**Ce qu’il faut faire :**

Activez gzip ou brotli sur votre serveur (gzip on; dans Nginx, mod_deflate dans Apache) ou placez-vous derrière un CDN qui s’en charge.

## Contenu que l’IA ne peut pas lire aujourd’hui

Ces textes s’affichent dans le navigateur mais ne figurent PAS dans le HTML renvoyé par le serveur. Une fois votre travail terminé, ils doivent tous apparaître dans le HTML initial :

- "Bike repair in Portland"
- "Full service in 24 hours."
- "We collect your bike from home and bring it back ready to ride."
- "Gear and brake adjustment, wheel truing, lubrication and a bolt check."
- "New 11 or 12-speed chain, with a check of cassette wear."
- "Bleed on both brakes, new pads and lever adjustment."
- "We assemble it and set it up for your size."
- "Over 3,000 bikes serviced since 2016."
- "A fixed quote before we touch anything."
- "Six-month guarantee on every repair."

## Comment créer l’image affichée quand le lien est partagé

Votre lien a besoin d'une image de 1200×630 px pour Open Graph (Facebook, LinkedIn, WhatsApp, Slack) et d'une autre pour Twitter Card (X). Ce peut être le même fichier.

**Si le projet utilise Next.js (App Router), générez-les depuis le code**, pour qu'elles ne deviennent jamais obsolètes. Créez `app/opengraph-image.tsx` :

```tsx
import { ImageResponse } from "next/og";

export const alt = "Harbor Cyclery";
export const size = { width: 1200, height: 630 };
export const contentType = "image/png";

export default function Image() {
  return new ImageResponse(
    (
      <div
        style={{
          width: "100%",
          height: "100%",
          display: "flex",
          flexDirection: "column",
          justifyContent: "center",
          padding: "80px",
          // Un dégradé en diagonale donne de la profondeur sans avoir besoin d'images.
          background: "linear-gradient(135deg, #0b1020 0%, #1b1038 60%, #2a1458 100%)",
          color: "#ffffff",
          fontFamily: "sans-serif",
        }}
      >
        <div style={{ fontSize: 26, opacity: 0.75 }}>harborcyclery.example</div>
        <div style={{ marginTop: 32, fontSize: 64, fontWeight: 700, lineHeight: 1.08, letterSpacing: -2 }}>
          VOTRE MESSAGE PRINCIPAL, LE MÊME QUE LE H1
        </div>
        <div style={{ marginTop: 34, fontSize: 28, color: "#c4b5fd", maxWidth: 940 }}>
          Une ligne complémentaire : ce que vous proposez et pour qui.
        </div>
      </div>
    ),
    size,
  );
}
```

Créez ensuite `app/twitter-image.tsx`, qui réexporte la même chose, pour que les deux cartes soient identiques :

```tsx
export { default, alt, size, contentType } from "../opengraph-image";
```

Next génère alors tout seul les balises `og:image` et `twitter:image`. Définissez `metadataBase: new URL("https://VOTRE-DOMAINE")` dans le layout racine pour que les URL soient absolues : la plupart des robots ignorent les URL relatives.

**Si le projet n'utilise pas Next.js**, exportez un PNG de 1200×630 de moins de 1 Mo, placez-le dans `/og-image.png` et déclarez les balises à la main :

```html
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="https://VOTRE-DOMAINE/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://VOTRE-DOMAINE/">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="https://VOTRE-DOMAINE/og-image.png">
```

Les règles qui font la différence :

- Exactement 1200×630 px. Les autres formats sont recadrés et le texte se perd.
- Lisible en miniature : le message à 60 px ou plus, trois lignes au maximum.
- L'image reprend la promesse de la page. Ce n'est pas un logo posé sur un fond.
- Des URL absolues, avec le protocole. Un chemin relatif échoue sans prévenir.
- Moins de 1 Mo, en PNG ou en JPEG. Tous les robots ne lisent pas encore le WebP.
- Vérifiez-la sur https://cards-dev.twitter.com/validator et en collant le lien dans une conversation Slack ou WhatsApp avec vous-même.

## Comment vérifier que c’est corrigé

Quand vous aurez terminé, lancez ces vérifications et montrez-moi le résultat :

```bash
# 1. Voici LITTÉRALEMENT ce que voit un robot d’IA (sans exécuter JavaScript).
curl -sL "http://harborcyclery.example/" | sed 's/<script[^>]*>.*<\/script>//g; s/<[^>]*>//g' | tr -s ' \n' | head -60

# 2. Le serveur ne doit pas bloquer les robots d’IA (chacun doit renvoyer 200).
curl -sL -o /dev/null -w "OAI-SearchBot: %{http_code}\n" -A "OAI-SearchBot" "http://harborcyclery.example/"
curl -sL -o /dev/null -w "Claude-SearchBot: %{http_code}\n" -A "Claude-SearchBot" "http://harborcyclery.example/"
curl -sL -o /dev/null -w "PerplexityBot: %{http_code}\n" -A "PerplexityBot" "http://harborcyclery.example/"

# 3. robots.txt ne doit contenir aucun Disallow qui concerne ces agents.
curl -s "http://harborcyclery.example/robots.txt"
```

L’objectif : que le texte de l’étape 1 contienne tout le contenu important de la page. S’il n’y figure pas, pour l’IA, il n’existe pas.

---

Rapport généré par Tarsier · http://harborcyclery.example/ · 36/100

Comment vérifier que ça a fonctionné

Corriger, c’est la moitié du travail. Voici les étapes pour savoir que chaque correction est bien en place, dans l’ordre où il vaut mieux les faire, et seulement celles que votre analyse demande. Chacune se termine par une ligne qui décrit le résultat attendu : quand vous le constatez, cochez-la.

  1. Ajoutez votre site à Google Search Console et à Bing Webmaster Tools

    Ce sont les deux fenêtres qui montrent votre site tel que le voient les moteurs de recherche. Presque toutes les vérifications ci-dessous passent par l’une d’elles, et elles sont gratuites.

    1. Allez sur search.google.com/search-console et cliquez sur « Ajouter une propriété ».
    2. Choisissez « Domaine » (et non « Préfixe de l’URL ») : la propriété couvre ainsi le site avec et sans www, en http comme en https.
    3. Google vous donne un enregistrement TXT. Ajoutez-le à la zone DNS de votre domaine, dans l’interface du service où vous l’avez acheté, puis cliquez sur « Valider ». Cela peut prendre quelques minutes.
    4. Ensuite, sur bing.com/webmasters, choisissez d’importer votre site depuis Google Search Console. La validation se fait toute seule et vous évite de tout refaire. Bing est l’index sur lequel s’appuie Copilot.

    C’est bon quand Les deux consoles affichent votre domaine comme validé.

  2. Votre contenu est lisible sans exécuter JavaScript

    C’est le problème le plus grave de votre analyse : aujourd’hui, ce qu’une personne lit sur votre site ne se trouve pas dans le HTML que reçoit le robot.

    1. Cette phrase vient de votre site et n’arrive pas jusqu’à l’IA aujourd’hui : « Bike repair in Portland ». La commande ci-dessous la cherche dans le HTML servi, sans navigateur.
    2. Dans Search Console, ouvrez « Inspection de l’URL », collez votre adresse et cliquez sur « Tester l’URL en ligne ».
    3. Une fois le test terminé, « Afficher la page testée » → onglet « HTML ». Cherchez avec Ctrl+F une phrase de votre page : elle doit y être.
    Dans le terminal
    curl -s http://harborcyclery.example/ | grep -c -F "Bike repair in Portland"

    C’est bon quand La commande renvoie 1 ou plus. Si elle renvoie 0, la phrase n’arrive toujours pas.

  3. Il y a un sitemap et les moteurs de recherche l’ont lu

    Votre site n’a pas de sitemap.xml. Sans lui, les moteurs de recherche trouvent vos pages quand ils tombent dessus, pas quand vous les publiez.

    1. Votre plateforme sait presque certainement le faire : WordPress le génère tout seul à /wp-sitemap.xml, Shopify et Wix à /sitemap.xml.
    2. Ajoutez une ligne à la fin de votre robots.txt : « Sitemap: http://harborcyclery.example/sitemap.xml » (ou l’adresse que vous donne votre plateforme).
    3. Dans Search Console, « Sitemaps » → collez l’adresse → « Envoyer ». Dans Bing Webmaster Tools, même chose dans « Sitemaps ».
    Dans le terminal
    curl -s -o /dev/null -w "%{http_code}\n" http://harborcyclery.example/sitemap.xml

    C’est bon quand La commande renvoie 200, et dans Search Console le sitemap affiche l’état « Opération effectuée » et un nombre de pages découvertes.

  4. llms.txt répond avec votre contenu

    Vous n’avez pas de llms.txt : le résumé de votre site conçu pour qu’une IA le comprenne sans avoir à le parcourir en entier.

    1. Mettez-le à la racine, à côté de robots.txt. Il doit être servi comme du texte, pas comme une page de votre site.
    Dans le terminal
    curl -s http://harborcyclery.example/llms.txt | head -5

    C’est bon quand La première ligne commence par « # », une espace, puis le nom de votre entreprise. Si vous voyez du HTML ou votre page d’erreur, le fichier n’est pas servi.

  5. Vos données structurées se lisent sans erreur

    Votre site ne déclare aucune donnée structurée : l’IA doit deviner qui vous êtes, ce que vous vendez et où.

    1. Ouvrez search.google.com/test/rich-results et collez http://harborcyclery.example/.
    2. Pour voir tous les types, et pas seulement ceux que Google récompense par des résultats enrichis, passez aussi l’adresse dans validator.schema.org.

    C’est bon quand Les deux outils détectent votre Organization ou LocalBusiness avec nom, adresse et coordonnées, sans erreur. Les avertissements jaunes ne bloquent rien.

  6. Le vrai test

    Tout ce qui précède vérifie les pièces. Ceci vérifie le résultat.

    1. Analysez à nouveau votre site sur https://gettarsier.com/fr. La deuxième analyse est gratuite pendant 30 jours après l’achat, depuis le même navigateur.
    2. Dans deux ou trois semaines, le temps que les robots repassent, posez à ChatGPT avec la recherche, à Perplexity et à Claude la question à laquelle répond votre page, en précisant votre ville ou votre secteur. Regardez les sources qu’ils citent.

    C’est bon quand La note monte, les deux colonnes du comparatif disent la même chose et, avec le temps, votre site apparaît parmi les sources.

Toutes les vérifications

VérificationNoteRésultat
La page répond correctement100HTTP 200 en 7 ms.
robots.txt autorise les moteurs de recherche IA100Aucun robot d’IA qui sert des réponses n’est bloqué dans robots.txt.
Le serveur ne bloque pas les bots d’IA100Le serveur répond à un bot d’IA exactement comme à un navigateur.
Aucune balise qui empêche l’indexation100Aucune restriction d’indexation.
Fichier llms.txt0Vous n’avez pas de /llms.txt.
Sitemap disponible0Aucun sitemap.xml trouvé, et aucun déclaré dans robots.txt.
Ce que voit l’IA ≈ ce que voit une personne0L’IA reçoit 0 % du contenu que voit une personne (0 mot sur 160).
Assez de texte dans le HTML00 mot lisible sans exécuter JavaScript.
Rien d’important ne dépend de JavaScript018 blocs de texte n’existent qu’une fois JavaScript exécuté.
Le HTML n’est pas une coquille vide100Le HTML arrive avec le contenu déjà écrit.
Solution de secours sans JavaScript0Rien n’est prévu pour qui n’exécute pas JavaScript.
Titre de la page40« Harbor Cyclery » (14 caractères).
Description de la page0Il n’y a pas de meta description.
Un seul H1, et descriptif0Aucun H1 dans le HTML servi.
Hiérarchie des titres0Aucun titre.
HTML sémantique0La page est entièrement construite en <div>.
Texte alternatif des images100La page n’a aucune image.
Liens avec un texte descriptif50Il n’y a aucun lien dans le HTML.
Données structurées (JSON-LD)0Il n’y a aucune donnée structurée schema.org sur la page.
Identité déclarée (qui vous êtes)0Vous ne déclarez pas qui est derrière le site.
Métadonnées Open Graph00 balise Open Graph principale sur 3.
Carte d’aperçu quand le lien est partagé0Ni carte ni image : le lien se partage en texte brut.
URL canonique40Il n’y a pas de link rel=canonical.
Auteur et date de mise à jour60Aucun auteur déclaré ; aucune date de mise à jour.
Des sections qui répondent à de vraies questions0Aucun des 0 sous-titres n’est formulé comme une question.
Un résumé direct dès le début0Il n’y a pas de paragraphe d’introduction avec du contenu.
Listes et tableaux00 élément de liste et 0 tableau.
Des chiffres concrets et vérifiables00 donnée chiffrée (prix, délais, pourcentages) dans le texte.
Bloc de questions fréquentes0Aucune section de questions fréquentes.
Contenu tenu à jour50Aucune référence temporelle trouvée dans le contenu.
Vitesse de réponse du serveur100Le HTML met 7 ms à arriver en entier.
Connexion sécurisée (HTTPS)0Le site est servi en HTTP non chiffré.
Compression du HTML40Le HTML est servi sans compression.
Poids du document HTML1004 Ko de HTML.
Adapté au mobile100Déclare un viewport adaptatif.
Langue déclarée100Langue déclarée : en.

Vous préférez que nous nous en chargions ?

Si vous ne voulez pas l’implémenter vous-même ni faire des allers-retours avec votre développeur, envoyez-nous ce rapport et nous vous dirons combien coûte sa mise en place.

Résumé par gravité : 3 critiques · 4 graves · 10 moyens · 8 mineurs