agentspeed.

typescriptlang.org

scanned 7/25/2026, 8:40:22 PM · cached · refresh in 20h · rubric 2026.07.4
Built with Gatsby
robots.txt present: failrobots.txt allows AI agents: passContent-Signal directives: failllms.txt present: warnSitemap present: failLink response headers: failCanonical URL: failMCP server card: failOAuth authorization metadata: failOAuth resource metadata: failAPI catalog / OpenAPI: failWeb Bot Auth: failMarkdown negotiation: failText-to-markup ratio: failContent without JavaScript: skipHeading hierarchy: passCookie wall blocks content: passPage title: passMeta description: passJSON-LD present: failStructured data validates: skipSchema type coverage: failPaywall / login wall: passAgent Skills manifest: failWebMCP actions: failPrimary action reachable: passReachability: passTime to first byte: passFull render time: skipPage weight: pass56/ 100 · F
At risk

This is how AI agents (not browsers) experience typescriptlang.org. The score weights five categories of machine-readability; the ticks on the arc are the 30 individual checks behind it.

✉ Email me this report + alert me when it changes ↓

Top fixes

failSitemap presentDiscoverability

No reachable sitemap.xml. Publish one and reference it in robots.txt.

Fix · Gatsby: Publish /sitemap.xml and reference it from robots.txt with a Sitemap: line.

failCanonical URLDiscoverability

No <link rel="canonical"> tag in <head>. Agents use canonical URLs to dedupe and cite.

Fix · Gatsby: Add <link rel="canonical" href="…"> pointing at the primary URL of each page.

failJSON-LD presentStructured data

No JSON-LD blocks found. Add a <script type="application/ld+json"> with a schema.org type for this page.

Fix · Gatsby: Add a <script type="application/ld+json"> describing the page (Organization, Article, Product, FAQPage).

failrobots.txt presentDiscoverability

No reachable robots.txt at the site root. Publish one so agents can discover your crawl policy and sitemap.

Fix: Add a `/robots.txt` file at the site root. Even an allow-all file signals intent to agents.

warnllms.txt presentDiscoverability

Found /llms.txt but missing H1 header and markdown links.

Fix · Gatsby: Publish /llms.txt at your domain root. Build a spec-compliant one at /tools/llms-txt-generator.

failLink response headersDiscoverability

No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.

Fix: Emit `Link:` headers for canonical, alternate-language, and describedby relations. Agents that fetch HEAD-only or stream-render rely on these.

Don’t lose this report

Get it in your inbox now — and a heads-up whenever typescriptlang.org’s agent-readiness score changes. Free, unsubscribe anytime.

Fix it

Generated, ready-to-ship files for the gaps above — copy them or download and drop them into your repo.

Add an llms.txt
Publish this at https://typescriptlang.org/llms.txt
# TypeScript: JavaScript With Syntax For Types.

> TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code.

