Agent Experiences

What an AI Agent Sees on Duolingo's Home Page

By Alan WeibelPublished 5 min read

Duolingo's home page scored 27 out of 100 on our Agent Analyzer when we scanned it on 17 October 2026. The reason is one line long: the HTML the server sends contains no text. Everything a visitor reads is drawn by JavaScript after the page loads.

This is the first in a series. Every two weeks we scan one well-known page, say what it does well, list what an agent trips over, and describe what each fix would change. The scan is the same one anyone can run, and the subject was picked from our State of Agent Readiness benchmark of 100 home pages.

One page is not a company. We scanned https://www.duolingo.com/ and nothing else, so this says nothing about Duolingo's blog, its course pages, or the app.

What Duolingo's home page does well

The foundations are in good order, and several of them are things most of the benchmark got wrong.

So a system that only reads the <head> gets a fair summary. The trouble starts in the <body>.

The one problem behind most of the others

The response is 11 KB of HTML with an empty #root container and zero characters of readable text. No headline, no paragraph, no link to a course.

We fetched the page four ways to make sure the scanner was not being singled out: under its own name, with a desktop Chrome user-agent string, and with the strings Googlebot and GPTBot send. All four returned the same empty shell. A caveat on that test: we were sending those strings from our own network, and a site can treat the real Googlebot differently from an imitation.

Google's crawler runs JavaScript, so Google search is probably unaffected. Most AI crawlers do not, which our technical guide covers. An agent asked "what does Duolingo offer?" that fetches this page has the title, the description, and nothing else to quote.

Four other failed checks follow directly from the empty body:

The fix. Send the home page's words in the server response. That means server-side rendering or a pre-rendered static version of the marketing page, with the interactive parts attached afterwards. The sign-up flow can stay exactly as it is.

What it would change. An agent would read the same page a person does, without needing a browser. The headline would arrive as an H1, the sections as headings, and the four checks above would resolve with it. This is the only fix on the list that changes what an agent can say about Duolingo. The rest change how confidently it can say it.

Three smaller fixes

Add structured data. The page has no JSON-LD. An Organization block with the name, logo, and a contact route, plus a WebSite block, would state in machine-readable form who publishes the page. We would not oversell this one: the evidence that structured data improves AI citations is contested, as our schema markup guide sets out. Treat it as removing guesswork.

Decide about AI crawlers on purpose. robots.txt has rules for paths but names no AI crawler, so being cited in AI answers, being used for training, and being fetched by a person's agent all get the same default. 56 of the 73 readable sites in our benchmark were in the same position. Writing separate rules for search crawlers and training crawlers would let Duolingo stay in AI answers while choosing whether its content trains models. Our AI opt-out guide has the crawler names.

Date the sitemap. None of the 103 sitemap URLs has a lastmod date. With real dates, crawlers can tell which pages changed and fetch those first.

There is also a small one in the <head>: the page title is only the site name. A title that says what the page offers gives a system one more line to decide with before it reads anything else.

What we cannot tell you

We have not predicted a new score, because the scanner would need to see the rendered page to mark the checks that are hidden behind the empty body. We also cannot say that a higher score would bring Duolingo more citations or more traffic. The score measures how easily an agent can read and attribute a page. Nothing in it predicts what an AI system chooses to cite.

Duolingo may also have decided this on purpose. A home page that exists to start a sign-up has little to gain from being quoted. If that is the reasoning, the cost is still worth knowing: a page that says nothing to an agent leaves the description of your product to whoever else wrote about it.