URL analysée
https://docs.dappbooster.dev
Score AI-Ready
Insuffisant
sur 100
Économie de tokens
Détail du score
Protocoles émergents
0 sur 3 détectésEndpoints well-known recherchés par les agents IA. Détecté signifie qu’un agent peut découvrir et se connecter automatiquement à votre service.
-
OAuth Discovery RFC 8414
/.well-known/oauth-authorization-server -
MCP Server Card Anthropic
/.well-known/mcp.json -
A2A Agent Card Google
/.well-known/agent.json
Votre site ne supporte pas Markdown for Agents. Ce standard Cloudflare permet aux agents IA de demander du contenu en format markdown, réduisant l'utilisation de tokens de ~80%.
Comment implémenter
Implémentez un ou plusieurs : (1) Répondre à Accept: text/markdown avec du contenu markdown. (2) Servir des URLs .md (ex : /page.md). (3) Ajouter des balises <link rel="alternate" type="text/markdown">. (4) Ajouter des en-têtes HTTP Link pour la découverte markdown.
Aucun sitemap trouvé. Un sitemap aide les AI agents à découvrir toutes les pages de votre site.
Comment implémenter
Créez un /sitemap.xml listant toutes vos pages publiques. La plupart des CMS peuvent le générer automatiquement.
Aucune directive Content-Signal trouvée. Celles-ci indiquent aux agents IA comment ils peuvent utiliser votre contenu (indexation, entrée IA, données d'entraînement). L'emplacement recommandé est robots.txt.
Comment implémenter
Ajoutez Content-Signal à votre robots.txt : User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Vous pouvez aussi l'ajouter comme en-tête HTTP sur les réponses markdown.
De nombreux éléments ont des attributs de style en ligne. Ils ajoutent du bruit pour les AI agents lors de l’extraction du contenu.
Comment implémenter
Déplacez tous les styles en ligne vers des classes CSS dans votre feuille de style. Utilisez des frameworks CSS utilitaires comme Tailwind si vous avez besoin de nombreux styles uniques.
Votre page a un faible ratio de contenu réel par rapport au HTML total. Une grande partie du poids de la page est du balisage, des scripts ou des styles plutôt que du contenu.
Comment implémenter
Déplacez le CSS vers des feuilles de style externes, supprimez les styles en ligne, minimisez le JavaScript et assurez-vous que le HTML se concentre sur la structure du contenu.
Aucune donnée structurée Schema.org trouvée. JSON-LD aide les AI agents à extraire des informations factuelles et structurées de vos pages.
Comment implémenter
Ajoutez un bloc <script type="application/ld+json"> avec du balisage Schema.org. Utilisez les types appropriés : Article pour les billets de blog, Product pour les produits, Organization pour la page de votre entreprise.
Balises Open Graph manquantes ou incomplètes. Les balises OG aident les AI agents (et les plateformes sociales) à comprendre le titre, la description et l’image de votre page.
Comment implémenter
Ajoutez les balises meta og:title, og:description et og:image dans le <head> de votre page.
Aucune meta description trouvée. Cette balise fournit un résumé concis de la page pour les AI agents et les moteurs de recherche.
Comment implémenter
Ajoutez une balise <meta name="description" content="..."> avec une description de 150 à 160 caractères sur le contenu de la page.
Certaines images manquent de texte alternatif descriptif. De bons textes alt aident les AI agents à comprendre le contenu et le contexte des images.
Comment implémenter
Ajoutez des attributs alt descriptifs à toutes les images. Décrivez ce que l’image montre, pas juste « image » ou « photo ». Pour les images décoratives, utilisez alt="" (vide).
Le contenu principal apparaît tardivement dans le document HTML. Les AI agents peuvent accorder plus d’importance au contenu qui apparaît tôt.
Comment implémenter
Restructurez votre HTML pour que le contenu <main> ou <article> apparaisse avant les barres latérales et le contenu supplémentaire.
 dAppBooster is a [repository template](https://github.com/BootNodeDev/dAppBooster), a starter-kit for boosting the development of decentralized applications (dApps). It is built onto the last tools available such us [React](https://react.dev/), [Typescript](https://www.typescriptlang.org/), [Wagmi](https://wagmi.sh/), [viem](https://viem.sh/), [@tanstank-query](https://tanstack.com/query/latest), [@tanstank-query](https://tanstack.com/router/latest), [vite](https://vitejs.dev/). Learn more about the [stack](https://docs.dappbooster.dev/advanced/stack). This template provides developers with a solid foundation, including essential configurations and tools for integrating with blockchain networks. By using [dAppBooster](https://demo.dappbooster.dev/), developers can quickly scaffold new dApps with a standardized setup, ensuring best practices for security, scalability, and efficiency are embedded from the start. It includes a ready-to-use development environment and whether you're building DeFi apps, or other blockchain solutions, dAppBooster saves time making it easier to launch robust blockchain-based applications. Whether you're a beginner or an experienced blockchain developer, dAppBooster provides a reliable, scalable starting point that takes care of much of the initial setup, letting you focus on building unique features for your dApp. Its flexibility makes it suitable for a wide range of blockchain-based applications, from simple token systems to complex decentralized ecosystems. After more than five years of making decentralized apps, our team at [BootNode](https://bootnode.dev/) has put together a simple yet powerful toolkit. This toolkit is designed to tackle the common hurdles and big decisions that come up when building dApps. It makes starting a new dApp smoother, cutting down on both time and complexity while focusing on developer experience, stability, bundle size, and performance. Here are some main features this starter-kit provides: - **Structure:** a flexible structure to handle contracts, ABIS, subgraphs and common decentralized components. - **Multi-chain:** native support and configuration to work with multiple chains with automatic type safe and super intuitive. - **Wallets connectivity:** native support to work with [connectkit](https://docs.family.co/connectkit), [rainbowkit](https://www.rainbowkit.com/), [web3modal](https://github.com/WalletConnect/web3modal); including [porto](https://porto.sh/sdk) SDK integration . - **Decentralized components:** Tree-shakable components that any dApp needs. - **Subgraphs:** multi-chain subgraphs support with auto generated typed hooks to query data.
dAppBooster Are you an LLM? Read [llms.txt](https://docs.dappbooster.dev/llms.txt) for a summary of the docs, or [llms-full.txt](https://docs.dappbooster.dev/llms-full.txt) for the full context. [Skip to content](https://docs.dappbooster.dev/#vocs-content) [](https://docs.dappbooster.dev/) [ ](https://x.com/bootnodedev) [ ](https://github.com/BootNodeDev/dAppBooster) [ ](https://t.me/dAppBooster) Search... [](https://docs.dappbooster.dev/) [](https://docs.dappbooster.dev/) Menu Introduction On this page [ Ask in ChatGPT](https://chatgpt.com/?hints=search&q=) # dAppBooster[ ](https://docs.dappbooster.dev/#dappbooster)  ## Why dAppBooster[ ](https://docs.dappbooster.dev/#why-dappbooster) dAppBooster is a [repository template](https://github.com/BootNodeDev/dAppBooster), a starter-kit for boosting the development of decentralized applications (dApps). It is built onto the last tools available such us [React](https://react.dev/), [Typescript](https://www.typescriptlang.org/), [Wagmi](https://wagmi.sh/), [viem](https://viem.sh/), [@tanstank-query](https://tanstack.com/query/latest), [@tanstank-query](https://tanstack.com/router/latest), [vite](https://vitejs.dev/). Learn more about the [stack](https://docs.dappbooster.dev/advanced/stack). This template provides developers with a solid foundation, including essential configurations and tools for integrating with blockchain networks. By using [dAppBooster](https://demo.dappbooster.dev/), developers can quickly scaffold new dApps with a standardized setup, ensuring best practices for security, scalability, and efficiency are embedded from the start. **Component technical docs** You can find the components' technical documentation and examples [here](https://components.dappbooster.dev/) It includes a ready-to-use development environment and whether you're building DeFi apps, or other blockchain solutions, dAppBooster saves time making it easier to launch robust blockchain-based applications. Whether you're a beginner or an experienced blockchain developer, dAppBooster provides a reliable, scalable starting point that takes care of much of the initial setup, letting you focus on building unique features for your dApp. Its flexibility makes it suitable for a wide range of blockchain-based applications, from simple token systems to complex decentralized ecosystems. After more than five years of making decentralized apps, our team at [BootNode](https://bootnode.dev/) has put together a simple yet powerful toolkit. This toolkit is designed to tackle the common hurdles and big decisions that come up when building dApps. It makes starting a new dApp smoother, cutting down on both time and complexity while focusing on developer experience, stability, bundle size, and performance. Here are some main features this starter-kit provides: - **Structure:** a flexible structure to handle contracts, ABIS, subgraphs and common decentralized components. - **Multi-chain:** native support and configuration to work with multiple chains with automatic type safe and super intuitive. - **Wallets connectivity:** native support to work with [connectkit](https://docs.family.co/connectkit), [rainbowkit](https://www.rainbowkit.com/), [web3modal](https://github.com/WalletConnect/web3modal); including [porto](https://porto.sh/sdk) SDK integration . - **Decentralized components:** Tree-shakable components that any dApp needs. - **Subgraphs:** multi-chain subgraphs support with auto generated typed hooks to query data.
Téléversez ce fichier sous /index.md sur votre serveur pour que les AI agents puissent accéder à une version propre de votre page. Vous pouvez également configurer la négociation de contenu Accept: text/markdown pour le servir automatiquement.
Notre recommandation
# docs.dappbooster.dev ## Documentation - [llms.txt](https://docs.dappbooster.dev/llms.txt) - [llms-full.txt](https://docs.dappbooster.dev/llms-full.txt) - [Skip to content](https://docs.dappbooster.dev/) - [Installation](https://docs.dappbooster.dev/introduction/installation) - [Introduction](https://docs.dappbooster.dev/components/introduction) - [My First dapp](https://docs.dappbooster.dev/recipes/my-first-dapp) - [Subgraphs](https://docs.dappbooster.dev/recipes/subgraphs) - [Subgraph plugin](https://docs.dappbooster.dev/advanced/subgraph-plugin) - [Networks](https://docs.dappbooster.dev/advanced/networks) - [Manual installation](https://docs.dappbooster.dev/advanced/manual-installation) - [Tech Stack](https://docs.dappbooster.dev/advanced/stack) ## Main - [dAppBooster](https://docs.dappbooster.dev) - [Introduction](https://docs.dappbooster.dev/) - [Installation](https://docs.dappbooster.dev/introduction/installation) - [Introduction](https://docs.dappbooster.dev/components/introduction) - [My First dapp](https://docs.dappbooster.dev/recipes/my-first-dapp) - [Subgraphs](https://docs.dappbooster.dev/recipes/subgraphs) - [Subgraph plugin](https://docs.dappbooster.dev/advanced/subgraph-plugin) - [Networks](https://docs.dappbooster.dev/advanced/networks) - [Manual installation](https://docs.dappbooster.dev/advanced/manual-installation)
Le llms.txt complet nécessite une analyse de tout le domaine (bientôt disponible)
Téléversez ce fichier vers https://docs.dappbooster.dev/llms.txt à la racine de votre domaine. Les AI agents comme ChatGPT, Claude et Perplexity consultent ce fichier pour comprendre la structure de votre site.
Ce site possède déjà un fichier llms.txt.
Format valide# dAppBooster > A modern starter kit built with React to quickly get started with your next web3 project. ## Docs - [Building your first dApp](/recipes/my-first-dapp): Wrapping and Unwrapping WETH - [Subgraphs](/recipes/subgraphs): **Initial setup** - [Installation](/introduction/installation): Getting started with dAppBooster in just a few minutes - [Introduction](/components/introduction): This section is a work in progress - [Manual Installation](/advanced/manual-installation): In case the installation script doesn't fit your needs these are the steps to perform a manual installation. - [Networks](/advanced/networks): To add / remove / edit a network supported by the dApp you can do it directly in the `networks.config.ts` file. - [Tech Stack](/advanced/stack): **Overview** - [dAppBooster Subgraph Plugin](/advanced/subgraph-plugin): This package provides a flexible and reusable solution for generating [GraphQL](https://graphql.org/) clients using `@graphql-codegen/cli`, integrated with `@tanstack/react-query`.
HTML sémantique
Has <article>
Clean heading hierarchy
13 semantic elements, 73 divs (ratio: 15%)
2/5 images with meaningful alt text
Avg div depth: 4.2, max: 7
Efficacité du contenu
94% token reduction (HTML→Markdown)
Content ratio: 8.4% (2151 content chars / 25648 HTML bytes)
45/212 elements with inline styles (21.2%)
HTML size: 25KB
Visibilité IA
llms.txt exists and is valid
robots.txt exists
All major AI bots allowed
No sitemap found
Données structurées
No JSON-LD / Schema.org found
1/3 OG tags present
No meta description
No canonical URL
lang="en"
Accessibilité
Content available without JavaScript
Page size: 25KB
Main content starts at 68% of HTML
{
"url": "https://docs.dappbooster.dev",
"timestamp": 1779112518813,
"fetch": {
"mode": "simple",
"timeMs": 77,
"htmlSizeBytes": 25648,
"supportsMarkdown": false,
"markdownAgents": {
"contentNegotiation": false,
"mdUrl": {
"found": false,
"url": null
},
"linkTag": {
"found": false,
"url": null
},
"linkHeader": {
"found": false,
"url": null
},
"responseHeaders": {
"contentSignal": null,
"xMarkdownTokens": null,
"vary": null
},
"frontmatter": {
"present": false,
"fields": [],
"level": "none"
},
"level": "none"
},
"statusCode": 200
},
"extraction": {
"title": "dAppBooster",
"excerpt": "",
"byline": null,
"siteName": null,
"lang": "en",
"contentLength": 2151,
"metadata": {
"description": null,
"ogTitle": "dAppBooster",
"ogDescription": null,
"ogImage": null,
"ogType": "website",
"canonical": null,
"lang": "en",
"schemas": [],
"robotsMeta": null,
"author": null,
"generator": null,
"markdownAlternateHref": null
}
},
"markdown": "\n\ndAppBooster is a [repository template](https://github.com/BootNodeDev/dAppBooster), a starter-kit for boosting the development of decentralized applications (dApps). It is built onto the last tools available such us [React](https://react.dev/), [Typescript](https://www.typescriptlang.org/), [Wagmi](https://wagmi.sh/), [viem](https://viem.sh/), [@tanstank-query](https://tanstack.com/query/latest), [@tanstank-query](https://tanstack.com/router/latest), [vite](https://vitejs.dev/). Learn more about the [stack](https://docs.dappbooster.dev/advanced/stack).\n\nThis template provides developers with a solid foundation, including essential configurations and tools for integrating with blockchain networks. By using [dAppBooster](https://demo.dappbooster.dev/), developers can quickly scaffold new dApps with a standardized setup, ensuring best practices for security, scalability, and efficiency are embedded from the start.\n\nIt includes a ready-to-use development environment and whether you're building DeFi apps, or other blockchain solutions, dAppBooster saves time making it easier to launch robust blockchain-based applications.\n\nWhether you're a beginner or an experienced blockchain developer, dAppBooster provides a reliable, scalable starting point that takes care of much of the initial setup, letting you focus on building unique features for your dApp. Its flexibility makes it suitable for a wide range of blockchain-based applications, from simple token systems to complex decentralized ecosystems.\n\nAfter more than five years of making decentralized apps, our team at [BootNode](https://bootnode.dev/) has put together a simple yet powerful toolkit. This toolkit is designed to tackle the common hurdles and big decisions that come up when building dApps. It makes starting a new dApp smoother, cutting down on both time and complexity while focusing on developer experience, stability, bundle size, and performance. Here are some main features this starter-kit provides:\n\n- **Structure:** a flexible structure to handle contracts, ABIS, subgraphs and common decentralized components.\n- **Multi-chain:** native support and configuration to work with multiple chains with automatic type safe and super intuitive.\n- **Wallets connectivity:** native support to work with [connectkit](https://docs.family.co/connectkit), [rainbowkit](https://www.rainbowkit.com/), [web3modal](https://github.com/WalletConnect/web3modal); including [porto](https://porto.sh/sdk) SDK integration .\n- **Decentralized components:** Tree-shakable components that any dApp needs.\n- **Subgraphs:** multi-chain subgraphs support with auto generated typed hooks to query data.\n",
"fullPageMarkdown": "dAppBooster Are you an LLM? Read [llms.txt](https://docs.dappbooster.dev/llms.txt) for a summary of the docs, or [llms-full.txt](https://docs.dappbooster.dev/llms-full.txt) for the full context.\n\n[Skip to content](https://docs.dappbooster.dev/#vocs-content)\n\n[](https://docs.dappbooster.dev/)\n\n[\n\n](https://x.com/bootnodedev)\n\n[\n\n](https://github.com/BootNodeDev/dAppBooster)\n\n[\n\n](https://t.me/dAppBooster)\n\nSearch...\n\n[](https://docs.dappbooster.dev/)\n\n[](https://docs.dappbooster.dev/)\n\nMenu\n\nIntroduction\n\nOn this page\n\n[\n\nAsk in ChatGPT](https://chatgpt.com/?hints=search&q=)\n\n# dAppBooster[\n\n](https://docs.dappbooster.dev/#dappbooster)\n\n\n\n## Why dAppBooster[\n\n](https://docs.dappbooster.dev/#why-dappbooster)\n\ndAppBooster is a [repository template](https://github.com/BootNodeDev/dAppBooster), a starter-kit for boosting the development of decentralized applications (dApps). It is built onto the last tools available such us [React](https://react.dev/), [Typescript](https://www.typescriptlang.org/), [Wagmi](https://wagmi.sh/), [viem](https://viem.sh/), [@tanstank-query](https://tanstack.com/query/latest), [@tanstank-query](https://tanstack.com/router/latest), [vite](https://vitejs.dev/). Learn more about the [stack](https://docs.dappbooster.dev/advanced/stack).\n\nThis template provides developers with a solid foundation, including essential configurations and tools for integrating with blockchain networks. By using [dAppBooster](https://demo.dappbooster.dev/), developers can quickly scaffold new dApps with a standardized setup, ensuring best practices for security, scalability, and efficiency are embedded from the start.\n\n**Component technical docs**\n\nYou can find the components' technical documentation and examples [here](https://components.dappbooster.dev/)\n\nIt includes a ready-to-use development environment and whether you're building DeFi apps, or other blockchain solutions, dAppBooster saves time making it easier to launch robust blockchain-based applications.\n\nWhether you're a beginner or an experienced blockchain developer, dAppBooster provides a reliable, scalable starting point that takes care of much of the initial setup, letting you focus on building unique features for your dApp. Its flexibility makes it suitable for a wide range of blockchain-based applications, from simple token systems to complex decentralized ecosystems.\n\nAfter more than five years of making decentralized apps, our team at [BootNode](https://bootnode.dev/) has put together a simple yet powerful toolkit. This toolkit is designed to tackle the common hurdles and big decisions that come up when building dApps. It makes starting a new dApp smoother, cutting down on both time and complexity while focusing on developer experience, stability, bundle size, and performance. Here are some main features this starter-kit provides:\n\n- **Structure:** a flexible structure to handle contracts, ABIS, subgraphs and common decentralized components.\n- **Multi-chain:** native support and configuration to work with multiple chains with automatic type safe and super intuitive.\n- **Wallets connectivity:** native support to work with [connectkit](https://docs.family.co/connectkit), [rainbowkit](https://www.rainbowkit.com/), [web3modal](https://github.com/WalletConnect/web3modal); including [porto](https://porto.sh/sdk) SDK integration .\n- **Decentralized components:** Tree-shakable components that any dApp needs.\n- **Subgraphs:** multi-chain subgraphs support with auto generated typed hooks to query data.\n",
"markdownStats": {
"images": 1,
"links": 15,
"tables": 0,
"codeBlocks": 0,
"headings": 0
},
"tokens": {
"htmlTokens": 9422,
"markdownTokens": 588,
"reduction": 8834,
"reductionPercent": 94
},
"score": {
"score": 58,
"grade": "D",
"dimensions": {
"semanticHtml": {
"score": 81,
"weight": 20,
"grade": "B",
"checks": {
"uses_article_or_main": {
"score": 100,
"weight": 20,
"details": "Has <article>"
},
"proper_heading_hierarchy": {
"score": 100,
"weight": 25,
"details": "Clean heading hierarchy"
},
"semantic_elements": {
"score": 50,
"weight": 20,
"details": "13 semantic elements, 73 divs (ratio: 15%)"
},
"meaningful_alt_texts": {
"score": 40,
"weight": 15,
"details": "2/5 images with meaningful alt text"
},
"low_div_nesting": {
"score": 100,
"weight": 20,
"details": "Avg div depth: 4.2, max: 7"
}
}
},
"contentEfficiency": {
"score": 63,
"weight": 25,
"grade": "C",
"checks": {
"token_reduction_ratio": {
"score": 100,
"weight": 40,
"details": "94% token reduction (HTML→Markdown)"
},
"content_to_noise_ratio": {
"score": 25,
"weight": 30,
"details": "Content ratio: 8.4% (2151 content chars / 25648 HTML bytes)"
},
"minimal_inline_styles": {
"score": 0,
"weight": 15,
"details": "45/212 elements with inline styles (21.2%)"
},
"reasonable_page_weight": {
"score": 100,
"weight": 15,
"details": "HTML size: 25KB"
}
}
},
"aiDiscoverability": {
"score": 45,
"weight": 25,
"grade": "D",
"checks": {
"has_llms_txt": {
"score": 100,
"weight": 20,
"details": "llms.txt exists and is valid"
},
"has_robots_txt": {
"score": 100,
"weight": 10,
"details": "robots.txt exists"
},
"robots_allows_ai_bots": {
"score": 100,
"weight": 15,
"details": "All major AI bots allowed"
},
"has_sitemap": {
"score": 0,
"weight": 10,
"details": "No sitemap found"
},
"supports_markdown_negotiation": {
"score": 0,
"weight": 25,
"details": "No Markdown for Agents support detected"
},
"has_content_signals": {
"score": 0,
"weight": 20,
"details": "No Content-Signal found (robots.txt or HTTP headers)"
}
}
},
"structuredData": {
"score": 18,
"weight": 15,
"grade": "F",
"checks": {
"has_schema_org": {
"score": 0,
"weight": 30,
"details": "No JSON-LD / Schema.org found"
},
"has_open_graph": {
"score": 33,
"weight": 25,
"details": "1/3 OG tags present"
},
"has_meta_description": {
"score": 0,
"weight": 20,
"details": "No meta description"
},
"has_canonical_url": {
"score": 0,
"weight": 15,
"details": "No canonical URL"
},
"has_lang_attribute": {
"score": 100,
"weight": 10,
"details": "lang=\"en\""
}
}
},
"accessibility": {
"score": 78,
"weight": 15,
"grade": "B",
"checks": {
"content_without_js": {
"score": 100,
"weight": 40,
"details": "Content available without JavaScript"
},
"reasonable_page_size": {
"score": 100,
"weight": 30,
"details": "Page size: 25KB"
},
"fast_content_position": {
"score": 25,
"weight": 30,
"details": "Main content starts at 68% of HTML"
}
}
}
}
},
"recommendations": [
{
"id": "add_markdown_negotiation",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_markdown_negotiation.title",
"descriptionKey": "rec.add_markdown_negotiation.description",
"howToKey": "rec.add_markdown_negotiation.howto",
"effort": "significant",
"estimatedImpact": 6,
"checkScore": 0,
"checkDetails": "No Markdown for Agents support detected"
},
{
"id": "add_sitemap",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_sitemap.title",
"descriptionKey": "rec.add_sitemap.description",
"howToKey": "rec.add_sitemap.howto",
"effort": "quick-win",
"estimatedImpact": 5,
"checkScore": 0,
"checkDetails": "No sitemap found"
},
{
"id": "add_content_signals",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_content_signals.title",
"descriptionKey": "rec.add_content_signals.description",
"howToKey": "rec.add_content_signals.howto",
"effort": "quick-win",
"estimatedImpact": 5,
"checkScore": 0,
"checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
},
{
"id": "remove_inline_styles",
"priority": "critical",
"category": "contentEfficiency",
"titleKey": "rec.remove_inline_styles.title",
"descriptionKey": "rec.remove_inline_styles.description",
"howToKey": "rec.remove_inline_styles.howto",
"effort": "moderate",
"estimatedImpact": 3,
"checkScore": 0,
"checkDetails": "45/212 elements with inline styles (21.2%)"
},
{
"id": "improve_content_ratio",
"priority": "high",
"category": "contentEfficiency",
"titleKey": "rec.improve_content_ratio.title",
"descriptionKey": "rec.improve_content_ratio.description",
"howToKey": "rec.improve_content_ratio.howto",
"effort": "moderate",
"estimatedImpact": 6,
"checkScore": 25,
"checkDetails": "Content ratio: 8.4% (2151 content chars / 25648 HTML bytes)"
},
{
"id": "add_schema_org",
"priority": "high",
"category": "structuredData",
"titleKey": "rec.add_schema_org.title",
"descriptionKey": "rec.add_schema_org.description",
"howToKey": "rec.add_schema_org.howto",
"effort": "moderate",
"estimatedImpact": 6,
"checkScore": 0,
"checkDetails": "No JSON-LD / Schema.org found"
},
{
"id": "add_open_graph",
"priority": "high",
"category": "structuredData",
"titleKey": "rec.add_open_graph.title",
"descriptionKey": "rec.add_open_graph.description",
"howToKey": "rec.add_open_graph.howto",
"effort": "quick-win",
"estimatedImpact": 4,
"checkScore": 33,
"checkDetails": "1/3 OG tags present"
},
{
"id": "add_meta_description",
"priority": "high",
"category": "structuredData",
"titleKey": "rec.add_meta_description.title",
"descriptionKey": "rec.add_meta_description.description",
"howToKey": "rec.add_meta_description.howto",
"effort": "quick-win",
"estimatedImpact": 4,
"checkScore": 0,
"checkDetails": "No meta description"
},
{
"id": "improve_alt_texts",
"priority": "high",
"category": "semanticHtml",
"titleKey": "rec.improve_alt_texts.title",
"descriptionKey": "rec.improve_alt_texts.description",
"howToKey": "rec.improve_alt_texts.howto",
"effort": "moderate",
"estimatedImpact": 4,
"checkScore": 40,
"checkDetails": "2/5 images with meaningful alt text"
},
{
"id": "move_content_earlier",
"priority": "high",
"category": "accessibility",
"titleKey": "rec.move_content_earlier.title",
"descriptionKey": "rec.move_content_earlier.description",
"howToKey": "rec.move_content_earlier.howto",
"effort": "moderate",
"estimatedImpact": 4,
"checkScore": 25,
"checkDetails": "Main content starts at 68% of HTML"
}
],
"llmsTxtPreview": "# docs.dappbooster.dev\n\n## Documentation\n- [llms.txt](https://docs.dappbooster.dev/llms.txt)\n- [llms-full.txt](https://docs.dappbooster.dev/llms-full.txt)\n- [Skip to content](https://docs.dappbooster.dev/)\n- [Installation](https://docs.dappbooster.dev/introduction/installation)\n- [Introduction](https://docs.dappbooster.dev/components/introduction)\n- [My First dapp](https://docs.dappbooster.dev/recipes/my-first-dapp)\n- [Subgraphs](https://docs.dappbooster.dev/recipes/subgraphs)\n- [Subgraph plugin](https://docs.dappbooster.dev/advanced/subgraph-plugin)\n- [Networks](https://docs.dappbooster.dev/advanced/networks)\n- [Manual installation](https://docs.dappbooster.dev/advanced/manual-installation)\n- [Tech Stack](https://docs.dappbooster.dev/advanced/stack)\n\n## Main\n- [dAppBooster](https://docs.dappbooster.dev)\n- [Introduction](https://docs.dappbooster.dev/)\n- [Installation](https://docs.dappbooster.dev/introduction/installation)\n- [Introduction](https://docs.dappbooster.dev/components/introduction)\n- [My First dapp](https://docs.dappbooster.dev/recipes/my-first-dapp)\n- [Subgraphs](https://docs.dappbooster.dev/recipes/subgraphs)\n- [Subgraph plugin](https://docs.dappbooster.dev/advanced/subgraph-plugin)\n- [Networks](https://docs.dappbooster.dev/advanced/networks)\n- [Manual installation](https://docs.dappbooster.dev/advanced/manual-installation)\n\n",
"llmsTxtExisting": "# dAppBooster\n\n> A modern starter kit built with React to quickly get started with your next web3 project.\n\n## Docs\n\n- [Building your first dApp](/recipes/my-first-dapp): Wrapping and Unwrapping WETH\n- [Subgraphs](/recipes/subgraphs): **Initial setup**\n- [Installation](/introduction/installation): Getting started with dAppBooster in just a few minutes\n- [Introduction](/components/introduction): This section is a work in progress\n- [Manual Installation](/advanced/manual-installation): In case the installation script doesn't fit your needs these are the steps to perform a manual installation.\n- [Networks](/advanced/networks): To add / remove / edit a network supported by the dApp you can do it directly in the `networks.config.ts` file.\n- [Tech Stack](/advanced/stack): **Overview**\n- [dAppBooster Subgraph Plugin](/advanced/subgraph-plugin): This package provides a flexible and reusable solution for generating [GraphQL](https://graphql.org/) clients using `@graphql-codegen/cli`, integrated with `@tanstack/react-query`.",
"emergingProtocols": {
"oauthDiscovery": {
"exists": false,
"url": "https://docs.dappbooster.dev/.well-known/oauth-authorization-server"
},
"mcpServerCard": {
"exists": false,
"url": "https://docs.dappbooster.dev/.well-known/mcp.json"
},
"a2aAgentCard": {
"exists": false,
"url": "https://docs.dappbooster.dev/.well-known/agent.json"
},
"count": 0
},
"snippets": [
{
"id": "add_open_graph",
"title": "Add missing Open Graph tags",
"description": "Open Graph tags control how your page looks when shared on social media and how AI platforms preview your URL in answers.",
"language": "html",
"code": "<meta property=\"og:description\" content=\"Page description.\">\n<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://docs.dappbooster.dev\">\n<meta property=\"og:type\" content=\"website\">",
"filename": "<head>",
"stacks": [
{
"id": "html",
"label": "HTML <head>",
"language": "html",
"filename": "<head>",
"code": "<meta property=\"og:description\" content=\"Page description.\">\n<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://docs.dappbooster.dev\">\n<meta property=\"og:type\" content=\"website\">"
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// Quick Open Graph tags without a plugin (skip if Yoast / Rank Math is active)\nadd_action('wp_head', function () {\n if (!is_singular()) return;\n $post = get_queried_object();\n $title = get_the_title($post);\n $desc = get_the_excerpt($post) ?: wp_trim_words(strip_tags($post->post_content), 30);\n $image = get_the_post_thumbnail_url($post, 'large') ?: 'https://yoursite.com/og-image.jpg';\n $url = get_permalink($post);\n printf('<meta property=\"og:title\" content=\"%s\">' . \"\\n\", esc_attr($title));\n printf('<meta property=\"og:description\" content=\"%s\">' . \"\\n\", esc_attr($desc));\n printf('<meta property=\"og:image\" content=\"%s\">' . \"\\n\", esc_url($image));\n printf('<meta property=\"og:url\" content=\"%s\">' . \"\\n\", esc_url($url));\n echo '<meta property=\"og:type\" content=\"article\">' . \"\\n\";\n}, 5);"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "app/page.tsx",
"code": "// Next.js App Router — Metadata API\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: \"dAppBooster\",\n description: \"Page description.\",\n openGraph: {\n title: \"dAppBooster\",\n description: \"Page description.\",\n url: \"https://docs.dappbooster.dev\",\n images: [\"https://yoursite.com/og-image.jpg\"],\n type: 'website',\n },\n};"
}
]
},
{
"id": "add_meta_description",
"title": "Add meta description",
"description": "A good meta description (50-160 characters) helps AI agents understand your page quickly.",
"language": "html",
"code": "<meta name=\"description\" content=\"dAppBooster\">",
"filename": "<head>"
},
{
"id": "add_schema_org",
"title": "Add Schema.org JSON-LD",
"description": "Structured data helps AI agents understand the type, author, and purpose of your content.",
"language": "html",
"code": "<script type=\"application/ld+json\">\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"WebPage\",\n \"name\": \"dAppBooster\",\n \"description\": \"Page description.\",\n \"url\": \"https://docs.dappbooster.dev\",\n \"inLanguage\": \"en\"\n}\n</script>",
"filename": "<head>"
},
{
"id": "add_sitemap",
"title": "Create /sitemap.xml",
"description": "A sitemap helps AI agents discover all your pages. Most CMS platforms generate one automatically.",
"language": "xml",
"code": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url>\n <loc>https://docs.dappbooster.dev</loc>\n <lastmod>2026-05-18</lastmod>\n </url>\n</urlset>",
"filename": "/sitemap.xml"
},
{
"id": "add_content_signals",
"title": "Add Content-Signal directives",
"description": "Content-Signal tells AI agents how they may use your content. The canonical location is robots.txt, but you can also expose it as an HTTP header from any stack.",
"language": "txt",
"code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no",
"filename": "/robots.txt",
"stacks": [
{
"id": "robots",
"label": "robots.txt",
"language": "txt",
"filename": "/robots.txt",
"code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no"
},
{
"id": "nginx",
"label": "Nginx",
"language": "nginx",
"filename": "server block",
"code": "# Inside your server { } block:\nadd_header Content-Signal \"search=yes, ai-input=yes, ai-train=no\" always;"
},
{
"id": "apache",
"label": "Apache",
"language": "apache",
"filename": ".htaccess",
"code": "# In .htaccess (or VirtualHost):\nHeader set Content-Signal \"search=yes, ai-input=yes, ai-train=no\""
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// In your theme's functions.php or a small mu-plugin\nadd_action('send_headers', function () {\n header('Content-Signal: search=yes, ai-input=yes, ai-train=no');\n});\n\n// Optional: also append the directive to the dynamic robots.txt\nadd_filter('robots_txt', function ($output) {\n return $output . \"\\nContent-Signal: search=yes, ai-input=yes, ai-train=no\\n\";\n}, 10, 1);"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "middleware.ts",
"code": "// middleware.ts (Next.js 13+ App Router or Pages Router)\nimport { NextResponse } from 'next/server';\nexport function middleware() {\n const res = NextResponse.next();\n res.headers.set(\n 'Content-Signal',\n 'search=yes, ai-input=yes, ai-train=no'\n );\n return res;\n}\nexport const config = { matcher: '/:path*' };"
},
{
"id": "cloudflare",
"label": "Cloudflare Workers",
"language": "javascript",
"filename": "worker.js",
"code": "// Cloudflare Worker that proxies your origin and adds the header\nexport default {\n async fetch(request, env, ctx) {\n const res = await fetch(request);\n const newRes = new Response(res.body, res);\n newRes.headers.set(\n 'Content-Signal',\n 'search=yes, ai-input=yes, ai-train=no'\n );\n return newRes;\n },\n};"
},
{
"id": "express",
"label": "Express / Fastify",
"language": "javascript",
"filename": "server.js",
"code": "// Express\napp.use((req, res, next) => {\n res.setHeader('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n next();\n});\n\n// Fastify\nfastify.addHook('onSend', (request, reply, payload, done) => {\n reply.header('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n done();\n});"
}
]
},
{
"id": "add_markdown_negotiation",
"title": "Support Markdown for Agents",
"description": "Let AI agents request a clean Markdown version of any page via content negotiation, .md alternate URLs, link tags or Link headers.",
"language": "html",
"code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">",
"filename": "<head>",
"stacks": [
{
"id": "html",
"label": "HTML <head>",
"language": "html",
"filename": "<head>",
"code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
},
{
"id": "express",
"label": "Express",
"language": "javascript",
"filename": "server.js",
"code": "// Mechanisms 1 + 4: content negotiation + Link header\napp.get('/page', (req, res) => {\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n res.type('text/markdown; charset=utf-8');\n return res.send(renderMarkdown('page'));\n }\n res.render('page');\n});"
},
{
"id": "fastify",
"label": "Fastify",
"language": "javascript",
"filename": "server.js",
"code": "// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n reply.header('Vary', 'Accept');\n reply.header('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n }\n return reply.view('/page.ejs');\n});"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "app/page/route.ts",
"code": "// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n const accept = req.headers.get('accept') || '';\n if (accept.includes('text/markdown')) {\n return new Response(await renderMarkdown('page'), {\n headers: {\n 'Content-Type': 'text/markdown; charset=utf-8',\n 'Vary': 'Accept',\n },\n });\n }\n // Fall through to the page component\n return new Response(null, { status: 404 });\n}"
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// Mechanism 1: respond to Accept: text/markdown on the same URL\nadd_action('template_redirect', function () {\n if (!is_singular()) return;\n $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n if (strpos($accept, 'text/markdown') === false) return;\n header('Content-Type: text/markdown; charset=utf-8');\n header('Vary: Accept');\n $post = get_queried_object();\n echo \"# \" . get_the_title($post) . \"\\n\\n\";\n echo wp_strip_all_tags(apply_filters('the_content', $post->post_content));\n exit;\n});"
},
{
"id": "static",
"label": "Hugo / Jekyll / Astro",
"language": "txt",
"filename": "static/page.md",
"code": "# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in <head>:\n# <link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
}
]
}
]
}
Utilisez notre API pour obtenir ceci de manière programmatique (bientôt disponible)
Ce JSON est à usage interne — contrairement au Markdown et au llms.txt, il n’est pas destiné à être téléversé sur votre site. Conservez-le comme référence pour suivre l’évolution de votre score, partagez-le avec votre équipe de développement ou intégrez-le dans votre pipeline CI/CD.
Intégrez votre badge
Ajoutez ce badge à votre site. Il se met à jour automatiquement lorsque votre score de préparation à l’IA change.
<script src="https://agentready.md/badge.js" data-id="9d1c2f24-52cf-4413-9bd6-06f75066a06e" data-domain="docs.dappbooster.dev"></script>
[](https://agentready.md/fr/r/9d1c2f24-52cf-4413-9bd6-06f75066a06e)
Bientôt : Analyse de domaine complet
Explorez l’ensemble de votre domaine, générez un llms.txt et surveillez votre score de préparation IA dans le temps. Rejoignez la liste d’attente pour être informé.