Certificat AgentReady.md vérifié
Émis le sig: c9fdd64c920e6e7f Vérifier →

URL analysée

https://www.dnamyname.com/

Analyser une autre URL

Score AI-Ready

78 / B

Bon

sur 100

Économie de tokens

Tokens HTML 9286
Tokens Markdown 168
Économie 98%

Détail du score

HTML sémantique 75/100
Efficacité du contenu 63/100
Visibilité IA 77/100
Données structurées 85/100
Accessibilité 100/100

Protocoles émergents

0 sur 3 détectés

Endpoints 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

La structure de vos titres présente des problèmes (niveaux sautés ou plusieurs balises h1). Une hiérarchie propre aide les AI agents à comprendre l’organisation du contenu.

Comment implémenter

Assurez-vous d’avoir exactement un <h1> par page et que les titres suivent un ordre séquentiel : h1 > h2 > h3. Ne sautez pas de niveaux (par ex. de h1 directement à h3).

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.

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.

{\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '; 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', '; 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":"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 :\n# "}] }'>

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.

Tokens Markdown: 168
[![DNA My Name](https://www.dnamyname.com/_next/image?url=%2Fdna-my-name-sequencer.png&w=3840&q=75)](https://www.dnamyname.com/)

DNA My Name is a free biology education tool that converts any name into a unique **DNA sequence** using real **amino acid** and **codon mapping**. Enter a name to get a scientifically-plausible DNA sequence you can share or download. Learn [how the name-to-DNA algorithm works](https://www.dnamyname.com/how-it-works), explore the [codon reference table](https://www.dnamyname.com/codon-table), or compare two names with the [G.E.N.E Index](https://www.dnamyname.com/compare).

Loading...
DNA My Name - Turn Your Name Into a DNA Sequence

[![DNA My Name](https://www.dnamyname.com/_next/image?url=%2Fdna-my-name-sequencer.png&w=3840&q=75)](https://www.dnamyname.com/)

DNA My Name is a free biology education tool that converts any name into a unique **DNA sequence** using real **amino acid** and **codon mapping**. Enter a name to get a scientifically-plausible DNA sequence you can share or download. Learn [how the name-to-DNA algorithm works](https://www.dnamyname.com/how-it-works), explore the [codon reference table](https://www.dnamyname.com/codon-table), or compare two names with the [G.E.N.E Index](https://www.dnamyname.com/compare).

Loading...

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

Télécharger llms.txt
# DNA My Name

> Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool using real amino acid and codon mappings. Create shareable DNA art from names.

## Documentation
- [FAQ](https://www.dnamyname.com/faq)

## Main
- [DNA My Name - Turn Your Name Into a DNA Sequence](https://www.dnamyname.com/): Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool using real amino acid an…
- [How it works](https://www.dnamyname.com/how-it-works)
- [Codon Reference](https://www.dnamyname.com/codon-table)
- [Compare DNA](https://www.dnamyname.com/compare)
- [For educators](https://www.dnamyname.com/for-educators)

## Legal
- [Privacy](https://www.dnamyname.com/privacy)
- [Terms](https://www.dnamyname.com/terms)

## Support
- [FAQ](https://www.dnamyname.com/faq)

Le llms.txt complet nécessite une analyse de tout le domaine (bientôt disponible)

Téléversez ce fichier vers https://www.dnamyname.com/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
# DNA My Name — LLM Summary

## What this site does
DNA My Name (dnamyname.com) converts any name into a scientifically-plausible DNA sequence
using real amino acid and codon mappings from molecular biology. It is a free, serverless,
educational tool — no login, no data stored, results are deterministic and reproducible.

## Canonical URLs
- Homepage / main tool: https://dnamyname.com/
- Shared results: https://dnamyname.com/share (parameterized, not indexed by search engines)
- Name comparison (G.E.N.E Index): https://dnamyname.com/compare
- How it works: https://dnamyname.com/how-it-works
- Codon reference table: https://dnamyname.com/codon-table
- FAQ: https://dnamyname.com/faq
- For educators: https://dnamyname.com/for-educators

## Key concepts
- Each letter in a name maps to a one-letter amino acid code (20 standard amino acids)
- Six non-standard letters (B, J, O, U, X, Z) are substituted to the nearest amino acid
- Amino acids are encoded to DNA codons using the real genetic code (standard codon table)
- Codon selection is deterministic via MurmurHash3 seed + xorshift32 PRNG
- "Shuffle" increments the variant seed, changing codon choices while preserving amino acid sequence
- Results are reproducible: same name + variant always → same DNA sequence
- G.E.N.E Index: a fun DNA similarity score between two names

## Use cases
- Educational tool for teaching the central dogma of molecular biology
- Classroom demonstrations of DNA coding, codon redundancy, and amino acids
- Fun personalized gift or conversation starter
- Science communication and outreach

## Accuracy notes
- Uses real standard genetic code (codon table)
- Sequences are scientifically-plausible but entirely fictional
- Not a genetic testing or ancestry tool
- Not a representation of any real person's DNA

## Content Negotiation
Requests with `Accept: text/markdown` receive a markdown version of any page
(Content-Type: text/markdown). Estimated token count is available in the
`x-markdown-tokens` response header.

## Full technical details
See: https://dnamyname.com/llms-full.txt

## Disclaimer
For educational and novelty purposes only. Real biology, creative interpretation — not a real genetic test.

HTML sémantique

Utilise les éléments article ou main (100/100)

Has <main>

Hiérarchie de titres correcte (0/100)

No headings found

Utilise des éléments HTML sémantiques (100/100)

4 semantic elements, 6 divs (ratio: 40%)

Textes alternatifs descriptifs pour les images (100/100)

1/1 images with meaningful alt text

Faible profondeur d’imbrication des divs (100/100)

Avg div depth: 0.2, max: 1

Efficacité du contenu

Bon ratio de réduction de tokens (100/100)

98% token reduction (HTML→Markdown)

Bon ratio contenu/bruit (0/100)

Content ratio: 1.3% (406 content chars / 30922 HTML bytes)

Styles en ligne minimaux (50/100)

1/92 elements with inline styles (1.1%)

Poids de page raisonnable (100/100)

HTML size: 30KB

Visibilité IA

Possède un fichier llms.txt (100/100)

llms.txt exists and is valid

Possède un fichier robots.txt (100/100)

robots.txt exists

robots.txt autorise les bots IA (100/100)

All major AI bots allowed

Possède un sitemap.xml (100/100)

Sitemap found

Support Markdown for Agents (40/100) Cloudflare CDN
&#10003; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header
A Content-Signal (robots.txt ou en-têtes HTTP) (60/100)
&#10003; robots.txt &#10007; HTTP header &#10007; Policy

Données structurées

Possède Schema.org / JSON-LD (50/100)

JSON-LD found but basic types: WebApplication, WebSite

Possède des balises Open Graph (100/100)

All OG tags present

Possède une meta description (100/100)

Meta description: 173 chars

Possède une URL canonique (100/100)

Canonical URL present

Possède un attribut lang (100/100)

lang="en"

Accessibilité

Contenu disponible sans JavaScript (100/100)

Content available without JavaScript

Taille de page raisonnable (100/100)

Page size: 30KB

Le contenu apparaît tôt dans le HTML (100/100)

Main content starts at 19% of HTML

{
  "url": "https://www.dnamyname.com/",
  "timestamp": 1776695970058,
  "fetch": {
    "mode": "simple",
    "timeMs": 242,
    "htmlSizeBytes": 30922,
    "supportsMarkdown": true,
    "markdownAgents": {
      "contentNegotiation": true,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": false,
        "url": null
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": "124",
        "vary": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch"
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "cloudflare"
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "DNA My Name - Turn Your Name Into a DNA Sequence",
    "excerpt": "Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool.",
    "byline": null,
    "siteName": "DNA My Name",
    "lang": "en",
    "contentLength": 406,
    "metadata": {
      "description": "Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool using real amino acid and codon mappings. Create shareable DNA art from names.",
      "ogTitle": "DNA My Name - Turn Your Name Into a DNA Sequence",
      "ogDescription": "Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool.",
      "ogImage": "https://www.dnamyname.com/api/og?n=Your+Name",
      "ogType": "website",
      "canonical": "https://www.dnamyname.com",
      "lang": "en",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "WebApplication",
          "name": "DNA My Name",
          "description": "Transform any name into a unique, scientifically-plausible DNA sequence using real amino acid and codon mappings.",
          "url": "https://www.dnamyname.com",
          "applicationCategory": "EducationalApplication",
          "operatingSystem": "Any",
          "offers": {
            "@type": "Offer",
            "price": "0",
            "priceCurrency": "USD"
          }
        },
        {
          "@context": "https://schema.org",
          "@type": "WebSite",
          "name": "DNA My Name",
          "url": "https://www.dnamyname.com",
          "description": "Transform any name into a unique, scientifically-plausible DNA sequence using real amino acid and codon mappings.",
          "potentialAction": {
            "@type": "SearchAction",
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "https://www.dnamyname.com/?n={search_term_string}"
            },
            "query-input": "required name=search_term_string"
          }
        }
      ],
      "robotsMeta": "index, follow",
      "author": null,
      "generator": null,
      "markdownAlternateHref": null
    }
  },
  "markdown": "[![DNA My Name](https://www.dnamyname.com/_next/image?url=%2Fdna-my-name-sequencer.png&w=3840&q=75)](https://www.dnamyname.com/)\n\nDNA My Name is a free biology education tool that converts any name into a unique **DNA sequence** using real **amino acid** and **codon mapping**. Enter a name to get a scientifically-plausible DNA sequence you can share or download. Learn [how the name-to-DNA algorithm works](https://www.dnamyname.com/how-it-works), explore the [codon reference table](https://www.dnamyname.com/codon-table), or compare two names with the [G.E.N.E Index](https://www.dnamyname.com/compare).\n\nLoading...\n",
  "fullPageMarkdown": "DNA My Name - Turn Your Name Into a DNA Sequence\n\n[![DNA My Name](https://www.dnamyname.com/_next/image?url=%2Fdna-my-name-sequencer.png&w=3840&q=75)](https://www.dnamyname.com/)\n\nDNA My Name is a free biology education tool that converts any name into a unique **DNA sequence** using real **amino acid** and **codon mapping**. Enter a name to get a scientifically-plausible DNA sequence you can share or download. Learn [how the name-to-DNA algorithm works](https://www.dnamyname.com/how-it-works), explore the [codon reference table](https://www.dnamyname.com/codon-table), or compare two names with the [G.E.N.E Index](https://www.dnamyname.com/compare).\n\nLoading...\n",
  "markdownStats": {
    "images": 1,
    "links": 8,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 0
  },
  "tokens": {
    "htmlTokens": 9286,
    "markdownTokens": 168,
    "reduction": 9118,
    "reductionPercent": 98
  },
  "score": {
    "score": 78,
    "grade": "B",
    "dimensions": {
      "semanticHtml": {
        "score": 75,
        "weight": 20,
        "grade": "B",
        "checks": {
          "uses_article_or_main": {
            "score": 100,
            "weight": 20,
            "details": "Has <main>"
          },
          "proper_heading_hierarchy": {
            "score": 0,
            "weight": 25,
            "details": "No headings found"
          },
          "semantic_elements": {
            "score": 100,
            "weight": 20,
            "details": "4 semantic elements, 6 divs (ratio: 40%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "details": "1/1 images with meaningful alt text"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 20,
            "details": "Avg div depth: 0.2, max: 1"
          }
        }
      },
      "contentEfficiency": {
        "score": 63,
        "weight": 25,
        "grade": "C",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "details": "98% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 0,
            "weight": 30,
            "details": "Content ratio: 1.3% (406 content chars / 30922 HTML bytes)"
          },
          "minimal_inline_styles": {
            "score": 50,
            "weight": 15,
            "details": "1/92 elements with inline styles (1.1%)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 15,
            "details": "HTML size: 30KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 77,
        "weight": 25,
        "grade": "B",
        "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": 100,
            "weight": 10,
            "details": "Sitemap found"
          },
          "supports_markdown_negotiation": {
            "score": 40,
            "weight": 25,
            "details": "CDN level (Cloudflare) — Content negotiation"
          },
          "has_content_signals": {
            "score": 60,
            "weight": 20,
            "details": "robots.txt: ai-train=yes, search=yes, ai-input=yes"
          }
        }
      },
      "structuredData": {
        "score": 85,
        "weight": 15,
        "grade": "B",
        "checks": {
          "has_schema_org": {
            "score": 50,
            "weight": 30,
            "details": "JSON-LD found but basic types: WebApplication, WebSite"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 25,
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "details": "Meta description: 173 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "details": "lang=\"en\""
          }
        }
      },
      "accessibility": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 40,
            "details": "Content available without JavaScript"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 30,
            "details": "Page size: 30KB"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 30,
            "details": "Main content starts at 19% of HTML"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "fix_heading_hierarchy",
      "priority": "critical",
      "category": "semanticHtml",
      "titleKey": "rec.fix_heading_hierarchy.title",
      "descriptionKey": "rec.fix_heading_hierarchy.description",
      "howToKey": "rec.fix_heading_hierarchy.howto",
      "effort": "quick-win",
      "estimatedImpact": 6,
      "checkScore": 0,
      "checkDetails": "No headings found"
    },
    {
      "id": "improve_content_ratio",
      "priority": "critical",
      "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": 0,
      "checkDetails": "Content ratio: 1.3% (406 content chars / 30922 HTML bytes)"
    },
    {
      "id": "add_markdown_negotiation",
      "priority": "high",
      "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": 40,
      "checkDetails": "CDN level (Cloudflare) — Content negotiation"
    },
    {
      "id": "remove_inline_styles",
      "priority": "medium",
      "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": 50,
      "checkDetails": "1/92 elements with inline styles (1.1%)"
    }
  ],
  "llmsTxtPreview": "# DNA My Name\n\n> Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool using real amino acid and codon mappings. Create shareable DNA art from names.\n\n## Documentation\n- [FAQ](https://www.dnamyname.com/faq)\n\n## Main\n- [DNA My Name - Turn Your Name Into a DNA Sequence](https://www.dnamyname.com/): Transform any name into a unique, scientifically-plausible DNA sequence. Free educational tool using real amino acid an…\n- [How it works](https://www.dnamyname.com/how-it-works)\n- [Codon Reference](https://www.dnamyname.com/codon-table)\n- [Compare DNA](https://www.dnamyname.com/compare)\n- [For educators](https://www.dnamyname.com/for-educators)\n\n## Legal\n- [Privacy](https://www.dnamyname.com/privacy)\n- [Terms](https://www.dnamyname.com/terms)\n\n## Support\n- [FAQ](https://www.dnamyname.com/faq)\n\n",
  "llmsTxtExisting": "# DNA My Name — LLM Summary\n\n## What this site does\nDNA My Name (dnamyname.com) converts any name into a scientifically-plausible DNA sequence\nusing real amino acid and codon mappings from molecular biology. It is a free, serverless,\neducational tool — no login, no data stored, results are deterministic and reproducible.\n\n## Canonical URLs\n- Homepage / main tool: https://dnamyname.com/\n- Shared results: https://dnamyname.com/share (parameterized, not indexed by search engines)\n- Name comparison (G.E.N.E Index): https://dnamyname.com/compare\n- How it works: https://dnamyname.com/how-it-works\n- Codon reference table: https://dnamyname.com/codon-table\n- FAQ: https://dnamyname.com/faq\n- For educators: https://dnamyname.com/for-educators\n\n## Key concepts\n- Each letter in a name maps to a one-letter amino acid code (20 standard amino acids)\n- Six non-standard letters (B, J, O, U, X, Z) are substituted to the nearest amino acid\n- Amino acids are encoded to DNA codons using the real genetic code (standard codon table)\n- Codon selection is deterministic via MurmurHash3 seed + xorshift32 PRNG\n- \"Shuffle\" increments the variant seed, changing codon choices while preserving amino acid sequence\n- Results are reproducible: same name + variant always → same DNA sequence\n- G.E.N.E Index: a fun DNA similarity score between two names\n\n## Use cases\n- Educational tool for teaching the central dogma of molecular biology\n- Classroom demonstrations of DNA coding, codon redundancy, and amino acids\n- Fun personalized gift or conversation starter\n- Science communication and outreach\n\n## Accuracy notes\n- Uses real standard genetic code (codon table)\n- Sequences are scientifically-plausible but entirely fictional\n- Not a genetic testing or ancestry tool\n- Not a representation of any real person's DNA\n\n## Content Negotiation\nRequests with `Accept: text/markdown` receive a markdown version of any page\n(Content-Type: text/markdown). Estimated token count is available in the\n`x-markdown-tokens` response header.\n\n## Full technical details\nSee: https://dnamyname.com/llms-full.txt\n\n## Disclaimer\nFor educational and novelty purposes only. Real biology, creative interpretation — not a real genetic test.",
  "emergingProtocols": {
    "oauthDiscovery": {
      "exists": false,
      "url": "https://www.dnamyname.com/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://www.dnamyname.com/.well-known/mcp.json"
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://www.dnamyname.com/.well-known/agent.json"
    },
    "count": 0
  },
  "snippets": [
    {
      "id": "fix_heading_hierarchy",
      "title": "Fix heading hierarchy",
      "description": "Your page has no <h1>. Every page needs exactly one <h1> as the main heading. Add it inside your <main> or <article>.",
      "language": "html",
      "code": "<h1>DNA My Name - Turn Your Name Into a DNA Sequence</h1>",
      "filename": "<main> or <article>"
    },
    {
      "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.

Partagez vos résultats

Twitter LinkedIn

Intégrez votre badge

Ajoutez ce badge à votre site. Il se met à jour automatiquement lorsque votre score de préparation à l’IA change.

AgentReady.md score for www.dnamyname.com
Script Recommandé
<script src="https://agentready.md/badge.js" data-id="5f578328-98f6-489a-8256-1e9bb3a437be" data-domain="www.dnamyname.com"></script>
Markdown
[![AgentReady.md score for www.dnamyname.com](https://agentready.md/badge/www.dnamyname.com.svg)](https://agentready.md/fr/r/5f578328-98f6-489a-8256-1e9bb3a437be)

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é.

Vous êtes sur la liste ! Nous vous préviendrons lors du lancement.