Certificado AgentReady.md verificado
Emitido el sig: c9fdd64c920e6e7f Verificar →

URL analizada

https://www.dnamyname.com/

Analizar otra URL

Puntuación AI-Ready

78 / B

Bueno

de 100

Ahorro de tokens

Tokens HTML 9286
Tokens Markdown 168
Ahorro 98%

Desglose de la puntuación

HTML semántico 75/100
Eficiencia del contenido 63/100
Visibilidad para IA 77/100
Datos estructurados 85/100
Accesibilidad 100/100

Protocolos emergentes

0 de 3 detectados

Endpoints well-known que los AI agents buscan. Detectados significa que un agente puede descubrir y conectar con tu servicio automáticamente.

  • 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 estructura de encabezados tiene problemas (niveles saltados o múltiples etiquetas h1). Una jerarquía limpia ayuda a los AI agents a comprender la organización del contenido.

Cómo implementarlo

Asegúrate de tener exactamente un <h1> por página y que los encabezados sigan un orden secuencial: h1 > h2 > h3. No saltes niveles (por ejemplo, de h1 directamente a h3).

Tu página tiene un bajo ratio de contenido real respecto al HTML total. Gran parte del peso de la página es marcado, scripts o estilos en lugar de contenido.

Cómo implementarlo

Mueve el CSS a hojas de estilo externas, elimina los estilos en línea, minimiza el JavaScript y asegúrate de que el HTML se centre en la estructura del contenido.

Tu sitio no soporta Markdown for Agents. Este estándar de Cloudflare permite a los agentes IA solicitar contenido en formato markdown, reduciendo el uso de tokens en ~80%.

Cómo implementarlo

Implementa uno o más: (1) Responder a Accept: text/markdown con contenido markdown. (2) Servir URLs .md (ej: /pagina.md). (3) Añadir etiquetas <link rel="alternate" type="text/markdown">. (4) Añadir cabeceras HTTP Link para descubrimiento 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# "}] }'>

Muchos elementos tienen atributos de estilo en línea. Estos añaden ruido para los AI agents al extraer contenido.

Cómo implementarlo

Mueve todos los estilos en línea a clases CSS en tu hoja de estilos. Usa frameworks de CSS utilitario como Tailwind si necesitas muchos estilos únicos.

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

Sube este archivo como /index.md en tu servidor para que los AI agents puedan acceder a una versión limpia de tu página. También puedes configurar la negociación de contenido Accept: text/markdown para servirlo automáticamente.

Nuestra recomendación

Descargar 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)

El llms.txt completo requiere un análisis de todo el dominio (próximamente)

Sube este archivo a https://www.dnamyname.com/llms.txt en la raíz de tu dominio. Los AI agents como ChatGPT, Claude y Perplexity consultan este archivo para comprender la estructura de tu sitio.

Este sitio ya tiene un archivo llms.txt.

Formato válido
# 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 semántico

Usa elementos article o main (100/100)

Has <main>

Jerarquía de encabezados correcta (0/100)

No headings found

Usa elementos HTML semánticos (100/100)

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

Textos alternativos descriptivos en imágenes (100/100)

1/1 images with meaningful alt text

Poca profundidad de anidamiento de divs (100/100)

Avg div depth: 0.2, max: 1

Eficiencia del contenido

Buen ratio de reducción de tokens (100/100)

98% token reduction (HTML→Markdown)

Buen ratio de contenido frente a ruido (0/100)

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

Estilos en línea mínimos (50/100)

1/92 elements with inline styles (1.1%)

Peso de página razonable (100/100)

HTML size: 30KB

Visibilidad para IA

Tiene archivo llms.txt (100/100)

llms.txt exists and is valid

Tiene archivo robots.txt (100/100)

robots.txt exists

robots.txt permite bots de IA (100/100)

All major AI bots allowed

Tiene sitemap.xml (100/100)

Sitemap found

Soporte de Markdown for Agents (40/100) Cloudflare CDN
&#10003; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header
Tiene Content-Signal (robots.txt o cabeceras HTTP) (60/100)
&#10003; robots.txt &#10007; HTTP header &#10007; Policy

Datos estructurados

Tiene Schema.org / JSON-LD (50/100)

JSON-LD found but basic types: WebApplication, WebSite

Tiene etiquetas Open Graph (100/100)

All OG tags present

Tiene meta description (100/100)

Meta description: 173 chars

Tiene URL canónica (100/100)

Canonical URL present

Tiene atributo lang (100/100)

lang="en"

Accesibilidad

Contenido disponible sin JavaScript (100/100)

Content available without JavaScript

Tamaño de página razonable (100/100)

Page size: 30KB

El contenido aparece temprano en el 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\">"
        }
      ]
    }
  ]
}

Usa nuestra API para obtener esto de forma programática (próximamente)

Este JSON es para uso interno — a diferencia del Markdown y llms.txt, no está pensado para subirse a tu web. Guárdalo como referencia para seguir la evolución de tu puntuación, compártelo con tu equipo de desarrollo o intégralo en tu pipeline CI/CD.

Comparte tus resultados

Twitter LinkedIn

Incrusta tu badge

Añade este badge a tu sitio. Se actualiza automáticamente cuando cambie tu puntuación.

AgentReady.md score for www.dnamyname.com
Script Recomendado
<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/es/r/5f578328-98f6-489a-8256-1e9bb3a437be)

Próximamente: Análisis de dominio completo

Rastrea todo tu dominio, genera llms.txt y monitoriza tu puntuación de preparación para IA a lo largo del tiempo. Únete a la lista de espera para recibir notificaciones.

¡Estás en la lista! Te avisaremos cuando se lance.