ContrĂŽlez l'usage de vos contenus par l'IA avec la directive Content-Signal du robots.txt đŸ€–

Le gĂ©ant Cloudflare propose d’ajouter une directive au fichier robots.txt pour contrĂŽler ce que les IA peuvent faire de vos contenus. C’est l’une des initiatives les plus prometteuses en la matiĂšre, non seulement parce qu’elle est simple et cohĂ©rente, mais aussi parce qu’elle est promue par l’une des entreprises les plus puissantes du web aprĂšs Google.

Résumé vidéo de cet article par NotebookLM.

(Je suis conscient qu’il y a un paradoxe Ă  demander Ă  une IA de faire une vidĂ©o pour expliquer comment se protĂ©ger des IA, merci de ne pas m’en faire la rĂ©flexion đŸ˜…).

L’IA ou le passager clandestin du web

Soyons honnĂȘtes, la rĂ©volution des IA gĂ©nĂ©ratives repose en bonne partie sur le pillage de contenus. ChatGPT, Perplexity, Gemini et les autres se nourrissent de tout ce qui est accessible sur le web. Le problĂšme, c’est qu’elles ne crĂ©ditent et ne rĂ©munĂšrent en rien ceux qui les ont abreuvĂ©s sans le vouloir et, la plupart du temps, sans mĂȘme le savoir. 

Il y a une rupture du contrat implicite qui liait les acteurs du web jusqu’à prĂ©sent : les moteurs de recherche pouvaient explorer les sites qui ne l’interdisaient pas, en Ă©change, les moteurs de recherche renvoyaient des visiteurs vers ces mĂȘmes sites. Une bonne partie du modĂšle Ă©conomique du web que nous connaissons repose sur ce postulat. 

Aussi gĂ©niale qu’elles soient, les IA dĂ©truisent cet Ă©quilibre. Elles se servent et n’offrent rien en Ă©change aux Ă©diteurs. Les quelques rares citations que les LLM veulent bien faire lors de leurs rĂ©ponses sont sans commune mesure avec le savoir acquis par les IA sur le web. Les IA sont des boĂźtes noires qui ne dĂ©voilent gĂ©nĂ©ralement rien de leurs sources. 

Les solutions existantes

Depuis l’émergence de ChatGPT, les Ă©diteurs cherchent des moyens de se prĂ©munir. Les gros ont souvent les moyens de signer directement des accords avec les grands noms de l’IA. Tout le monde y trouve son compte, car les IA ont un besoin vital de donnĂ©es pour prospĂ©rer. Pour les plus petits Ă©diteurs, c’est-Ă -dire 80% du web, c’est plus compliquĂ©. 

Deux pistes ont Ă©tĂ© explorĂ©es par les Ă©diteurs :

Alors que TDMRep propose une solution complĂšte, son adoption et, surtout, son respect par les IA semblent alĂ©atoire. L’utilisation du fichier robots.txt est plus simple et mieux comprise par les IA (du moins, celles qui le respectent). 

Il y a pourtant plusieurs soucis Ă  bloquer entiĂšrement l’accĂšs aux robots IA. D’abord, il faut connaĂźtre leur user-agent. Ça Ă©volue beaucoup, il y en a des nouveaux sans arrĂȘt, certains peuvent aussi mĂ©langer les bots destinĂ©s Ă  leurs moteurs de recherche et leurs bots IA (coucou Google). Il serait dommage de se dĂ©rĂ©fĂ©rencer de Google pour se prĂ©server de Gemini ! 

Ensuite, il y a une zone floue Ă  propos des recherches par l’IA, comme les AI Overviews de Google ou les recherches effectuĂ©es en temps rĂ©el par Grok ou ChatGPT lorsque l’utilisateur a besoin de donnĂ©es prĂ©cises et actualisĂ©es. Cet usage est une source potentielle de citations par les IA et de trafic qualifiĂ©. Il peut ĂȘtre lĂ©gitime de l’autoriser tout en bloquant l’entraĂźnement d’un modĂšle sur son site. Les solutions existantes ne permettent pas de prĂ©ciser avec finesse ce que l’on veut bloquer.

La solution proposée par Cloudflare

