Measured on the home page. Overall grade: Fair.
/.well-known/agent.json not found
Create a /.well-known/agent.json file following the A2A (Agent-to-Agent) protocol. It should include name, description, url, and skills fields describing your site's capabilities.
/.well-known/openapi.json not found
Create a /.well-known/openapi.json file with your API specification following the OpenAPI 3.x standard. See https://swagger.io/specification/ for the spec.
/.well-known/mcp.json not found
Create a /.well-known/mcp.json file describing your MCP server configuration. Include name, description, tools, and version fields. See https://modelcontextprotocol.io for the spec.
0/5 emerging AI discovery files published
ai.txt not found
Publish /.well-known/ai.txt declaring opt-in/opt-out signals for AI training. See https://site.spawning.ai/spawning-ai-txt for the format.
genai.txt not found
Publish /.well-known/genai.txt declaring your generative-AI usage policy.
ai-plugin.json not found
Publish /ai-plugin.json (legacy ChatGPT plugin manifest). Schema: name_for_model, description_for_model, api.url. Still consumed by some agents.
agents.json not found
Publish /agents.json describing your site as a callable agent (OpenAgents / Wildcard emerging spec). Includes name, description, and operations[].
nlweb.json not found
Publish /.well-known/nlweb.json (Microsoft NLWeb) so agents can interact with the site through a natural-language interface.
Homepage does not serve Markdown via content negotiation
Serve a Markdown representation of your pages when agents request "Accept: text/markdown". Agents like Claude Code and Cursor ask for it, and Markdown cuts token usage by ~80% vs HTML. Cloudflare ("Markdown for Agents") and Vercel can enable this without code changes.
No <link rel="alternate" type="text/markdown"> fallback found on the homepage
If you cannot enable content negotiation, advertise a Markdown version with <link rel="alternate" type="text/markdown" href="/index.md"> so agents can discover it.
No RSL license discovery found
Declare machine-readable licensing terms for your content with Really Simple Licensing. Add to robots.txt: License: https://your-site.com/license.xml — then publish the RSL document. See https://rslstandard.org.
No AI meta tags (ai:*) found
Add AI meta tags to your HTML <head>: <meta name="ai:summary" content="Brief description">, <meta name="ai:content_type" content="website">, <meta name="ai:author" content="Your Name">.
No rel="alternate" link to llms.txt in HTML
Add to your <head>: <link rel="alternate" type="text/plain" href="/llms.txt" title="LLM-optimized content">
No rel="alternate" link to agent.json in HTML
Add to your <head>: <link rel="alternate" type="application/json" href="/.well-known/agent.json" title="Agent Card">
No rel="me" identity links found
Add rel="me" links to verify your identity across platforms: <link rel="me" href="https://github.com/yourname">, <link rel="me" href="https://twitter.com/yourname">.
OpenGraph required tags present (og:title, og:description, og:url, og:type)
Twitter Card required tags present (twitter:card, twitter:title, twitter:description)
/robots.txt exists
No core AI crawlers explicitly configured
Add User-agent entries for core AI crawlers in your robots.txt. For each crawler, add: User-agent: <name> followed by Allow: / on the next line.
Sitemap directive present
No Content-Signal directive found (optional)
Declare how crawlers may use your content after access with the Content Signals Policy, e.g.: Content-Signal: search=yes, ai-train=no. Known signals: search, ai-input, ai-train. Generate yours at contentsignals.org.
0/48 known AI crawlers have explicit rules
Add explicit User-agent entries for more AI crawlers to maximize discoverability.
Response compressed with Brotli (br)
No ETag or Last-Modified header — conditional requests unsupported
Send an ETag or Last-Modified header so crawlers can revalidate with If-None-Match / If-Modified-Since and receive a cheap 304 Not Modified instead of the full body.
Homepage is very large (2.4 MB decompressed)
Large documents inflate crawl cost and token usage. Trim inlined data, split content, or serve a Markdown representation to agents (see the content-negotiation check).
5/7 security headers present
No Link header for AI discovery (llms.txt, agent.json)
Add a Link response header pointing to your AI discovery files: Link: </llms.txt>; rel="alternate"; type="text/plain", </.well-known/agent.json>; rel="alternate"; type="application/json"
Server-rendered content detected (2381 words, 17525 chars of visible text)
Low text-to-markup ratio (0.7%)
A very low text-to-markup ratio is a typical SPA-shell symptom. Inline more content directly into the HTML response.
Semantic landmarks present (main, section, footer, nav)
Single <h1> heading: "Unleash your teams and their agents"
Heavy JavaScript with no <noscript> fallback
Provide a <noscript> fallback that explains the site or links to a non-JS variant. This helps agents that disable JS.
57/57 <img> tags have alt attributes
Site is served over HTTPS
HTTP requests redirect to HTTPS
HSTS max-age=63072000
HSTS does not include subdomains
Add includeSubDomains to apply HSTS across api., docs., etc. Required for preload list submission.
HSTS has preload directive but does not satisfy preload-list requirements
Preload requires max-age >= 31536000 and includeSubDomains. See https://hstspreload.org.
1 JSON-LD block(s) found
@context references schema.org
@graph array present (multi-entity structured data)
Key types found: Organization, WebSite, WebPage
No BreadcrumbList found
Add a BreadcrumbList entity to help AI agents understand your site navigation hierarchy.
/llms.txt exists
/llms.txt Content-Type OK (text/plain)
H1 heading: "Atlassian"
Blockquote description present
13 section heading(s) found
105 link(s) found
/llms-full.txt also available (bonus)
/.well-known/security.txt exists
Required field "Contact" present
Required field "Expires" present
Expires date is in the future (2027-02-04)
5/5 optional fields present
Sitemap located: https://www.atlassian.com/sitemap.xml
Content-Type is XML (application/xml)
Sitemap-index references 8 child sitemap(s)
3/3 sample child sitemap(s) reachable
Sample yielded 3341 URL(s) across 3 child(ren)
All 8 core AI crawler user-agents receive equivalent responses
<title> length 70 chars: "Collaboration software for software, IT and business teams | Atlassian"
Meta description length 128 chars
Canonical URL: https://www.atlassian.com
<html lang="en">
UTF-8 charset declared
Viewport meta present: "width=device-width, initial-scale=1"