OUTIL GRATUIT · GÉNÉRATEUR DE SCHEMA RECETTE

Générateur de schema recette

Collez une recette : vous obtenez le JSON-LD Recipe avec les étapes en HowToStep, les temps en vrai ISO 8601 — « 1 h 30 » devient PT1H30M — et un avertissement chaque fois que deux propriétés se contredisent.

GratuitInstantanéSans inscriptionRien n'est envoyé

Aussi enEnglish繁體中文日本語한국어EspañolFrançaisDeutschPortuguês (Brasil)

Recipe · générateur
Le plat

Obligatoire. Une photo du plat fini, explorable et indexable.

Des termes en plus : saison, occasion, « rapide », « facile ». Ni le type de plat ni la cuisine, que Google demande de ne pas répéter ici.

Les temps

Au choix : 20 min, 45 mn, 1 h 30, 1 heure, 1,5 h, 1:30, 90 ou PT20M. Un « 1,5 » sans unité est refusé plutôt que deviné.

Règle de Google : toujours avec le temps de préparation.

Donnez celui-ci, ou les deux autres.

Portions et calories

Le nombre de portions en tête : « 6 » ou « 6 personnes », pas « Pour 6 personnes ».

N'a de sens qu'avec un nombre de portions : Google lie les deux dans la même phrase.

Ingrédients et préparation

Seulement ce qui sert à faire le plat, dans les unités de la recette : g, cl, c. à soupe. Pas de définition, pas de conseil d'achat.

Chaque ligne devient un HowToStep. Sans « Étape 1 », « Instructions » ni « Regarder la vidéo ».