C’est lĂ  qu’intervient Cloudflare et son idĂ©e d’ajouter une simple directive Content-Signal au robots.txt pour dĂ©finir des prĂ©fĂ©rences. À la diffĂ©rence d’initiatives comme LLMs.txt, je pense bien que cette idĂ©e peut prendre.

Tout d’abord, Cloudflare n’est pas n’importe qui. Il contrĂŽle une bonne partie du trafic du web en proposant la solution de CDN la plus populaire au monde avec prĂšs de 80% de part de marchĂ©. L’entreprise fait preuve d’une innovation constante et bĂ©nĂ©ficie d’une bonne rĂ©putation auprĂšs des Ă©diteurs. C’est aujourd’hui un maillon essentiel de l’infrastructure du web. Cloudflare se donne les moyens de populariser son idĂ©e : crĂ©ation d’un site web dĂ©diĂ©, article pĂ©dagogique. Surtout, Cloudflare propose d’automatiser l’insertion de cette directive pour les domaines qu’il gĂšre. C’est dĂ©jĂ  le cas pour 3,8 millions de sites ! S’il va sans dire que vous pouvez utiliser cette directive sans utiliser Cloudflare, la force de frappe du gĂ©ant de San Francisco devrait beaucoup aider Ă  son adoption.

Ensuite, le systĂšme est simple et efficace. Il nĂ©cessite simplement d’ajouter des commentaires en tĂȘte du fichier robots.txt (on y reviendra) puis une simple directive qui s’intĂšgre comme ceci dans votre robots.txt :

User-Agent: *
Content-Signal: ai-train=yes, search=yes, ai-input=yes
Allow: /

Vous avez dĂ©jĂ  repĂ©rĂ© la nouvelle directive, c’est celle qui commence par Content-Signal. Les autres lignes restent exactement les mĂȘmes et ont exactement la mĂȘme signification. Dans l’exemple ci-dessus, tous les robots (*) sont autorisĂ©s Ă  explorer le site (« Allow : / Â»). La directive Content-Signal s’applique Ă©galement Ă  tous les robots, mais rien n’empĂȘche de la spĂ©cifier pour un robot particulier, par exemple Googlebot :

User-Agent: googlebot
Content-Signal: ai-train=no, search=yes, ai-input=yes
Allow: /

Il est Ă©galement possible de limiter l’application des rĂšgles Ă  une partie du site. Pour cela, il faut prĂ©ciser le chemin oĂč les rĂšgles s’appliqueront. Ce chemin doit ĂȘtre insĂ©rĂ© juste avant les rĂšgles du Content-Signal. Dans l’exemple ci-dessous, les prĂ©fĂ©rences en matiĂšre de Content-Signal seront valables pour tout ce qui se trouve dans le rĂ©pertoire /blog/ sur le site :

User-Agent: *
Content-Signal: /blog/ ai-train=no, search=yes, ai-input=yes
Allow: /blog/

Venons-en maintenant au contenu de ce Content-Signal. Il indique les prĂ©fĂ©rences pour trois types d’opĂ©ration sĂ©parĂ©s par des virgules :

  • ai-train dĂ©finit une prĂ©fĂ©rence concernant l’entraĂźnement des modĂšles d’IA. 
    • ai-train=yes indique que l’entraĂźnement est autorisĂ© sur les contenus du site. 
    • ai-train=no indique au contraire qu’il est interdit d’utiliser les contenus concernĂ©s pour entraĂźner une IA.
  • ai-input dĂ©finit une prĂ©fĂ©rence concernant l’utilisation par les IA de vos contenus pour enrichir des rĂ©ponses (AI Overviews, recherche en temps rĂ©el, etc.). 
    • ai-input=yes autorise l’usage des contenus pour enrichir les rĂ©ponses des IA,
    • ai-input=no indique qu’il est interdit d’utiliser les contenus pour enrichir les rĂ©ponses des IA.
  • search dĂ©finit une prĂ©fĂ©rence concernant la construction d’un index de recherche comme celui de Google ou Bing sans utilisation de l’IA (AI Overviews et Ă©quivalent). En clair, il s’agit de la recherche traditionnelle. 
    • search=yes permet d’utiliser les contenus pour construire un index de recherche, 
    • search=no interdit cet usage.

Une solution d’avenir ?

Est-ce que les IA vont respecter cette directive ? À vrai dire, ça dĂ©pendra largement de son adoption par les Ă©diteurs ! C’est l’une des raisons qui me pousse Ă  en parler ici Ă  ma petite Ă©chelle. 

