Validateur OGP et balises meta

Collez votre HTML pour valider les balises meta Open Graph (OGP) et Twitter Card. Détecte les balises manquantes et les og:image invalides, avec aperçu de la carte.

Examiner les balises méta qui décident de l'aspect d'un lien partagé

Le titre, la description et l'image qui paraissent lorsqu'un lien est publié sur un réseau social sont décidés par les balises méta Open Graph et Twitter Card inscrites dans le `` de la page. Cet outil les extrait du HTML que vous collez, signale les balises absentes et les valeurs fautives, et en donne un aperçu proche de la carte telle qu'elle paraîtra.

**Le défaut de loin le plus fréquent consiste à écrire `og:image` en chemin relatif.** Les robots vont chercher l'image depuis leurs propres serveurs, si bien qu'un chemin tel que `/img/ogp.png` ne peut être résolu et **la carte arrive amputée de son image.** Écrivez-la toujours en adresse absolue commençant par `https://`. **L'autre chose à savoir, c'est que ces services mettent en cache ce qu'ils ont exploré.** Corriger une balise peut laisser l'ancien contenu à l'affiche, et il faut alors provoquer une nouvelle exploration via l'outil de diagnostic de chaque service. Notez enfin qu'une Twitter Card se rabat sur les balises `og:` là où aucune balise `twitter:` n'existe : il est donc inutile d'écrire les deux.

Comment s'en servir

  1. Collez la source HTML Le contenu de `` suffit, la page entière convient tout autant.
  2. Essayez d'abord les exemples Un bon et un mauvais exemple sont fournis, de sorte que vous voyez en quoi les verdicts diffèrent avant de commencer.
  3. Lisez les points relevés **Les balises absentes et tout `og:image` qui n'est pas une adresse absolue sont signalés.**
  4. Vérifiez l'aspect dans l'aperçu Vous voyez comment le titre se replie et où la description est coupée avant de publier quoi que ce soit.

Astuces pour en tirer le meilleur parti

  • La taille recommandée pour og:image est 1200×630px (rapport 1,91:1). Une image trop petite ou avec un mauvais rapport d'aspect peut être recadrée de façon inattendue par les plateformes sociales.
  • Les robots de Facebook, LINE et Slack lisent og:title/og:description, tandis que X (Twitter) utilise ses propres twitter:title/twitter:description. Définir les deux garantit un aperçu correct sur toutes les plateformes.
  • Si twitter:card est absent, X tentera de se rabattre sur og:title/og:description, mais l'image peut ne pas s'afficher correctement ; mieux vaut donc le définir explicitement.
  • Renseignez og:url avec l'URL canonique et absolue (https://) de la page. Cela évite aussi les confusions de contenu dupliqué causées par des URL avec des paramètres de suivi.
  • Juste après avoir modifié vos balises meta, les réseaux sociaux peuvent encore afficher un aperçu obsolète mis en cache. Utilisez l'outil de réexploration de chaque plateforme (par exemple le débogueur de partage de Facebook) pour actualiser le cache.

Dans quels cas s'en servir

Pour vérifier un article avant publication

**Si le lien paraît abîmé une fois en ligne, le cache fait que le corriger n'y change rien.** Regarder d'abord est plus sûr.

Pour contrôler ce que produit un gabarit

Collez le `` émis par votre gestionnaire de contenu et confirmez que les balises prévues y figurent.

Pour vérifier un changement d'image

**Qu'un nouveau `og:image` soit une adresse absolue est précisément le genre de détail qui échappe.**

Pour prendre exemple sur d'autres sites

Collez la source d'une page qui s'affiche bien et voyez quelles balises elle a pris soin de poser.

Vocabulaire d'Open Graph

