<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Schema.org &#8211; NOMO IA</title>
	<atom:link href="https://www.nomo-ia.com/tag/schema-org/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.nomo-ia.com</link>
	<description>Editorial Workflow - AI Boosted</description>
	<lastBuildDate>Wed, 29 Jul 2026 17:07:46 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>

<image>
	<url>https://www.nomo-ia.com/wp-content/uploads/2026/01/cropped-marketingAssistant_app_logo-_256-75x75.webp</url>
	<title>Schema.org &#8211; NOMO IA</title>
	<link>https://www.nomo-ia.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>La couche invisible : ce que les moteurs de réponse lisent vraiment</title>
		<link>https://www.nomo-ia.com/couche-invisible-moteurs-de-reponse/</link>
		
		<dc:creator><![CDATA[herve dhelin]]></dc:creator>
		<pubDate>Thu, 30 Jul 2026 06:38:00 +0000</pubDate>
				<category><![CDATA[SEO & GEO]]></category>
		<category><![CDATA[GEO]]></category>
		<category><![CDATA[gouvernance contenu]]></category>
		<category><![CDATA[IA éditoriale]]></category>
		<category><![CDATA[Schema.org]]></category>
		<guid isPermaLink="false">https://www.nomo-ia.com/?p=305</guid>

					<description><![CDATA[Un article publié envoie un texte au lecteur et une couche que personne ne relit aux moteurs. Quand elle est produite après coup, elle décrit un article qui n'existe plus.]]></description>
										<content:encoded><![CDATA[<p><em>Vous relisez le texte. Vous ne relisez pas ce que la machine va citer. Entre les deux, un écart s&rsquo;installe, et il ne prévient jamais.</em></p>
<h2>TL;DR</h2>
<p>Un article publié envoie deux choses. Un texte, pour le lecteur. Et une couche que personne ne lit jamais à l&rsquo;œil : Schema.org, Open Graph, hreflang, canonical, <code>llms.txt</code>. C&rsquo;est cette seconde couche qui décide de la manière dont un moteur de réponse vous cite. Quand elle est produite après le texte, par un autre outil ou une autre personne, elle finit par décrire un article qui n&rsquo;existe plus. La règle qui règle le problème tient en une ligne : la couche invisible doit sortir du même geste que le texte.</p>
<h2>Que reçoit vraiment un moteur de réponse quand vous publiez un article ?</h2>
<p>Beaucoup plus que ce que vous croyez lui envoyer.</p>
<p>Nous avons mesuré ce qu&rsquo;une seule page d&rsquo;article expose en production sur notre propre site. Dix-neuf objets Schema.org répartis en trois blocs JSON-LD. Cinq paires question-réponse balisées en <code>FAQPage</code>. Trois déclarations de langue, un canonical, quinze balises meta entre l&rsquo;indexation et le partage social. Et deux fichiers d&rsquo;exposition, <code>llms.txt</code> et <code>llms-full.txt</code>, dont le second dépasse les 120 000 caractères.</p>
<p>Le lecteur, lui, voit un titre, un texte et quelques liens.</p>
<p>Aucune de ces lignes n&rsquo;est lue par un humain. Toutes sont lues par les modèles. C&rsquo;est la distinction que nous posions dans notre <a href="/seo-et-geo-comment-optimiser-ses-contenus-pour-les-moteurs-de-reponse-ia/">article sur le SEO et le GEO</a> : le SEO optimise l&rsquo;accès à la page, le GEO optimise ce que la machine en fait. L&rsquo;accès dépend du texte. L&rsquo;usage dépend de cette couche.</p>
<h2>Pourquoi cette couche dérive-t-elle sans que personne ne le voie ?</h2>
<p>Parce que la produire est facile, et que la maintenir ne l&rsquo;est pas.</p>
<p>Baliser un site en Schema.org est un travail borné. Une journée sur vingt pages, vérifiable, sous-traitable sans grand risque. Le piège n&rsquo;est pas là. Il est dans le fait que ce travail arrive presque toujours <em>après</em> le texte : une étape suivante, un autre outil, souvent une autre personne, parfois trois semaines plus tard.</p>
<p>À partir de ce moment, deux objets existent en parallèle. L&rsquo;article, qui continue de bouger en relecture. Et sa description machine, qui reste figée sur l&rsquo;état d&rsquo;avant.</p>
<p>Le titre du Schema garde la formulation de la v1. La FAQ balisée pose des questions que la version publiée ne traite plus. Le résumé Open Graph vend un angle abandonné au dernier arbitrage. Rien de tout cela ne se voit à l&rsquo;écran, donc rien ne déclenche d&rsquo;alerte. Le contenu paraît sain. Sa représentation, elle, a glissé.</p>
<p>C&rsquo;est le même mécanisme que la <a href="/validation-floue-pourquoi-quelqu-un-a-relu/">validation floue</a>, appliqué à un objet que personne n&rsquo;a jamais pensé à relire. Sauf qu&rsquo;ici, l&rsquo;absence de relecture n&rsquo;est même pas un oubli. Personne n&rsquo;a jamais décidé que quelqu&rsquo;un devait relire ça.</p>
<h2>Les quatre dérives qui coûtent le plus cher</h2>
<p>Elles ne se ressemblent pas, et elles ne coûtent pas la même chose.</p>
<p><strong>Le hreflang qui pointe vers un index.</strong> Une page traduite existe, mais la balise annonce la page de listing du blog à la place. Vous dites aux moteurs que la version anglaise de votre article est un sommaire. C&rsquo;est la plus coûteuse des quatre, et la plus discrète, parce qu&rsquo;aucun outil grand public ne la remonte tant que les deux pages répondent en 200.</p>
<p><strong>L&rsquo;entité déclarée plusieurs fois.</strong> Trois blocs décrivent votre organisation, avec trois jeux de champs et aucun identifiant commun. Le moteur ne sait pas laquelle fait foi.</p>
<p><strong>Le titre balisé qui n&rsquo;est pas le titre publié.</strong> Un espace avant les deux-points qui saute à la construction de la chaîne, et le <code>headline</code> devient « SEO et GEO:comment optimiser… » quand la page affiche « SEO et GEO : comment optimiser… ». Minuscule. Sauf que le titre qu&rsquo;une IA reprendra est celui-là.</p>
<p>Passons à la quatrième, qui est d&rsquo;une autre nature.</p>
<p><strong>Le contenu absent du fichier d&rsquo;exposition.</strong> Un <code>llms-full.txt</code> généré une fois, jamais régénéré, qui agrège les pages clés et ignore le blog. Tout ce que vous publiez ensuite reste invisible pour un agent qui s&rsquo;appuie sur ce fichier.</p>
<p>Ajoutez à ça le cas le plus embarrassant, et le plus fréquent : un chiffre de marque qui n&rsquo;est pas le même selon la source. Le site dit onze, le fichier d&rsquo;exposition dit treize. Les deux sont exposés. Le moteur choisira, et il ne vous demandera pas votre avis.</p>
<h2>Qu&rsquo;est-ce qui mérite vraiment une relecture humaine ?</h2>
<p>Trois choses. Pas plus.</p>
<p>La <strong>meta description</strong> d&rsquo;abord : c&rsquo;est la seule phrase qu&rsquo;un humain écrit pour la machine et que la machine réutilise telle quelle.</p>
<p>Les <strong>questions de la FAQ</strong> ensuite, parce que ce sont elles qui déclenchent la citation. Une question que personne ne pose ne sert à rien, même parfaitement balisée.</p>
<p>Le <strong>résumé du fichier d&rsquo;exposition</strong> enfin, parce qu&rsquo;il décide de ce qu&rsquo;un agent retiendra de la page sans jamais l&rsquo;ouvrir.</p>
<p>Le reste ne doit pas figurer dans une checklist humaine. Canonical, réciprocité des hreflang, unicité de l&rsquo;entité, cohérence des miroirs Open Graph, dates : tout ça se vérifie par script, en quelques secondes, sans jugement.</p>
<p>Mettre ces éléments dans une checklist de relecture ne les fait pas vérifier. Ça garantit l&rsquo;inverse. Une checklist de trente lignes dont vingt-sept sont mécaniques finit cochée d&rsquo;un bloc, et les trois lignes qui demandaient un arbitrage passent avec les autres.</p>
<h2>À quoi ressemble un contrôle qui sert à quelque chose ?</h2>
<p>Il compare deux sources plutôt que d&rsquo;inspecter une seule.</p>
<p>Vérifier que le <code>headline</code> du Schema existe ne prouve rien. Vérifier qu&rsquo;il est identique au H1 rendu prouve quelque chose. Même logique pour la FAQ : la présence d&rsquo;un bloc <code>FAQPage</code> ne dit rien, sa correspondance verbatim avec les sous-titres réellement affichés dit tout. Un hreflang se contrôle en ouvrant la cible et en vérifiant qu&rsquo;elle pointe en retour.</p>
<p>Le contrôle se fait sur le HTML servi en production, pas sur le brouillon. Entre les deux, il y a un thème, un cache, parfois un plugin, et chacun peut réécrire ce que vous pensiez avoir publié.</p>
<p>Un détail de méthode qui a son importance : chercher une chaîne dans le HTML avec un simple <code>grep</code> produit un faux positif exactement dans le cas qu&rsquo;il devait détecter, puisque le texte injecté par JavaScript est présent en clair dans le <code>&lt;script&gt;</code>. Il faut retirer les scripts et les styles avant de comparer quoi que ce soit, ou passer par un extracteur réel.</p>
<h2>FAQ</h2>
<h3>Est-ce qu&rsquo;un bon plugin SEO ne fait pas déjà tout ça ?</h3>
<p>Il génère la couche, ce qui est la partie facile. Il ne vérifie pas qu&rsquo;elle correspond encore au texte publié, parce qu&rsquo;il n&rsquo;a aucune idée de ce que le texte disait avant. La dérive vient du décalage entre deux versions, pas de l&rsquo;absence de balisage.</p>
<h3>À quelle fréquence faut-il régénérer un fichier llms.txt ?</h3>
<p>À chaque publication et à chaque modification substantielle, pas selon un calendrier. Un fichier régénéré tous les trimestres décrit un site vieux de trois mois. Si la régénération n&rsquo;est pas déclenchée par la publication elle-même, elle finira par ne plus être déclenchée du tout.</p>
<h3>Le texte masqué en CSS est-il lu par les moteurs de réponse ?</h3>
<p>Oui, et c&rsquo;est contre-intuitif. Les principaux crawlers d&rsquo;IA n&rsquo;exécutent pas le JavaScript, donc aucune règle CSS ne s&rsquo;applique de leur point de vue : un bloc en <code>display:none</code> leur arrive comme du texte normal. La conséquence pratique est qu&rsquo;il faut vérifier ce qu&rsquo;un site cache, pas seulement ce qu&rsquo;il montre.</p>
<h3>Faut-il traiter les posts LinkedIn de la même façon ?</h3>
<p>Un post n&rsquo;a pas de Schema, mais il a une couche invisible : la carte que la plateforme construit à partir de la page mise en lien. Les balises Open Graph de cette page font partie du livrable du post. Un lien dont l&rsquo;aperçu affiche un résumé périmé, c&rsquo;est un post à moitié écrit.</p>
<h3>Par où commencer quand tout est à reprendre ?</h3>
<p>Par le hreflang et le canonical, dans cet ordre. Ce sont les deux seuls éléments qui peuvent envoyer un moteur sur une autre page que la vôtre. Le reste dégrade la qualité de la citation, ceux-là en changent la destination.</p>
<h2>Ce que ça change dans le workflow</h2>
<p>Une seule règle, et elle est structurelle.</p>
<p>La couche invisible sort du même geste que le texte. Pas d&rsquo;une étape suivante, pas d&rsquo;un second outil, pas d&rsquo;un rattrapage de fin de sprint. Le jour où un contenu est modifié, sa couche est régénérée avec lui, et un contrôle automatique compare les deux avant publication.</p>
<p>Ce qui reste humain se réduit alors à trois arbitrages, et ces trois-là méritent le temps qu&rsquo;on leur donne. Tout le reste devient une condition de sortie, au même titre qu&rsquo;un test qui passe avant un déploiement.</p>
<p>La question à se poser sur votre dernier article publié n&rsquo;est pas de savoir si la FAQ a été écrite. C&rsquo;est de savoir qui l&rsquo;a relue.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The invisible layer: what answer engines actually read</title>
		<link>https://www.nomo-ia.com/invisible-layer-answer-engines-read/</link>
		
		<dc:creator><![CDATA[herve dhelin]]></dc:creator>
		<pubDate>Thu, 30 Jul 2026 06:38:00 +0000</pubDate>
				<category><![CDATA[SEO & GEO]]></category>
		<category><![CDATA[GEO]]></category>
		<category><![CDATA[gouvernance contenu]]></category>
		<category><![CDATA[IA éditoriale]]></category>
		<category><![CDATA[Schema.org]]></category>
		<guid isPermaLink="false">https://www.nomo-ia.com/?p=306</guid>

					<description><![CDATA[A published article ships a text to the reader and a layer nobody reviews to the engines. Produced after the fact, it describes an article that no longer exists.]]></description>
										<content:encoded><![CDATA[<p><em>You proofread the text. You never proofread what the machine is going to quote. A gap opens between the two, and it never announces itself.</em></p>
<h2>TL;DR</h2>
<p>A published article ships two things. A text, for the reader. And a layer nobody ever reads with their eyes: Schema.org, Open Graph, hreflang, canonical, <code>llms.txt</code>. That second layer decides how an answer engine cites you. When it is produced after the text, by another tool or another person, it ends up describing an article that no longer exists. The rule that fixes this fits on one line: the invisible layer ships in the same motion as the text.</p>
<h2>What does an answer engine actually receive when you publish?</h2>
<p>Far more than what you think you are sending it.</p>
<p>We measured what a single article page exposes in production on our own site. Nineteen Schema.org objects across three JSON-LD blocks. Five question-answer pairs marked up as <code>FAQPage</code>. Three language declarations, one canonical, fifteen meta tags covering indexation and social sharing. Plus two exposure files, <code>llms.txt</code> and <code>llms-full.txt</code>, the second running past 120,000 characters.</p>
<p>The reader sees a title, a text and a few links.</p>
<p>None of those lines are read by a human. All of them are read by models. That is the distinction we set out in our <a href="/seo-geo-optimise-content-ai-answer-engines/">piece on SEO and GEO</a>: SEO optimises access to the page, GEO optimises what the machine does with it. Access depends on the text. Use depends on this layer.</p>
<h2>Why does the layer drift without anyone noticing?</h2>
<p>Because producing it is easy, and maintaining it is not.</p>
<p>Marking up a site in Schema.org is bounded work. A day for twenty pages, verifiable, safe to outsource. The trap sits elsewhere. It sits in the fact that this work almost always happens <em>after</em> the text: a next step, another tool, often another person, sometimes three weeks later.</p>
<p>From that moment, two objects exist in parallel. The article, which keeps moving through review. And its machine-readable description, frozen on the state it had before.</p>
<p>The Schema title keeps the wording from v1. The marked-up FAQ asks questions the published version no longer covers. The Open Graph summary sells an angle dropped in the final edit. None of this shows on screen, so nothing raises a flag. The content looks healthy. Its representation has quietly moved.</p>
<p>Same mechanism as <a href="/fuzzy-validation-why-someone-reviewed/">fuzzy validation</a>, applied to an object nobody ever thought to review. Except here, the missing review is not an oversight. Nobody ever decided that someone should review this at all.</p>
<h2>The four drifts that cost the most</h2>
<p>They are not alike, and they do not cost the same.</p>
<p><strong>Hreflang pointing at an index.</strong> A translated page exists, but the tag announces the blog listing instead. You are telling engines that the English version of your article is a table of contents. The most expensive of the four, and the quietest, because no mainstream tool flags it as long as both pages return a 200.</p>
<p><strong>The entity declared several times.</strong> Three blocks describe your organisation, with three sets of fields and no shared identifier. The engine cannot tell which one is authoritative.</p>
<p><strong>A marked-up title that is not the published title.</strong> One space lost when the string is built, and <code>headline</code> becomes « SEO and GEO:how to optimise… » while the page displays « SEO and GEO: how to optimise… ». Tiny. Except the title an AI reuses is that one.</p>
<p>Let us take the fourth, which is a different animal.</p>
<p><strong>Content missing from the exposure file.</strong> An <code>llms-full.txt</code> generated once, never regenerated, aggregating the key pages and ignoring the blog. Everything you publish afterwards stays invisible to an agent relying on that file.</p>
<p>Then the most embarrassing case, and the most common: a brand figure that differs depending on the source. The site says eleven, the exposure file says thirteen. Both are published. The engine will pick one, and it will not ask you which.</p>
<h2>What actually deserves a human read?</h2>
<p>Three things. No more.</p>
<p>The <strong>meta description</strong> first: it is the only sentence a human writes for the machine that the machine reuses verbatim.</p>
<p>The <strong>FAQ questions</strong> next, because they are what triggers the citation. A question nobody asks is worth nothing, however well it is marked up.</p>
<p>The <strong>exposure file summary</strong> last, because it decides what an agent retains about the page without ever opening it.</p>
<p>The rest has no business being on a human checklist. Canonical, hreflang reciprocity, entity uniqueness, Open Graph mirroring, dates: all of it verifies by script, in seconds, with no judgement involved.</p>
<p>Putting those items on a review checklist does not get them checked. It guarantees the opposite. A thirty-line checklist where twenty-seven lines are mechanical gets ticked in one pass, and the three that needed a real decision go through with the rest.</p>
<h2>What does a control worth running look like?</h2>
<p>It compares two sources instead of inspecting one.</p>
<p>Verifying that a Schema <code>headline</code> exists proves nothing. Verifying that it matches the rendered H1 proves something. Same logic for the FAQ: the presence of a <code>FAQPage</code> block says nothing, its verbatim correspondence with the subheadings actually displayed says everything. A hreflang is checked by opening the target and confirming it points back.</p>
<p>The control runs on the HTML served in production, not on the draft. Between the two sit a theme, a cache, sometimes a plugin, and each one can rewrite what you thought you had published.</p>
<p>One method detail that matters more than it looks: grepping the HTML for a string produces a false positive in exactly the case it was meant to catch, since text injected by JavaScript sits in plain sight inside the <code>&lt;script&gt;</code> tag. Strip scripts and styles before comparing anything, or run a real extractor.</p>
<h2>FAQ</h2>
<h3>Doesn&rsquo;t a good SEO plugin already handle this?</h3>
<p>It generates the layer, which is the easy part. It does not verify that the layer still matches the published text, because it has no idea what the text said before. Drift comes from the gap between two versions, not from missing markup.</p>
<h3>How often should an llms.txt file be regenerated?</h3>
<p>On every publication and every substantial edit, not on a schedule. A file regenerated quarterly describes a site three months old. If regeneration is not triggered by publication itself, it will eventually stop being triggered at all.</p>
<h3>Do answer engines read text hidden with CSS?</h3>
<p>Yes, and it is counter-intuitive. The main AI crawlers do not execute JavaScript, so no CSS rule applies from their point of view: a block set to <code>display:none</code> reaches them as ordinary text. The practical consequence is that you need to check what a site hides, not only what it shows.</p>
<h3>Does the same apply to LinkedIn posts?</h3>
<p>A post has no Schema, but it does have an invisible layer: the card the platform builds from the page you link to. That page&rsquo;s Open Graph tags are part of the post&rsquo;s deliverable. A link whose preview shows a stale summary is a post written halfway.</p>
<h3>Where do you start when everything needs work?</h3>
<p>Hreflang and canonical, in that order. They are the only two elements that can send an engine to a page other than yours. The rest degrades the quality of the citation, those two change its destination.</p>
<h2>What this changes in the workflow</h2>
<p>One rule, and it is structural.</p>
<p>The invisible layer ships in the same motion as the text. Not a next step, not a second tool, not an end-of-sprint catch-up. The day a piece of content is edited, its layer is regenerated with it, and an automated control compares the two before publication.</p>
<p>What stays human then narrows to three decisions, and those three deserve the time you give them. Everything else becomes an exit condition, the same way a test passes before a deployment.</p>
<p>The question to ask about your last published article is not whether the FAQ was written. It is who reviewed it.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
