Générateur de schéma BreadcrumbList JSON-LD
Listez vos pages de l'accueil jusqu'à la page actuelle et obtenez les données structurées du fil d'Ariane, à coller directement : Accueil, Guides et SEO technique deviennent les positions 1, 2 et 3, numérotées automatiquement. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Indiquez les noms de pages et leurs URL absolues dans l’ordre affiché, de la page la plus générale jusqu’à la destination actuelle. Il contrôle les listes vides, les lignes incorrectes, les libellés manquants et les URL non admises avant de produire le balisage.
Préparez le fil d’Ariane dans l’ordre de la page
Commencez par la hiérarchie que les visiteurs voient réellement. La première ligne représente généralement l’accueil ou la rubrique la plus large, puis viennent des pages de plus en plus précises, jusqu’à la page actuelle en dernière position. Les URL absolues évitent toute ambiguïté pour les robots et rendent le balisage réutilisable entre modèles, domaines de préproduction et systèmes de gestion de contenu.
Gardez des libellés conformes aux pages liées au lieu d’y accumuler des mots-clés. L’outil respecte strictement l’ordre fourni et attribue les positions à partir de un : déplacer une ligne modifie donc le sens du parcours. Il n’explore pas le site, ne déduit aucune hiérarchie et ne compare pas les entrées avec la navigation HTML.
Vérifiez les redirections, les URL canoniques, l’orthographe et la casse avant la génération. Une liste vide est refusée, car elle ne décrit aucun parcours exploitable et révèle souvent un modèle défaillant ou une requête incomplète.
Ce que contient chaque étape du fil généré
Le résultat contient un objet de schéma destiné aux traitements automatisés et un script complet à insérer directement dans une page. Chaque paire devient un ListItem doté d’une position commençant à un, du nom nettoyé de ses espaces périphériques et de son URL dans la propriété item. La mise en forme indentée facilite la relecture et garantit un résultat stable pour une entrée identique.
Le générateur échappe aussi les caractères inférieur à dans les valeurs sérialisées afin qu’un texte fourni ne puisse pas fermer prématurément l’élément script dans du HTML. L’algorithme est déterministe et n’effectue aucune requête réseau : il ne vérifie donc ni la disponibilité d’une URL ni l’indexabilité d’une page.
Publiez et contrôlez le balisage
Le fil structuré doit rester cohérent avec des liens réellement visibles et utilisables. Si votre CMS produit déjà des données structurées de fil d’Ariane, remplacez ou désactivez l’ancien bloc au lieu de publier deux versions dont les positions ou les URL divergent. Régénérez le balisage après un déplacement de page, un changement de nom de rubrique ou une modification des URL canoniques.
Une fois en ligne, inspectez le HTML rendu plutôt que le seul modèle source : thèmes, gestionnaires de balises et extensions d’optimisation peuvent dupliquer, supprimer ou transformer les scripts. Servez-vous ensuite d’un outil de test des données structurées ou d’inspection d’un moteur de recherche pour relever les problèmes extérieurs au générateur, notamment les destinations inaccessibles, les balises canoniques contradictoires ou le balisage placé sur la mauvaise page.
Cas d’usage
Balisage d’un modèle de page
Convertissez le parcours ordonné d’un modèle en script BreadcrumbList directement intégrable.
Rétablissement des données manquantes
Créez un remplacement lorsque le fil est visible, mais qu’aucun parcours lisible par une machine n’est publié.
Questions fréquentes
Que se passe-t-il si la liste est vide ?
La requête échoue avec une erreur de saisie, car BreadcrumbList doit comporter au moins un élément utile.
Quel ordre faut-il respecter ?
Saisissez les pages du niveau le plus général jusqu’à la page actuelle. Le générateur conserve cet ordre et numérote à partir de un.
Le générateur vérifie-t-il l’existence des pages ?
Non. Sans accès réseau, il valide la syntaxe et le protocole, mais pas le statut, l’indexation, les redirections ni les URL canoniques.
Où faut-il placer le bloc produit ?
Insérez le script dans l’en-tête ou le corps selon votre système de publication, sans laisser un autre balisage identique.
Ce balisage garantit-il l'affichage du fil d'Ariane dans les résultats de recherche ?
Non. Un balisage valide indique aux moteurs comment le fil est construit, mais il ne promet aucun affichage précis dans les résultats. Gardez-le identique aux liens que le visiteur voit sur la page.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/breadcrumb-schema-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"breadcrumbs":[{"name":"Home","url":"https://example.com/"},{"name":"Guides","url":"https://example.com/guides"},{"name":"Technical SEO","url":"https://example.com/guides/technical-seo"}]}'const res = await fetch("https://api.kit.forhosting.com/web/breadcrumb-schema-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/breadcrumb-schema-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/breadcrumb-schema-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"breadcrumbs":[{"name":"Home","url":"https://example.com/"},{"name":"Guides","url":"https://example.com/guides"},{"name":"Technical SEO","url":"https://example.com/guides/technical-seo"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"breadcrumbs":[{"name":"Home","url":"https://example.com/"},{"name":"Guides","url":"https://example.com/guides"},{"name":"Technical SEO","url":"https://example.com/guides/technical-seo"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/breadcrumb-schema-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.breadcrumb_schema_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Transformez un fil d’Ariane visible en données structurées sans numéroter les éléments ni construire manuellement un JSON imbriqué. Le générateur fournit un objet BreadcrumbList de schema.org et un script JSON-LD complet, prêt à être placé dans l’en-tête ou le corps.
Préparez le fil d’Ariane dans l’ordre de la page
Chaque ligne doit contenir un nom visible et concis ainsi qu’une URL absolue HTTP ou HTTPS.
Comprenez le JSON-LD obtenu
Au premier niveau, le contexte renvoie vers schema.org et le type est BreadcrumbList. Seuls les noms non vides et les URL absolues HTTP ou HTTPS sont acceptés ; javascript, data, mailto et les chemins relatifs sont rejetés. Utilisez l’objet schema si une autre application assure la sérialisation, ou le champ jsonld pour obtenir immédiatement le balisage complet.
Publiez et contrôlez le balisage
Ajoutez un seul script généré à la page décrite par le parcours, dans l’en-tête du document ou dans le corps si votre outil de publication y autorise JSON-LD. Un JSON-LD valide est une condition technique, pas une garantie d’affichage particulier. L’API coûte $0.002 par requête ; le navigateur peut exécuter la même logique sans transmettre vos données.
Cas d'intégration
Sortie homogène du CMS
Produisez la même structure JSON-LD pour les articles, produits, catégories et sections documentaires.
Questions techniques
Puis-je employer des URL relatives ?
Non. Chaque élément exige une URL absolue HTTP ou HTTPS afin que les données structurées soient sans ambiguïté.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. La même transformation déterministe peut aussi s’exécuter dans le navigateur.