Og:title
Le titre affiché sur la carte. **Il peut différer de ``, ce qui permet une formulation plus brève pour les réseaux.**</dd> <dt class="glossary-term" id="glossary-1">Og:description</dt> <dd class="glossary-definition">Le texte descriptif de la carte. Il est coupé s'il est trop long : mettez donc l'essentiel en tête.</dd> <dt class="glossary-term" id="glossary-2">Og:image</dt> <dd class="glossary-definition">L'image de la carte. **Donnez-la toujours en adresse absolue.** Environ 1200 sur 630 pixels est une taille commode.</dd> <dt class="glossary-term" id="glossary-3">Og:type</dt> <dd class="glossary-definition">La nature de la page. `article` est d'usage pour un texte et `website` pour le reste.</dd> <dt class="glossary-term" id="glossary-4">Twitter:card</dt> <dd class="glossary-definition">La forme de la carte. Poser `summary_large_image` affiche l'image sur toute la largeur.</dd> <dt class="glossary-term" id="glossary-5">Og:url</dt> <dd class="glossary-definition">L'adresse canonique de la page. **C'est là que se regroupent les partages : prenez garde de ne pas y inscrire une adresse portant des paramètres.**</dd> </dl> </div> </div> </div> <div class="row mt-4 section-faq"> <div class="col-md-12"> <div class="faq-card"> <h2 class="h4"><svg class="svg-icon-inline me-2" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-help-circle" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 16v.01" /> <path d="M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483" /> </svg>Questions fréquentes</h2> <div class="accordion accordion-flush mt-3" id="faq-accordion"> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq-0"> Pourquoi mon og:image ne s'affiche-t-il pas lors du partage de la page sur les réseaux sociaux ? </button> </h3> <div id="faq-0" class="accordion-collapse collapse" data-bs-parent="#faq-accordion"> <div class="accordion-body">La cause la plus fréquente est une URL d'image relative (comme <code>/img/a.png</code>). La plupart des robots ne peuvent pas résoudre les URL relatives ; utilisez donc toujours une URL absolue commençant par <code>https://</code>. Cela peut aussi échouer si votre serveur bloque le User-Agent du robot, ou si l'image est trop petite.</div> </div> </div> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq-1"> Dois-je définir à la fois og:title et la balise <title> ? </button> </h3> <div id="faq-1" class="accordion-collapse collapse" data-bs-parent="#faq-accordion"> <div class="accordion-body">Oui, elles ont des rôles différents, donc il est recommandé de définir les deux. <code><title></code> est utilisée pour le titre dans les résultats de recherche et l'onglet du navigateur, tandis que <code>og:title</code> est utilisée pour le titre de la carte lors d'un partage sur les réseaux sociaux. De nombreux robots se rabattent sur <code><title></code> si og:title est absent, mais le résultat peut ne pas correspondre à ce que vous souhaitiez.</div> </div> </div> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq-2"> Quelle valeur choisir pour twitter:card ? </button> </h3> <div id="faq-2" class="accordion-collapse collapse" data-bs-parent="#faq-accordion"> <div class="accordion-body">Pour un article ou une page de blog classique, <code>summary_large_image</code> est recommandé car il affiche une grande image. Si une petite vignette suffit, utilisez plutôt <code>summary</code>. <code>app</code> et <code>player</code> sont respectivement destinés aux invites d'installation d'application et au contenu vidéo/audio intégré, et ne conviennent pas à une page web classique.</div> </div> </div> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq-3"> J'ai corrigé mes balises meta, mais l'aperçu sur les réseaux sociaux ne s'est toujours pas mis à jour. Pourquoi ? </button> </h3> <div id="faq-3" class="accordion-collapse collapse" data-bs-parent="#faq-accordion"> <div class="accordion-body">Les réseaux sociaux mettent en cache les résultats de leur exploration, de sorte qu'un aperçu obsolète peut persister même après la correction des balises. Vous devez demander explicitement une nouvelle exploration via l'outil de chaque plateforme — comme le débogueur de partage de Facebook/LINE ou le Card Validator de X — pour actualiser le cache.</div> </div> </div> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq-4"> Que se passe-t-il si une page n'a aucune balise OGP ? </button> </h3> <div id="faq-4" class="accordion-collapse collapse" data-bs-parent="#faq-accordion"> <div class="accordion-body">La plupart des robots se rabattront sur <code><title></code> et <code>meta description</code> pour générer un aperçu, mais aucune image ne sera affichée, ce qui donne un aperçu sobre composé d'un lien et de texte. Cela affectant le taux de clic, il est conseillé de définir au moins <code>og:title</code>, <code>og:description</code> et <code>og:image</code>.</div> </div> </div> </div> </div> </div> </div> <script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Pourquoi mon og:image ne s'affiche-t-il pas lors du partage de la page sur les réseaux sociaux ?","acceptedAnswer":{"@type":"Answer","text":"La cause la plus fréquente est une URL d'image relative (comme /img/a.png). La plupart des robots ne peuvent pas résoudre les URL relatives ; utilisez donc toujours une URL absolue commençant par https://. Cela peut aussi échouer si votre serveur bloque le User-Agent du robot, ou si l'image est trop petite."}},{"@type":"Question","name":"Dois-je définir à la fois og:title et la balise <title> ?","acceptedAnswer":{"@type":"Answer","text":"Oui, elles ont des rôles différents, donc il est recommandé de définir les deux. <title> est utilisée pour le titre dans les résultats de recherche et l'onglet du navigateur, tandis que og:title est utilisée pour le titre de la carte lors d'un partage sur les réseaux sociaux. De nombreux robots se rabattent sur <title> si og:title est absent, mais le résultat peut ne pas correspondre à ce que vous souhaitiez."}},{"@type":"Question","name":"Quelle valeur choisir pour twitter:card ?","acceptedAnswer":{"@type":"Answer","text":"Pour un article ou une page de blog classique, summary_large_image est recommandé car il affiche une grande image. Si une petite vignette suffit, utilisez plutôt summary. app et player sont respectivement destinés aux invites d'installation d'application et au contenu vidéo/audio intégré, et ne conviennent pas à une page web classique."}},{"@type":"Question","name":"J'ai corrigé mes balises meta, mais l'aperçu sur les réseaux sociaux ne s'est toujours pas mis à jour. Pourquoi ?","acceptedAnswer":{"@type":"Answer","text":"Les réseaux sociaux mettent en cache les résultats de leur exploration, de sorte qu'un aperçu obsolète peut persister même après la correction des balises. Vous devez demander explicitement une nouvelle exploration via l'outil de chaque plateforme — comme le débogueur de partage de Facebook/LINE ou le Card Validator de X — pour actualiser le cache."}},{"@type":"Question","name":"Que se passe-t-il si une page n'a aucune balise OGP ?","acceptedAnswer":{"@type":"Answer","text":"La plupart des robots se rabattront sur <title> et meta description pour générer un aperçu, mais aucune image ne sera affichée, ce qui donne un aperçu sobre composé d'un lien et de texte. Cela affectant le taux de clic, il est conseillé de définir au moins og:title, og:description et og:image."}}]}</script> <div class="row mt-4 section-article"> <div class="col-md-12"> <div class="article-card"> <img src="https://toolbase.cc/img/toolkun.png" alt="Tool-kun" style="float:right;width:56px;margin:0 0 .5rem 1.25rem;opacity:.9"> <h2 class="h4">Anecdote — Pourquoi l'OGP existe — Facebook l'a créé pour faire fonctionner le bouton « J'aime »</h2> <p>L'Open Graph Protocol (OGP) a été créé par Facebook en 2010 pour populariser son bouton « J'aime ». À l'époque, partager une page web sur Facebook n'affichait guère plus qu'un lien nu et un titre, et les taux de clic en pâtissaient. La solution de Facebook a été de permettre à la page elle-même de déclarer son apparence lors d'un partage, en ajoutant un nouvel espace de noms <code><meta property="og:xxx"></code> au HTML ordinaire.</p> <p>Fait intéressant, l'OGP repose sur <strong>RDFa</strong>, une spécification du W3C permettant d'intégrer des données structurées dans le HTML. En réutilisant une norme existante, Facebook a pu lancer cette nouvelle fonctionnalité sans avoir besoin de la coopération des fabricants de navigateurs ni d'autres entreprises — quelques balises meta supplémentaires sur des pages déjà existantes suffisaient. Cette approche consistant à « étendre sans casser la rétrocompatibilité » a fonctionné, et l'OGP est devenu une norme de facto adoptée bien au-delà de Facebook, sur des plateformes comme Slack, LINE et Discord.</p> <p>Twitter n'a jamais adopté l'OGP directement ; il a créé son propre espace de noms séparé, <strong>Twitter Cards</strong> (<code>twitter:xxx</code>). C'était sans doute autant un choix concurrentiel qu'un choix technique — ne pas vouloir simplement adopter une spécification issue de son rival Facebook. Résultat : la plupart des sites doivent encore aujourd'hui dupliquer à la fois les balises og: et twitter:, ce qui explique en partie pourquoi des outils comme ce validateur restent utiles.</p> <div class="related-trivia"> <p class="related-trivia-label"> <svg class="svg-icon-inline" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-books" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M5 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -14" /> <path d="M9 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -14" /> <path d="M5 8h4" /> <path d="M9 16h4" /> <path d="M13.803 4.56l2.184 -.53c.562 -.135 1.133 .19 1.282 .732l3.695 13.418a1.02 1.02 0 0 1 -.634 1.219l-.133 .041l-2.184 .53c-.562 .135 -1.133 -.19 -1.282 -.732l-3.695 -13.418a1.02 1.02 0 0 1 .634 -1.219l.133 -.041" /> <path d="M14 9l4 -1" /> <path d="M16 16l3.923 -.98" /> </svg> Lire les anecdotes connexes </p> <ul class="related-trivia-list"> <li> <a href="https://toolbase.cc/fr/dev/seo/jsonld_validator"> <svg class="svg-icon-inline" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-chevron-right" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M9 6l6 6l-6 6" /> </svg> <span>Anecdote — Pourquoi JSON-LD a remplacé Microdata et RDFa</span> </a> </li> <li> <a href="https://toolbase.cc/fr/dev/server/security_headers_checker"> <svg class="svg-icon-inline" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-chevron-right" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M9 6l6 6l-6 6" /> </svg> <span>Anecdote — securityheaders.com et l'histoire de la défense contre le clickjacking</span> </a> </li> </ul> </div> <div class="trivia-collection-link"> <a href="https://toolbase.cc/fr/trivia"> <svg class="svg-icon-inline" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-library" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M7 5.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666" /> <path d="M4.012 7.26a2.005 2.005 0 0 0 -1.012 1.737v10c0 1.1 .9 2 2 2h10c.75 0 1.158 -.385 1.5 -1" /> <path d="M11 7h5" /> <path d="M11 10h6" /> <path d="M11 13h3" /> </svg> Voir toutes les anecdotes </a> </div> </div> </div> </div> </div> <div class="container"> <div class="row mt-4 section-related"> <div class="col-md-12"> <p class="related-tools-label">Les personnes ayant consulté cet outil ont aussi consulté</p> <div class="row g-3"> <div class="col-6 col-md-4 col-lg-2"> <a href="https://toolbase.cc/fr/dev/seo/robots_txt" class="text-decoration-none tool-card-link" title="Collez le contenu de votre robots.txt pour vérifier sa syntaxe. Analyse les directives User-agent, Disallow, Allow et Sitemap, et visualise les règles d'accès pour les robots d'exploration."> <div class="card h-100 border shadow-sm tool-card"> <div class="card-body p-3"> <div class="d-flex align-items-start gap-2"> <span class="tool-card-icon flex-shrink-0" style="color:#6f42c1"> <svg class="tool-card-icon-svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-robot" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M6 6a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2l0 -4" /> <path d="M12 2v2" /> <path d="M9 12v9" /> <path d="M15 12v9" /> <path d="M5 16l4 -2" /> <path d="M15 14l4 2" /> <path d="M9 18h6" /> <path d="M10 8v.01" /> <path d="M14 8v.01" /> </svg> </span> <div class="flex-grow-1 min-w-0"> <p class="mb-1 fw-semibold text-dark" style="font-size:.9rem">Validateur robots.txt</p> <p class="mb-0 text-muted small">Collez le contenu de votre robots.txt pour vérifier sa syntaxe. Analyse les directives User-agent, Disallow, Allow et Sitemap, et visualise les règles d'accès pour les robots d'exploration.</p> </div> </div> </div> </div> </a> </div> <div class="col-6 col-md-4 col-lg-2"> <a href="https://toolbase.cc/fr/dev/seo/sitemap_validator" class="text-decoration-none tool-card-link" title="Collez votre sitemap.xml pour le valider selon sitemaps.org : namespace urlset, élément loc obligatoire, format de lastmod/priority et la limite de 50 000 URL de Google."> <div class="card h-100 border shadow-sm tool-card"> <div class="card-body p-3"> <div class="d-flex align-items-start gap-2"> <span class="tool-card-icon flex-shrink-0" style="color:#6f42c1"> <svg class="tool-card-icon-svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-sitemap" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M3 17a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2l0 -2" /> <path d="M15 17a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2l0 -2" /> <path d="M9 5a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2l0 -2" /> <path d="M6 15v-1a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v1" /> <path d="M12 9l0 3" /> </svg> </span> <div class="flex-grow-1 min-w-0"> <p class="mb-1 fw-semibold text-dark" style="font-size:.9rem">Validateur de Sitemap.xml</p> <p class="mb-0 text-muted small">Collez votre sitemap.xml pour le valider selon sitemaps.org : namespace urlset, élément loc obligatoire, format de lastmod/priority et la limite de 50 000 URL de Google.</p> </div> </div> </div> </div> </a> </div> <div class="col-6 col-md-4 col-lg-2"> <a href="https://toolbase.cc/fr/dev/seo/jsonld_validator" class="text-decoration-none tool-card-link" title="Collez du HTML ou du JSON-LD brut pour valider les données structurées FAQPage, BreadcrumbList et Article. Repérez instantanément les propriétés obligatoires manquantes et les erreurs courantes des résultats enrichis de Google."> <div class="card h-100 border shadow-sm tool-card"> <div class="card-body p-3"> <div class="d-flex align-items-start gap-2"> <span class="tool-card-icon flex-shrink-0" style="color:#6f42c1"> <svg class="tool-card-icon-svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-schema" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M5 2h5v4h-5l0 -4" /> <path d="M15 10h5v4h-5l0 -4" /> <path d="M5 18h5v4h-5l0 -4" /> <path d="M5 10h5v4h-5l0 -4" /> <path d="M10 12h5" /> <path d="M7.5 6v4" /> <path d="M7.5 14v4" /> </svg> </span> <div class="flex-grow-1 min-w-0"> <p class="mb-1 fw-semibold text-dark" style="font-size:.9rem">Validateur de données structurées JSON-LD</p> <p class="mb-0 text-muted small">Collez du HTML ou du JSON-LD brut pour valider les données structurées FAQPage, BreadcrumbList et Article. Repérez instantanément les propriétés obligatoires manquantes et les erreurs courantes des résultats enrichis de...</p> </div> </div> </div> </div> </a> </div> <div class="col-6 col-md-4 col-lg-2"> <a href="https://toolbase.cc/fr/dev/seo/ads_txt" class="text-decoration-none tool-card-link" title="Collez le contenu de votre ads.txt pour vérifier instantanément sa syntaxe. Valide ligne par ligne les champs DOMAIN, PUBLISHER_ID et RELATIONSHIP (DIRECT/RESELLER), pour vous aider à configurer correctement ce fichier essentiel contre la revente non autorisée d'inventaire publicitaire (usurpation de domaine)."> <div class="card h-100 border shadow-sm tool-card"> <div class="card-body p-3"> <div class="d-flex align-items-start gap-2"> <span class="tool-card-icon flex-shrink-0" style="color:#6f42c1"> <svg class="tool-card-icon-svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-ad-2" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M11.933 5h-6.933v16h13v-8" /> <path d="M14 17h-5" /> <path d="M9 13h5v-4h-5v4" /> <path d="M15 5v-2" /> <path d="M18 6l2 -2" /> <path d="M19 9h2" /> </svg> </span> <div class="flex-grow-1 min-w-0"> <p class="mb-1 fw-semibold text-dark" style="font-size:.9rem">Validateur ads.txt</p> <p class="mb-0 text-muted small">Collez le contenu de votre ads.txt pour vérifier instantanément sa syntaxe. Valide ligne par ligne les champs DOMAIN, PUBLISHER_ID et RELATIONSHIP (DIRECT/RESELLER), pour vous aider à configurer correctement ce fichier e...</p> </div> </div> </div> </div> </a> </div> <div class="col-6 col-md-4 col-lg-2"> <a href="https://toolbase.cc/fr/dev/seo/hreflang_validator" class="text-decoration-none tool-card-link" title="Collez les balises hreflang de votre <head> HTML pour détecter automatiquement les erreurs SEO multilingues courantes : absence de x-default, absence d'auto-référencement, codes de langue invalides et déclarations en double."> <div class="card h-100 border shadow-sm tool-card"> <div class="card-body p-3"> <div class="d-flex align-items-start gap-2"> <span class="tool-card-icon flex-shrink-0" style="color:#6f42c1"> <svg class="tool-card-icon-svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-world-www" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M19.5 7a9 9 0 0 0 -7.5 -4a8.991 8.991 0 0 0 -7.484 4" /> <path d="M11.5 3a16.989 16.989 0 0 0 -1.826 4" /> <path d="M12.5 3a16.989 16.989 0 0 1 1.828 4" /> <path d="M19.5 17a9 9 0 0 1 -7.5 4a8.991 8.991 0 0 1 -7.484 -4" /> <path d="M11.5 21a16.989 16.989 0 0 1 -1.826 -4" /> <path d="M12.5 21a16.989 16.989 0 0 0 1.828 -4" /> <path d="M2 10l1 4l1.5 -4l1.5 4l1 -4" /> <path d="M17 10l1 4l1.5 -4l1.5 4l1 -4" /> <path d="M9.5 10l1 4l1.5 -4l1.5 4l1 -4" /> </svg> </span> <div class="flex-grow-1 min-w-0"> <p class="mb-1 fw-semibold text-dark" style="font-size:.9rem">Validateur de balises Hreflang</p> <p class="mb-0 text-muted small">Collez les balises hreflang de votre <head> HTML pour détecter automatiquement les erreurs SEO multilingues courantes : absence de x-default, absence d'auto-référencement, codes de langue invalides et déclarations en dou...</p> </div> </div> </div> </div> </a> </div> <div class="col-6 col-md-4 col-lg-2"> <a href="https://toolbase.cc/fr/dev/seo/manifest_validator" class="text-decoration-none tool-card-link" title="Collez le contenu de votre manifest.json pour vérifier s'il répond aux conditions d'installation d'une PWA. Vérifie les champs requis comme name, start_url, display et icons, et signale l'absence d'icônes maskable dans une liste claire."> <div class="card h-100 border shadow-sm tool-card"> <div class="card-body p-3"> <div class="d-flex align-items-start gap-2"> <span class="tool-card-icon flex-shrink-0" style="color:#6f42c1"> <svg class="tool-card-icon-svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-app-window" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10" /> <path d="M6 8h.01" /> <path d="M9 8h.01" /> </svg> </span> <div class="flex-grow-1 min-w-0"> <p class="mb-1 fw-semibold text-dark" style="font-size:.9rem">Validateur de Web App Manifest (manifest.json)</p> <p class="mb-0 text-muted small">Collez le contenu de votre manifest.json pour vérifier s'il répond aux conditions d'installation d'une PWA. Vérifie les champs requis comme name, start_url, display et icons, et signale l'absence d'icônes maskable dans u...</p> </div> </div> </div> </div> </a> </div> </div> </div> </div> </div> </main> <footer> <div class="container mt-4"> <div class="row"> <div class="col-12"> <div class="d-flex align-items-center gap-3 my-3"> <hr class="flex-grow-1 m-0"> <img src="https://toolbase.cc/img/toolkun-up.png" alt="" style="height:40px; opacity:.75;"> <hr class="flex-grow-1 m-0"> </div> <p class="text-center text-secondary small mt-3 mb-3">Les résultats de calcul et les informations de ce site sont fournis à titre indicatif uniquement. Nous ne garantissons pas leur exactitude et déclinons toute responsabilité pour les dommages pouvant résulter de leur utilisation.</p> <p class="text-center mb-3"> <a href="https://toolbase.cc/fr/about" class="text-muted small me-3">À propos de Toolbase</a> <a href="https://toolbase.cc/fr/feedback?tool=dev.seo.ogp_validator" class="text-muted small me-3">Retour d'expérience</a> <a href="https://toolbase.cc/fr/terms" class="text-muted small me-3">Conditions d'utilisation</a> <a href="https://toolbase.cc/fr/privacy" class="text-muted small me-3">Politique de confidentialité</a> <a href="https://toolbase.cc/fr/licenses" class="text-muted small me-3">Licences open source</a> <a href="#" onclick="showCookieSettings(); return false;" class="text-muted small">Paramètres des cookies</a> </p> <p class="text-center mb-3" style="font-size:.75rem;"> <a href="https://toolbase.cc/dev/seo/ogp_validator" hreflang="ja" class="text-muted">日本語</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/en/dev/seo/ogp_validator" hreflang="en" class="text-muted">English</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/zh/dev/seo/ogp_validator" hreflang="zh" class="text-muted">简体中文</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/zh-Hant/dev/seo/ogp_validator" hreflang="zh-Hant" class="text-muted">繁體中文</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/es/dev/seo/ogp_validator" hreflang="es" class="text-muted">Español</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/pt/dev/seo/ogp_validator" hreflang="pt" class="text-muted">Português</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/de/dev/seo/ogp_validator" hreflang="de" class="text-muted">Deutsch</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/fr/dev/seo/ogp_validator" hreflang="fr" class="text-body fw-semibold">Français</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/it/dev/seo/ogp_validator" hreflang="it" class="text-muted">Italiano</a> <span class="text-muted mx-1">|</span> <a href="https://toolbase.cc/ko/dev/seo/ogp_validator" hreflang="ko" class="text-muted">한국어</a> </p> <p class="text-center"> <a href="https://codebase.co.jp" target="_blank" class="text-muted" style="font-size:.75rem; opacity:.6;">Codebase Inc.</a> </p> </div> </div> </div> </footer> <div class="modal fade" id="toolSearchModal" tabindex="-1" aria-hidden="true" data-endpoint="https://toolbase.cc/fr/search-index.json" data-error-message="La liste des outils n'a pas pu être chargée. Veuillez vérifier votre connexion et réessayer."> <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered"> <div class="modal-content"> <div class="modal-header border-bottom-0"> <div class="input-group"> <span class="input-group-text bg-white border-end-0"><svg class="svg-icon-inline text-muted" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-search" > <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" /> <path d="M21 21l-6 -6" /> </svg></span> <input type="text" id="toolSearchInput" class="form-control border-start-0" placeholder="Rechercher des outils..." autocomplete="off"> </div> <button type="button" class="btn-close ms-2" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body p-0"> <ul id="toolSearchResults" class="list-group list-group-flush"></ul> <p id="toolSearchEmpty" class="text-muted text-center py-4 px-3 d-none mb-0">Aucun outil correspondant trouvé</p> </div> </div> </div> </div> <div id="toastContainer" class="toast-container position-fixed bottom-0 end-0 p-3" style="z-index: 1090"></div> <link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/app-DJY5gZmy.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/bootstrap.bundle.min-CYJJg-x7.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/rolldown-runtime-DAXXjFlN.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/favorites-CHkhC6V5.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/toast-wr68XIKP.js" /><script type="module" src="https://toolbase.cc/build/assets/app-DJY5gZmy.js"></script> <link rel="preload" as="style" href="https://toolbase.cc/build/assets/index-CU7vBhfN.css" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/index-BQgUPmBB2.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/vue.esm-bundler-CZulxOyf.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/rolldown-runtime-DAXXjFlN.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/_plugin-vue_export-helper-BDNMzG2s.js" /><link rel="modulepreload" as="script" href="https://toolbase.cc/build/assets/csrf-DLdgo79t.js" /><link rel="stylesheet" href="https://toolbase.cc/build/assets/index-CU7vBhfN.css" /><script type="module" src="https://toolbase.cc/build/assets/index-BQgUPmBB2.js"></script></body> </html>