nus.edu.sg

Report from 7/24/2026, 11:00:33 AM https://nus.edu.sg
Latest run · lab, cold cache
0
7/24/2026
28-day score · p75 · the standard
0
8 runs
CRR0%latest
SSD0%latest
TC0 toklatest
TTFUT509 ms28-day p75

Scored by v3 · source-of-truth hashes: score db860d6ac94e · thresholds e94f8b33e500 — verifiable against the canonical scorer.

The 28-day score is the p75 of nightly runs — the stable number to cite. Deterministic metrics (CRR/SSD/TC) show their latest value (they move only when the site changes); timing (TTFUT) and answer-fidelity (AF) are smoothed by 28-day p75 — the same lab-vs-field split Core Web Vitals uses. Synthetic daily measurement, not real-user field data.

Core Agent Vitals badge  Embed this badge

Show your agent-readiness score anywhere — it links back to this report.

[![Core Agent Vitals](https://agentvitals.dev/badge/nus.edu.sg.svg)](https://agentvitals.dev/results?url=https%3A%2F%2Fnus.edu.sg)
<a href="https://agentvitals.dev/results?url=https%3A%2F%2Fnus.edu.sg"><img src="https://agentvitals.dev/badge/nus.edu.sg.svg" alt="Core Agent Vitals" height="20"></a>
What AI tells your customers about youAgent confidence: LOW
Business namenot found
Categorynot found
Pricenot applicable · not applicable to this page type
Locationnot applicable · not applicable to this page type
Hoursnot applicable · not applicable to this page type
Productsnot applicable · not applicable to this page type
Descriptionnot found

An agent is likely to fabricate missing details rather than say “I don’t know”. 0/3 applicable facts come from machine-readable structured data.

An agent recovered no usable content from this page without executing JavaScript.
0
Overall score
weighted CAV (0–100)
FAIL
0–4950–8990–100

Metrics

0%
CRR Content Recovery Poor
0.40
SSD Semantic Signal Density Poor
975 tok
TC Token Cost Good
222 ms
TTFUT Time to First Useful Token N/A

Token Cost breakdown

Where the page's tokens go (≈6,365 across regions). Most tokens are real content — the agent isn't paying much for chrome.

Content
74.1% · 4,718
Chrome (nav / header / footer)
25.1% · 1,597
Boilerplate (cookie / ad)
0.8% · 50
Other
0% · 0

Final screenshot

Final screenshot of https://nus.edu.sg

Diagnostics

high CRR Content is hidden behind JavaScript

pre-JS raw HTML

Evidence100% of content requires JS
ImpactA non-rendering agent never sees the JS-injected content.
Effort1–4 h

Fix: Server-render or statically generate the main content so a non-JS agent still receives it; make client rendering a progressive enhancement, not the source of truth.

high SSD Low signal-to-noise for agents

content vs chrome/boilerplate

Evidencesignal 0.67 · JSON-LD 0/1 · missing: structured-data
ImpactAgent spends tokens parsing nav/boilerplate instead of content.
Effort30–90 min

Fix: Wrap the real content in <main>/<article>, cut repeated nav/boilerplate, and keep the primary content dense and early in the DOM.

Rendered profile: headless

Agent Discoverability 78/100 · Needs Work

Access & discovery checks — separate from the gated CAV metrics above. Click an issue for business impact, what we measured, and how to fix. · Take the Agent Readiness course →

Agent files & endpoints

~ llms.txt Found at /llms.txt but missing H1/blockquote Learn →
robots.txt (AI bots) Major AI bots allowed Learn →
~ sitemap.xml Sitemap found but no <url>/<loc> entries Learn →
JSON-LD structured data No JSON-LD found Learn →
agents.json Found at /agents.json Learn →
WebMCP endpoint Found at /.well-known/webmcp Learn →
OpenAPI / API docs Found at /openapi.json Learn →

Issues (3)

~ llms.txt present + valid high impact Found at /llms.txt but missing H1/blockquote

Business impact llms.txt is the robots.txt for AI: it tells agents what your site is, what matters, and where to find it. Without it AI guesses — and guessing means inaccurate recommendations and lost visibility.

What we measured We fetch /llms.txt and /.well-known/llms.txt and validate the spec (H1 title + a one-line blockquote summary). We also note /llms-full.txt (your full content as Markdown).

How to fix Create /llms.txt with a short summary + key pages; optionally /llms-full.txt with full content in Markdown.

Learn how to implement →

# Your Site
> One-line description for AI agents.

## Key pages
- /products — catalog
- /pricing — plans
- /docs — documentation

Spec: https://llmstxt.org

Structured data (JSON-LD) medium impact No JSON-LD found

Business impact Schema.org JSON-LD tells agents what a page IS (product, article, business) with typed fields (price, rating, hours). Without it agents extract less reliably.

What we measured We parse <script type=application/ld+json>, validate it, and check for populated @type fields.

How to fix Add JSON-LD: Organization/LocalBusiness on the homepage, Product on product pages, Article on posts.

Learn how to implement →

<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Your Co","url":"https://example.com"}</script>

Spec: https://schema.org/

~ XML sitemap present medium impact Sitemap found but no <url>/<loc> entries

Business impact A sitemap is your table of contents for AI crawlers. Without it agents follow homepage links and miss deep pages (products, docs, pricing) — shrinking what they can recommend.

What we measured We fetch /sitemap.xml (and /sitemap_index.xml), confirm valid XML with <loc> entries, and check <lastmod> freshness.

How to fix Generate an XML sitemap of all public pages with current lastmod dates and reference it in robots.txt.

Learn how to implement →

# robots.txt
Sitemap: https://example.com/sitemap.xml

Spec: https://www.sitemaps.org/

Passed audits (8)

✓ robots.txt allows AI bots✓ No CAPTCHA wall✓ No content-blocking cookie wall✓ No login wall on public content✓ Server response (TTFB)✓ agents.json discovery✓ WebMCP endpoint✓ API documentation

Transport & Trust (SEC 1.0.0)

HTTPS, HSTS, CSP, sniffing, referrer and CORS posture. Diagnostic only — this does not affect the CAV score. A security header does not make a page more legible to an agent, so scoring it would reward a CDN toggle that changes nothing an agent can recover. We measure it and say so.

59Transport posture (0–100, unscored)
2pass
1warn
2fail
Per-header findings (6)
HeaderEvidence
✅ HTTPSserved over HTTPS
✅ HSTSmax-age=63072000; includeSubDomains
❌ Content-Security-Policyno content-security-policy header
❌ X-Content-Type-Optionsmissing nosniff
⚠️ Referrer-Policyno referrer-policy header (browser default applies)
➖ CORS exposureno CORS headers on the document (normal for an HTML page)
Full profile — how to improve · unused JS · network · timing

How to improve

highProfile reflects a block/challenge page — not your contenthighest leverage

whole profile

EvidenceMeasured against a block/challenge page (a bot-wall/CAPTCHA was served (js.hcaptcha.com)); every number here describes the wall, not your site.
ImpactAn AI agent hits the same wall and recovers none of your content — fix the block before optimizing anything else.
FixAllowlist legitimate agent user-agents / IP ranges in your WAF or bot-management and serve real content (not a challenge), then re-run.

Third-party impact

6 third-party requests · 144 KiB (85.5% of transfer) · 161 ms main-thread — code an agent must also fetch/run before your content settles. Fewer, lazier third-parties = faster, cheaper agent reads.

Third-party domainReqsTransferMain-thread
hcaptcha.com496 KiB161 ms
gstatic.com147 KiB
googleapis.com11 KiB

Wasted JavaScript (by bundle)

Transfer-accurate — each bundle's transfer size × its unused %, ranked by wasted bytes (the biggest code-splitting wins). Unused JS also inflates Token Cost (TC).

BundleTransferUnusedWasted
https://js.hcaptcha.com/1/api.js 3P93 KiB37.2%35 KiB

Network

10Requests
169 KiBTransferred
1Scripts
85.5%3rd-party
3Long tasks
Script (1)
93 KiB
Font (1)
47 KiB
Image (1)
18 KiB
Fetch (1)
3 KiB
Other (1)
3 KiB
Document (4)
3 KiB
Stylesheet (1)
1 KiB
Heaviest requests (10)
URLTypeStatusTransfer
https://js.hcaptcha.com/1/api.jsScript20093 KiB
https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2Font20047 KiB
https://nus.edu.sg/images/default-source/logo/white.pngImage20018 KiB
https://d38d065e545a.w.hcaptcha.com/logo.pngFetch2003 KiB
https://nus.edu.sg/favicon.icoOther2003 KiB
https://nus.edu.sg/_Incapsula_Resource?SWUDNSAI=31&xinfo=61-111446319-0%200NNN%20RT%281784891183353%20171%29%20q%280%20-1%20-1%20-1%29%20r%280%20-1%29%20B12%284%2c316%2c0%29%20U18&incident_id=1785001480280410945-642427941098693949&edet=12&cinfo=04000000&rpinfo=0&cts=K0I6hhF2SSZrMiHskJ1XfURfcwvwRDy6SzvGsgOHVLp%2f9uyvm5Lqlfv7VqPYO8UI&cip=172.218.38.186&mth=GETDocument2002 KiB
https://nus.edu.sg/Document2001 KiB
https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swapStylesheet2001 KiB
https://newassets.hcaptcha.com/captcha/v1/1b0be0aa79c923cbb28f2b8422975223d8d08c6d/static/hcaptcha.htmlDocument2000 KiB
https://newassets.hcaptcha.com/captcha/v1/1b0be0aa79c923cbb28f2b8422975223d8d08c6d/static/hcaptcha.htmlDocument2000 KiB

Long tasks (>50 ms)

StartDuration
1238 ms94 ms
1147 ms68 ms
1079 ms57 ms
Analyzing…
running mobile + desktop · ~30s