duolingo.com

agent readiness score · scanned Aug 18, 2026 · 7s · Education

#711 of 979 · #15 in category

35/ 100F

Duolingo is a platform that helps users learn languages for free through a gamified and scientifically proven approach.

badge

Discovery 16.9/20

Access 11.5/30

Usability 2.7/40

Payments n/a

Top fixes

  1. MCP server discovery

    Publish /.well-known/mcp/server-card.json describing your MCP endpoint so agents can autodiscover it. Evidence found: none.

    +14.8
  2. Docs discoverable

    Expose public docs at /docs or docs.duolingo.com and link them from your homepage nav.

    +11.9
  3. agents.md

    Add /agents.md: what agents may do on your site, key URLs, auth, rate limits, and who to contact.

    +8.9
  4. JSON-LD structured data

    Embed Organization + WebSite JSON-LD on your homepage (name, url, logo, sameAs) and Product/Offer JSON-LD on pricing.

    +5.1
  5. llms.txt

    Serve /llms.txt as plain markdown — an HTML page there is a routing catch-all, not an llms.txt.

    +5.1
  6. Semantic HTML structure

    Add landmark elements and a clean heading hierarchy — missing: <main> landmark, <nav> landmark, <header>/<footer>, exactly one <h1> (found 0), text-to-markup ratio ≥ 0.10.

    +3.8

1.Can an agent discover and trust you?

6/8

Whether agents can crawl you, find you in the registries and searches they check, and trust what they find.

  • Sitemap present & freshrequired2/4

    Sitemap at https://www.duolingo.com/sitemap_index.xml is valid XML with 44 entries but contains no <lastmod> dates

    fix → Publish /sitemap.xml, reference it from robots.txt, and include <lastmod> dates so agents can tell what's current. Freshest lastmod seen: none.

    Resolved the sitemap from robots.txt or /sitemap.xml, validated XML, and checked lastmod freshness

    spec ↗
  • Brand search discoverabilityrequired4/4

    Both searches ("Duolingo" and "Duolingo education") cited duolingo.com: https://blog.duolingo.com/video-call-research-report/, https://www.duolingo.com/efficacy

    Ran clean brand-name web searches and checked whether your domain is cited in the results

  • MCP registry listingsrecommendedna

    No MCP server detected for this product

    Queried the official MCP registry, Smithery, Glama, and PulseMCP for servers matching your domain

    spec ↗

2.Do you welcome agents?

7/12

Whether your robots policy, bot protection, and agent guidance actively admit AI agents instead of blocking them.

  • robots.txt present & parseablerequired2/2

    /robots.txt parses: 3 User-agent group(s), 1 Sitemap line(s)

    Fetched /robots.txt and validated it parses as a robots policy

    spec ↗
  • AI crawler policyrequired5/5

    All 12 AI crawler user-agents (GPTBot, ClaudeBot, PerplexityBot, …) are allowed at / by robots.txt

    Evaluated robots.txt groups for the major AI agent user-agents (GPTBot, ClaudeBot, PerplexityBot, …)

  • Content Signals directivesemerging0/2

    No Content-Signal lines in robots.txt

    fix → Declare Content Signals in robots.txt (e.g. `Content-Signal: search=yes, ai-train=no`) to express AI usage preferences machine-readably.

    Looked for Content-Signal lines in robots.txt

    spec ↗
  • !Agent user-agent paritybetarequirederror

    Browser UA received HTTP 200 with bot-challenge markers — cannot evaluate parity (the site may be blocking our scanner)

    Compared responses served to browser and AI-agent user-agents (informational while in beta)

  • agents.mdrecommended0/3

    No agents.md: https://duolingo.com/agents.md → HTTP 200, https://duolingo.com/AGENTS.md → HTTP 200

    fix → Add /agents.md: what agents may do on your site, key URLs, auth, rate limits, and who to contact.

    Fetched /agents.md and checked for substantive agent guidance

    spec ↗

3.Does an agent understand who you are and what you do?

5/18