Erreurs et avertissements
    JSON-LD — à coller dans la page de la recette
    
                
    HTML visible — la fiche recette, mêmes valeurs
    
                

    Tout s'exécute dans cette page. Aucune recette, URL de photo ni liste d'ingrédients ne quitte votre navigateur.

    Sources : Google Search Central — données structurées des recettes ; balisage Recipe d'une recette de Marmiton, relevé le 26 septembre 2026 ; schema.org/Energy ; WHATWG — syntaxe HTML, éléments de texte brut.

    Comment générer le schema recette

    Dans Recipe, plusieurs propriétés ne sont valides qu'ensemble. Le générateur écrit le balisage et la fiche à partir des mêmes valeurs, et signale chaque contradiction qu'il voit.

    1. Nommez le plat et ajoutez une photo. Ce sont les deux propriétés obligatoires. La photo montre le plat terminé et son URL doit être explorable ; Google conseille plusieurs formats de la même prise de vue.
    2. Donnez les temps par paires. Soit un temps total, soit une préparation et une cuisson ensemble. Tapez-les comme vous les pensez, 20 min ou 1 h 30 : la sortie est de l'ISO 8601.
    3. Rattachez les calories aux portions. Les calories sont par portion : sans nombre de portions, le chiffre ne dit rien. Le générateur en fait une erreur, parce que Google l'exige en une phrase.
    4. Écrivez ingrédients et étapes en lignes. Un ingrédient par ligne, dans les unités de la recette ; une étape par ligne, sans numéro. Chaque étape devient un HowToStep, que Google préfère à un bloc de texte qu'il doit découper seul.
    5. Collez les deux sorties. Le JSON-LD va dans la page de la recette. La fiche, aux intitulés français, porte les mêmes ingrédients et les mêmes étapes ; vous pouvez afficher 1 h 30 là où le balisage écrit PT1H30M.

    Trois temps, et les seules paires autorisées

    Un générateur de schema recette transforme une recette en données structurées Recipe au format JSON-LD — le balisage que Google lit pour les ingrédients, les étapes, les temps et les calories d'un plat. Deux propriétés seulement sont obligatoires, name et image. Tout se joue dans les propriétés facultatives, dont plusieurs ne sont valides qu'accompagnées.

    Pour cookTime, la documentation française de Google écrit : utilisez toujours cette propriété conjointement avec prepTime ; pour prepTime, la même phrase avec cookTime ; pour totalTime : utilisez totalTime ou une combinaison de cookTime et prepTime. D'où deux formes admises et une forme invalide :

    Ce que vous écrivezVerdict
    totalTime seulCorrect
    prepTime + cookTime (avec ou sans totalTime)Correct
    cookTime seul — la recette « 45 minutes au four »Invalide : la règle la nomme
    Aucun tempsValide, mais le badge de temps n'a rien à afficher

    Les trois attendent une durée ISO 8601 — PT1H30M, pas « 1 h 30 ». Le formulaire lit ce que vous avez en tête : 20 min, 45 mn, 1 h 30, 1 heure 30, 1,5 h avec la virgule décimale, 1:30, 90 ou la forme ISO. Seul un nombre décimal sans unité, comme « 1,5 », est refusé plutôt que deviné.

    Ce qui n'est pas une règle de Google : totalTime n'a pas à égaler prepTime plus cookTime. Repos de la pâte, levée, marinade, passage au frais : ce temps compte dans le total et dans aucun des deux autres. L'outil avertit seulement quand le total est plus petit que la somme — c'est de l'arithmétique, et presque toujours une faute de frappe.

    « Pour 4 personnes » : portions et calories

    La phrase de Google sur la nutrition est courte : si nutrition.calories est spécifié, recipeYield doit être défini avec le nombre de portions. Un nombre de calories ne veut rien dire sans savoir ce qu'il compte ; le générateur fait donc d'une valeur calorique sans portions une erreur, pas un avertissement.

    La formule française « Pour 4 personnes » bute sur une autre règle : recipeYield s'ouvre sur le nombre de portions. Écrivez 4, ou 4 personnes comme Marmiton le fait dans son propre balisage ; « Pour 4 personnes » déclenche un avertissement. Une autre unité peut suivre en seconde valeur, comme dans l'exemple de Google : ["6", "24 cookies"].

    Pour l'énergie, schema.org attend la forme nombre puis unité : l'exemple de Google écrit 120 calories, des sites de recettes français écrivent 476 kcal, et les deux respectent cette forme. Quant aux mots clés, ils servent aux termes en plus — Google cite une saison (« été »), une occasion (« Halloween »), des descripteurs (« rapide », « facile », « authentique ») — et ne doivent pas répéter recipeCategory ni recipeCuisine. Le formulaire signale un mot clé qui duplique l'un des deux.

    Grammes, centilitres et thermostat : ingrédients et étapes

    Les unités françaises passent telles quelles : recipeIngredient est du texte, et Google n'y pose qu'une consigne : incluez uniquement le texte de l'ingrédient nécessaire à la préparation de la recette, sans en donner la définition. « 20 cl de crème fraîche » chez Marmiton ou « ½ sachet de levure » chez 750g figurent ainsi dans le balisage de ces sites, et une virgule décimale comme dans « 1,2 kg » ne gêne en rien un texte. De même, « Préchauffez le four à 180 °C (th. 6) » est une étape valide : Marmiton ouvre la sienne par « Préchauffer le four à 180°C (thermostat 6) ».

    Pour recipeInstructions, Google laisse trois formes : un bloc de texte, qu'il découpe lui-même en devinant où finit chaque étape ; des HowToStep, qu'il recommande ; des HowToSection quand la recette a vraiment des parties (pâte, garniture, glaçage). Ce générateur écrit un HowToStep par ligne, et la documentation française ajoute une consigne précise : n'incluez que le texte décrivant comment préparer le plat, pas de texte tel que « Instructions », « Regarder la vidéo », « Étape 1 ». Le générateur signale une ligne qui commence par l'une de ces formules, ou par « Voir la vidéo ». Une dernière ligne « Bon appétit ! » ne décrit pas non plus la préparation.

    Accents, œ et entités HTML : le piège propre au français

    Une recette française est pleine de caractères que l'anglais n'a pas : é, è, à, ç, œ. Dans le JSON-LD, ils s'écrivent tels quels. Pour la spécification HTML, l'élément <script> est un élément de texte brut : les références de caractères n'y sont pas décodées. Écrire &eacute; ou &oelig; dans le JSON-LD, c'est donc publier ces suites de caractères littéralement.

    Le cas n'a rien de théorique : le 26 septembre 2026, les étapes balisées d'une page d'un grand site de recettes français contenaient « sucre vanill&amp;eacute; », une entité échappée deux fois par le gabarit du site. Le générateur écrit les caractères accentués directement dans les deux sorties ; si votre CMS réencode le texte, contrôlez le code source publié plutôt que l'aperçu de l'éditeur.

    Les deux propriétés suivantes : les notes et la vidéo

    Les notes. aggregateRating est recommandé pour une recette et suit en entier les consignes des extraits d'avis : ratingCount ou reviewCount, aucune moyenne recopiée d'un autre site, aucun avis incité non signalé. Google ajoute une ligne propre aux recettes : si le balisage contient un seul avis, son auteur doit être une personne ou une organisation valide, et « 50 % de remise sur les ingrédients » n'en est pas une. Le générateur de schema avis vérifie tout cela.

    La vidéo. video attend un VideoObject complet, avec les obligations de toute vidéo : un titre unique, une vignette à une URL stable, une date de mise en ligne qui porte idéalement son fuseau horaire — +02:00 l'été en France, +01:00 l'hiver. Le piège : un contentUrl qui pointe vers la page de la recette au lieu du fichier vidéo ; le générateur de schema vidéo refuse de l'écrire.

    Questions fréquentes

    Qu'est-ce qu'un générateur de schema recette ?

    Un générateur de schema recette transforme une recette en données structurées Recipe au format JSON-LD — le balisage que Google lit pour les ingrédients, les étapes, les temps et les calories d'un plat. Celui-ci écrit les étapes en HowToStep, convertit les temps en ISO 8601 et signale les propriétés qui se contredisent.

    Peut-on indiquer un temps de cuisson sans temps de préparation ?

    Non. Pour cookTime comme pour prepTime, Google écrit qu'il faut toujours utiliser la propriété conjointement avec l'autre. Si vous ne connaissez qu'une durée, mettez-la dans totalTime : un temps total seul est l'une des deux formes admises.

    Comment écrire « Pour 4 personnes » dans recipeYield ?

    En commençant par le nombre : 4, ou 4 personnes. Google demande le nombre de portions, et la valeur doit s'ouvrir sur ce nombre ; « Pour 4 personnes » déclenche un avertissement dans ce générateur. La page peut garder la formule habituelle, pas le balisage.

    Faut-il écrire les calories en kcal ?

    schema.org attend un nombre suivi d'une unité d'énergie : 420 kcal comme 420 calories respectent cette forme, et l'exemple de Google utilise la seconde. L'essentiel est ailleurs : dès que nutrition.calories est présent, recipeYield doit indiquer le nombre de portions.

    Pourquoi ne pas écrire « Étape 1 » dans les instructions ?

    Parce que la documentation française de Google demande de n'inclure que le texte décrivant la préparation, sans texte tel que « Instructions », « Regarder la vidéo » ou « Étape 1 ». La numérotation vient de la position de chaque HowToStep dans la liste ; la répéter dans le texte ajoute du bruit, et ce générateur signale une étape qui commence ainsi.

    Les accents posent-ils problème dans le JSON-LD ?

    Non, à condition de les écrire tels quels. Le contenu d'une balise script n'est pas décodé : une entité HTML comme &eacute; y reste littérale et se retrouve telle quelle dans les données. Ce générateur écrit é, è, ç et œ directement dans les deux sorties.

    totalTime doit-il être égal à prepTime + cookTime ?

    Non, aucune règle de Google ne l'impose. Repos de la pâte, levée, marinade ou passage au réfrigérateur comptent dans le total sans appartenir à la préparation ni à la cuisson. Ce générateur avertit seulement quand le total est inférieur à la somme, ce qui est arithmétiquement impossible.

    clize seo check — gratuit pour votre propre domaine

    Lesquelles de vos recettes Google a-t-il vraiment ?

    Analyser votre propre domaine ne coûte rien : chaque page avec son statut HTTP et son verdict d'indexation en direct, impressions et position moyenne face à la période précédente, et le trafic par source avec les moteurs IA comptés à part. Une commande, depuis votre agent.

    $ npm i -g @clize/clize && clize install
    $ clize seo check --domain votredomaine.fr
    [ Agent SEO par Clize → ]