## Key pages
- [Home](https://typescriptlang.org/)
- [TypeScript is JavaScript with syntax for types.](https://typescriptlang.org/)
- [What is TypeScript?](https://typescriptlang.org/)
- [Get Started](https://typescriptlang.org/)
- [Adopt TypeScript Gradually](https://typescriptlang.org/)
- [TypeScript becomes JavaScript via the delete key.](https://typescriptlang.org/)
- [TypeScript Testimonials](https://typescriptlang.org/)

## About
Describe what typescriptlang.org does, who it's for, and the primary action you want an
agent to be able to complete. Keep it factual and current.

What the agent receives

The agent’s-eye view
TypeScript: JavaScript With Syntax For Types. Skip to main content TypeScript Download Docs Handbook Community Playground Tools in En TypeScript is JavaScript with syntax for types. TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale. Try TypeScript Now Online or via npm Editor Checks Auto-complete Interfaces JSX ts const user = { firstName : "Angela" , lastName : "Davis" , role : "Professor" , } &nbsp; console . log ( user . name ) Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'. 2339 Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'. &nbsp; ts const user = { firstName : "Angela" , lastName : "Davis" , role : "Professor" , } &nbsp; console . log ( user . name ) Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'. 2339 Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'. &nbsp; TypeScript 7.0 is now available What is TypeScript? JavaScript and More TypeScript adds additional syntax to JavaScript to support a tighter integration with your editor . Catch errors early in your editor. A Result You Can Trust TypeScript code converts to JavaScript, which runs anywhere JavaScript runs : In a browser, on Node.js, Deno, Bun and in your apps. Safety at Scale TypeScript understands JavaScript and uses type inference to give you great tooling without additional code. Get Started Handbook Learn the language Playground Try in your browser Download Install TypeScript Adopt TypeScript Gradually Apply types to your JavaScript project incrementally, each step improves editor support and improves your codebase. Let&#x27;s take this incorrect JavaScript code, and see how TypeScript can catch mistakes in your editor . js function compact ( arr ) { if ( orr . length &gt; 10 ) return arr . trim ( 0 , 10 ) return arr } No editor warnings in JavaScript files This code crashes at runtime! JavaScript file js // @ts-check &nbsp; function compact ( arr ) { if ( orr . length &gt; 10 ) Cannot find name 'orr'. 2304 Cannot find name 'orr'. return arr . trim ( 0 , 10 ) return arr } Adding this to a JS file shows errors in your editor the param is arr, not orr! JavaScript with TS Check js // @ts-check &nbsp; /** @param {any[]} arr */ function compact ( arr ) { if ( arr . .length: number' >length &gt; 10 ) return arr . trim ( 0 , 10 ) Property 'trim' does not exist on type 'any[]'. 2339 Property 'trim' does not exist on type 'any[]'. return arr } Using JSDoc to give type information Now TS has found a bad call. Arrays have slice, not trim. JavaScript with JSDoc ts function compact ( arr : string []) { if ( arr . .length: number' >length &gt; 10 ) return arr . .slice(start?: number | undefined, end?: number | undefined): string[]' >slice ( 0 , 10 ) return arr } TypeScript adds natural syntax for providing types TypeScript file Describe Your Data Describe the shape of objects and functions in your code. Making it possible to see documentation and issues in your editor . ts interface Account { id : number displayName : string version : 1 } &nbsp; function welcome ( user : Account ) { console . log ( user . id ) } ts type Result = "pass" | "fail" &nbsp; function verify ( result : Result ) { if ( result === "pass" ) { console . log ( "Passed" ) } else { console . log ( "Failed" ) } } TypeScript becomes JavaScript via the delete key. ts type Result = "pass" | "fail" &nbsp; function verify ( result : Result ) { if ( result === "pass" ) { console . log ( "Passed" ) } else { console . log ( "Failed" ) } } &nbsp; TypeScript file . ts type Result = "pass" | "fail" &nbsp; function verify ( result : Result ) { if ( result === "pass" ) { console . log ( "Passed" ) } else { console . log ( "Failed" ) } } &nbsp; Types are removed . js &nbsp; &nbsp; function verify ( result ) { if ( result === "pass" ) { console . log ( "Passed" ) } else { console . log ( "Failed" ) } } &nbsp; JavaScript file . TypeScript Testimonials First , we were surprised by the number of small bugs we found when converting our code. Second , we underestimated how powerful the editor integration is. TypeScript was such a boon to our stability and sanity that we started using it for all new code within days of starting the conversion. Felix Rieseberg at Slack covered the transition of their desktop app from JavaScript to TypeScript in their blog Read Open Source with TypeScript Angular Vue Jest Redux Ionic Probot Deno Vercel Yarn GitHub Desktop Loved by Developers Voted 2nd most loved programming language in the Stack Overflow 2020 Developer survey TypeScript was used by 78% of the 2020 State of JS respondents, with 93% saying they would use it again . TypeScript was given the award for “Most Adopted Technology” based on year-on-year growth. Get Started Handbook Learn the language Playground Try in your browser Download Install TypeScript Made with ♥ in Redmond, Boston, SF &amp; Dublin © 2012- 2026 Microsoft Privacy Terms of Use Using TypeScript Get Started Download Community Playground TSConfig Ref Code Samples Why TypeScript Design Community Get Help Blog GitHub Repo Community Chat @TypeScript Mastodon Stack Overflow Web Repo MSG

Show your score

Embed this badge on your site. It links back to this live scan and updates on every rescan.

AgentSpeed score for typescriptlang.org
<a href="https://agentspeed.com/scan/typescriptlang.org"><img src="https://agentspeed.com/badge/typescriptlang.org" alt="AgentSpeed agent-readiness score" height="56"></a>

Track this score

Get this report by email, then a heads-up when typescriptlang.org’s agent-readiness actually changes — a check regressing, or the composite dropping.

Two things never trigger an email: a score change caused by us publishing a new rubric, because that is a different instrument rather than a change to your site, and movement explained only by timing-derived checks, which shift run to run on a site nobody touched.

Want it on your own schedule, with Slack or a webhook instead of email? Score-drift monitoring is on every paid plan.

Full breakdown

10 pass1 warn16 fail3 skip
Discoverability
fail
robots.txt present
No reachable robots.txt at the site root. Publish one so agents can discover your crawl policy and sitemap.
0/100
pass
robots.txt allows AI agents
All 8 answer-time access agents allowed.
100/100
fail
Content-Signal directivesemerging
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
0/100
warn
llms.txt present
Found /llms.txt but missing H1 header and markdown links.
60/100
fail
Sitemap present
No reachable sitemap.xml. Publish one and reference it in robots.txt.
0/100
fail
Link response headers
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
0/100
fail
Canonical URL
No <link rel="canonical"> tag in <head>. Agents use canonical URLs to dedupe and cite.
0/100
fail
MCP server cardemerging
No valid MCP Server Card at /.well-known/mcp/server-card.json. Publish one so agents can discover your tools without HTML scraping.
0/100
fail
OAuth authorization metadataemerging
No RFC 8414 metadata at /.well-known/oauth-authorization-server. Agents that act on behalf of users need this to discover your authorization endpoints.
0/100
fail
OAuth resource metadataemerging
No RFC 9728 metadata at /.well-known/oauth-protected-resource. Publish it so agents can discover required scopes without hand-coded credentials.
0/100
fail
API catalog / OpenAPIemerging
No /.well-known/api-catalog (RFC 9727) and no /openapi.json|yaml. Publish one so agents that integrate with APIs can discover your endpoints.
0/100
fail
Web Bot Authemerging
No Web Bot Auth JWKS at /.well-known/http-message-signatures-directory.json. Publish one to allow trusted agents while keeping a default-deny posture for the rest.
0/100
Readability
fail
Markdown negotiationemerging
Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.
0/100
fail
Text-to-markup ratio
Visible text is 2.0% of HTML weight (5299/258828 bytes). Low. Markup may be crowding out agent-usable text.
15/100
skip
Content without JavaScript
Browser pass unavailable; cannot measure JS dependency.
pass
Heading hierarchy
Hierarchy is well-formed (1 H1, no skipped levels, 15 headings total).
100/100
pass
Cookie wall blocks content
No common consent-modal markers detected.
100/100
pass
Page title
A concise <title> is present (45 chars).
100/100
pass
Meta description
A well-sized meta description is present (181 chars).
100/100
Structured data
fail
JSON-LD present
No JSON-LD blocks found. Add a <script type="application/ld+json"> with a schema.org type for this page.
0/100
skip
Structured data validates
No JSON-LD blocks present; nothing to validate (covered by structured_data.jsonld_present).
fail
Schema type coverage
Page looks like Article|BlogPosting|NewsArticle; missing JSON-LD type(s): Article|BlogPosting|NewsArticle.
0/100
Actionability
pass
Paywall / login wall
No paywall or login-wall detected on the landing URL.
100/100
fail
Agent Skills manifestemerging
No Agent Skills manifest at /.well-known/agent-skills.json. Enumerate the tasks agents can perform (search, add-to-cart, contact-support) so they pick the right one without scraping.
0/100
fail
WebMCP actionsemerging
No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.
0/100
pass
Primary action reachable
Primary offering identified ("programming language with type syntax for JavaScript") with price/CTA ("Try TypeScript Now").
100/100
pass
Reachability
HTTP 200 after 1 redirect.
100/100
Performance
pass
Time to first byte
TTFB 337ms. Healthy.
80/100
skip
Full render time
Full-render time unavailable (browser pass skipped or failed).
pass
Page weight
Initial document is a lean 253 KB.
100/100
Beyond the scan

Running AI agents of your own? AgentSpeed also monitors them in production — every run, its latency, cost, and failures, with alerts when something breaks. Free for 10,000 events a month, no credit card.

Start watching free →See plans