Whether your pages carry machine-readable identity: structured data, llms.txt, clear copy an agent can quote.

  • Homepage states what you arerequired3/3

    Homepage clarity rated 5/5 — an agent can confidently say what this company does (model's one-sentence read: "Duolingo is a platform that helps users learn languages for free through a gamified and scientifically proven approach.")

    An LLM read your homepage as an agent would and rated how confidently it could say what you do

  • OpenGraph / social metadatarecommended2/2

    Homepage has og:title, og:description, and og:image (twitter:card="summary" present)

    Parsed homepage og:title / og:description / og:image and twitter:card meta tags

    spec ↗
  • llms.txtrecommended0/4

    /llms.txt returned HTML (content-type text/html), not markdown

    fix → Serve /llms.txt as plain markdown — an HTML page there is a routing catch-all, not an llms.txt.

    Fetched /llms.txt and validated it against the llmstxt.org shape (H1, summary, curated links)

    spec ↗
  • llms-full.txtbonusrecommended0/2

    /llms-full.txt returned HTML (content-type text/html), not markdown

    fix → Serve /llms-full.txt as plain markdown, not an HTML page.

    Fetched /llms-full.txt and checked for substantial inline markdown content

    spec ↗
  • JSON-LD structured datarequired0/4

    No application/ld+json blocks found on homepage and pricing page

    fix → Embed Organization + WebSite JSON-LD on your homepage (name, url, logo, sameAs) and Product/Offer JSON-LD on pricing.

    Extracted and validated application/ld+json blocks on the homepage and pricing page

    spec ↗
  • Markdown content negotiationrecommended0/3

    GET / with `Accept: text/markdown` returned HTTP 200 text/html; no .md twins found (1 probed)

    fix → Serve text/markdown when clients send `Accept: text/markdown` (or expose .md twins of key pages) — agents get far more signal per token.

    Requested key pages with Accept: text/markdown and probed .md twin URLs

4.Can an agent integrate with you?

watch →0/9

Whether the artifacts an agent needs to build on you — docs, API specs, SDKs, MCP servers — exist and are findable.

  • Developer resource discoverabilityrecommendedna

    No public API detected

    Searched for your brand with developer-keyword suffixes and checked which official resources are cited

  • OpenAPI spec discoverablerequiredna

    No public developer API detected — API checks don't apply

    Probed standard OpenAPI locations and docs links for a fetchable, parseable spec

    spec ↗
  • Docs discoverablerequired0/4

    No docs found: probed 6 candidates (https://duolingo.com/docs, https://duolingo.com/documentation, https://duolingo.com/developers, https://duolingo.com/api, https://docs.duolingo.com/, https://developers.duolingo.com/)

    fix → Expose public docs at /docs or docs.duolingo.com and link them from your homepage nav.

    Followed homepage nav/footer links and probed /docs, /developers, docs.{domain}

  • MCP server discoveryrequired0/5

    No MCP evidence found: probed /.well-known/mcp/server-card.json, /.well-known/mcp.json, /mcp.json and scanned llms.txt, agents.md, and docs for endpoints or install commands

    fix → Publish /.well-known/mcp/server-card.json describing your MCP endpoint so agents can autodiscover it. Evidence found: none.

    Probed /.well-known/mcp/server-card.json, mcp.json, and docs mentions for an MCP endpoint

    spec ↗
  • npm SDKrecommendedna

    No public developer API detected — API checks don't apply

    Searched the npm registry for an official, domain-verified SDK package

  • PyPI SDKrecommendedna

    No public developer API detected — API checks don't apply

    Searched PyPI for an official, domain-verified SDK package

5.Is your integration well-built?

watch →

Whether your specs, docs, and tools are complete and descriptive enough for an agent to use them without guessing.

  • OpenAPI validity & qualityrecommendedna

    No public developer API detected — API checks don't apply

    Linted the spec: descriptions, operationIds, securitySchemes, servers

  • Docs qualityrecommendedna

    No documentation found to evaluate

    An LLM rated your docs for clarity, completeness, runnable examples, and agent-friendliness

  • Quickstart / getting startedrecommendedna

    No public developer API detected — API checks don't apply

    Looked for a quickstart/getting-started guide containing code blocks

  • MCP tool qualityrecommendedna

    No MCP endpoint known — tool lint requires a tools/list

    Linted listed tools for descriptions, typed input schemas, and naming

6.Can an agent use you reliably in production?

watch →3/4

Response hygiene, TLS and redirect discipline, and security contact channels agents depend on at runtime.

  • TLS & redirect hygienerequired2/2

    http://duolingo.com/ upgrades to https in 1 hop(s), 1 redirect(s) total, final HTTP 200; no HSTS header

    Checked http→https redirect behavior, chain length, and TLS health

  • Response speed & weightrequired1/1

    Homepage TTFB 36ms, payload 11KB, Content-Encoding: gzip

    Measured homepage TTFB, payload size, and compression

  • security.txtrecommended0/1

    https://duolingo.com/.well-known/security.txt returned HTTP 404

    fix → Publish RFC 9116 /.well-known/security.txt with a Contact and a future Expires.

    Fetched /.well-known/security.txt and validated Contact + Expires

    spec ↗

7.Can an agent authenticate to you?

watch →

Whether agents can discover your auth model machine-readably (OAuth metadata) and follow documented steps to credentials.

  • OAuth authorization server metadatarecommendedna

    No API or MCP server detected — OAuth metadata doesn't apply

    Fetched /.well-known/oauth-authorization-server (and openid-configuration fallback)

    spec ↗
  • OAuth protected resource metadatarecommendedna

    No API or MCP server detected — OAuth metadata doesn't apply

    Fetched /.well-known/oauth-protected-resource

    spec ↗
  • Auth documentationrecommendedna

    No public developer API detected — API checks don't apply

    Looked for /auth.md or an authentication docs page with code examples

8.Can an agent transact with you?

watch →0/5

Whether pricing is discoverable and machine-readable, and whether you support agent payment protocols.

  • Pricing discoverablerequiredna

    Product appears to be free or non-commercial — pricing checks don't apply

    Followed nav/footer links and probed /pricing for a page with legible price signals

  • Machine-readable pricingrecommendedna

    Product appears to be free or non-commercial — pricing checks don't apply

    Looked for Offer JSON-LD, then had an LLM attempt structured extraction of your plans

    spec ↗
  • x402 payment supportbonusrecommended0/2

    /.well-known/x402 returned HTTP 404. No x402 support detected (bonus check — absence costs nothing).

    fix → Support x402: serve payment requirements at /.well-known/x402, or answer unauthenticated API calls with HTTP 402 plus an x402 payment-requirements payload (x402Version, accepts[]).

    Probed /.well-known/x402 and API endpoints for HTTP 402 payment-required envelopes

    spec ↗
  • AP2 readinessemerging0/1

    No AP2 hints found — scanned llms.txt, agents.md; /.well-known/ap2 returned HTTP 404.

    fix → Adopt AP2 to accept delegated agent payments — see https://ap2-protocol.org.

    Scanned fetched artifacts and well-known paths for AP2 hints

    spec ↗
  • Agentic Commerce Protocolemerging0/1

    No Agentic Commerce Protocol hints found — scanned llms.txt, agents.md; /.well-known/acp returned HTTP 404.

    fix → Adopt the Agentic Commerce Protocol so agent checkouts can complete against your store — see https://developers.openai.com/commerce.

    Scanned docs and specs for agentic checkout endpoints

    spec ↗
  • Other agent payment protocolsbonusemerging0/1

    No UCP/MPP hints found — scanned llms.txt, agents.md.

    fix → Track emerging agent payment protocols (UCP, MPP) and adopt the ones your buyers' agents use.

    Scanned fetched artifacts for UCP/MPP protocol hints

9.Can a user act through an agent?

Whether an end user's agent can operate on their behalf: working MCP tools, published skills, agent configs.

  • Agent skill publishedbonusemergingna

    Requires the analysis phase — not yet evaluated

    Checked /skill.md, /.well-known/skills/, and skills.sh for published agent skills

  • MCP handshake & tools listrequiredna

    No MCP endpoint known — nothing to handshake with

    Performed a streamable-HTTP initialize + tools/list against the MCP endpoint

    spec ↗
  • Agent configs in public repobonusemergingna

    Requires the analysis phase — not yet evaluated

    Checked your public GitHub org's main repos for AGENTS.md / .claude / .cursor configs

10.Can an agent operate your website directly?

1/9

Whether the site itself is legible to non-rendering and browser agents: semantic HTML, no JS walls, accessibility.

  • NLWeb endpointemerging0/1

    No NLWeb endpoint detected: /.well-known/nlweb.json returned HTTP 404 (text/html); GET /ask?query=hello returned HTTP 200 (text/html)

    fix → Consider exposing an NLWeb /ask endpoint (and /.well-known/nlweb.json) for conversational access to your content.

    Probed /.well-known/nlweb.json and the /ask endpoint

    spec ↗
  • Semantic HTML structurerequired0/3

    Only 1/6 semantic signals present on the homepage (missing: <main> landmark, <nav> landmark, <header>/<footer>, exactly one <h1> (found 0), text-to-markup ratio ≥ 0.10)

    fix → Add landmark elements and a clean heading hierarchy — missing: <main> landmark, <nav> landmark, <header>/<footer>, exactly one <h1> (found 0), text-to-markup ratio ≥ 0.10.

    Scored landmark elements, heading hierarchy, and text-to-markup ratio on the homepage

  • Content readable without JavaScriptrequired0/2

    Homepage raw HTML contains only 0 chars of visible text — an empty JS shell to non-rendering clients

    fix → Your homepage is an empty JS shell to non-rendering clients (0 chars of text). Server-render or prerender key pages — most agent fetchers don't execute JavaScript.

    Measured visible text in the raw, unrendered homepage HTML

  • Accessibility basicsrequired1/2

    Homepage accessibility: 3/5 checks passed — failing: <html lang> attribute; ≥2 landmarks (found 0: none)

    fix → Failing: <html lang> attribute; ≥2 landmarks (found 0: none). The accessibility tree is what browser-operating agents see.

    Static checks: lang attribute, title, alt coverage, labeled inputs, landmarks

  • WebMCPemerging0/1

    No WebMCP evidence on homepage: no application/webmcp script and no navigator.modelContext reference

    fix → Consider WebMCP to expose page actions as tools to browser agents.

    Looked for WebMCP script declarations on the homepage

    spec ↗