MalgrĂ© tout, juridiquement, le mĂ©canisme a de bons arguments pour lui. Il s’appuie, dans l’Union europĂ©enne, sur la Directive du 17 avril 2019 (2019/790) portant sur le droit d’auteur et les droits voisins. Exactement comme je vous l’expliquais dans mon article sur le protocole TDMRep. La force juridique des prĂ©fĂ©rences exprimĂ©es me paraĂźt d’ailleurs assez forte. En effet, Cloudflare prĂ©cise bien qu’il faut pour utiliser ce protocole inclure des commentaires dans le fichier robots.txt. Cloudflare propose ce modĂšle (toutes les lignes commençant par # sont des commentaires dans un fichier robots.txt) :

# As a condition of accessing this website, you agree to abide by
# the following content signals:

# (a)  If a content-signal = yes, you may collect content for the
# corresponding use.
# (b)  If a content-signal = no, you may not collect content for
# the corresponding use.
# (c)  If the website operator does not include a content signal
# for a corresponding use, the website operator neither grants nor
# restricts permission via content signal with respect to the
# corresponding use.

# The content signals and their meanings are:

# search: building a search index and providing search results
# (e.g., returning hyperlinks and short excerpts from your
# website's contents).  Search does not include providing
# AI-generated search summaries.
# ai-input: inputting content into one or more AI models (e.g.,
# retrieval augmented generation, grounding, or other real-time
# taking of content for generative AI search answers).
# ai-train: training or fine-tuning AI models.

# ANY RESTRICTIONS EXPRESSED VIA CONTENT SIGNALS ARE EXPRESS
# RESERVATIONS OF RIGHTS UNDER ARTICLE 4 OF THE EUROPEAN UNION
# DIRECTIVE 2019/790 ON COPYRIGHT AND RELATED RIGHTS IN THE
# DIGITAL SINGLE MARKET.

User-Agent: *
Content-Signal: ai-train=yes, search=yes, ai-input=yes
Allow: /

Comme vous le voyez, l’acceptation de ce mĂ©canisme est Ă©rigĂ©e en condition pour l’accĂšs au site web. C’est logiquement imparable : pour accĂ©der Ă  ce site, il faut accepter d’utiliser le mĂ©canisme Content-Signal. Comme l’usage impose de lire le fichier robots.txt avant d’explorer un site avec un robot, cette condition est forcĂ©ment rencontrĂ©e et lue.

Il a cependant une petite faille Ă  mon avis. Comme son nom l’indique, le fichier robots.txt est destinĂ© Ă  des
 robots. Les commentaires ne sont pas censĂ©s ĂȘtre lus par des humains. Toutefois, on pourrait aussi faire l’analogie avec les licences libres dont l’efficacitĂ© juridique est reconnue et repose sur un mĂ©canisme voisin. En rĂ©sumĂ© : vous n’avez pas d’autres droits que cette licence pour utiliser ce logiciel, vous en acceptez donc les termes. C’est trĂšs proche de ce qui se trouve dans ce fichier robots.txt : « si vous lisez ça, vous acceptez nos conditions sinon vous ĂȘtes libres de ne pas explorer ce site Â». 

Pour renforcer la force du message, rien n’empĂȘche d’utiliser en parallĂšle le protocole TDMRep qui peut d’ailleurs venir en complĂ©ment, en particulier pour indiquer les moyens d’obtenir une licence. 

VĂ©rifiez votre implantation avec Alyze

J’ai dĂ©cidĂ© d’inclure l’analyse de cette directive dans le testeur de robots.txt et sur l’analyseur SEO. En premier lieu parce que je trouve ce mĂ©canisme utile. Je pense important de le faire connaĂźtre et de le populariser.

Sur le testeur de robots.txt, les directives search, ai-train et ai-input sont mises en avant avec quelques explications au survol.
Sur l’analyseur de page, la prĂ©sence d’un champ Content-Signal dans le robots.txt du site est indiquĂ©e.

Je ne peux encore vous garantir que ces préférences seront respectées à 100% par les IA. Mais je peux vous garantir (à 100% cette fois !) qui si vous ne faites rien, les AI continueront à se nourrir de vos contenus sans aucune contrepartie.