blog.r-lopes.com

Report from 7/25/2026, 5:16:29 AM https://blog.r-lopes.com/
Latest run · lab, cold cache
100
7/25/2026
28-day score · p75 · the standard
100
249 runs
CRR100%latest
SSD100%latest
TC1056 toklatest
TTFUT12 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/blog.r-lopes.com.svg)](https://agentvitals.dev/results?url=https%3A%2F%2Fblog.r-lopes.com%2F)
<a href="https://agentvitals.dev/results?url=https%3A%2F%2Fblog.r-lopes.com%2F"><img src="https://agentvitals.dev/badge/blog.r-lopes.com.svg" alt="Core Agent Vitals" height="20"></a>
What AI tells your customers about youAgent confidence: HIGH
Business nameRafael Lopes
CategoryPerson
Pricenot applicable · not applicable to this page type
LocationVancouver, British Columbia, CA
Hoursnot applicable · not applicable to this page type
Productsnot applicable · not applicable to this page type
DescriptionFounder & Principal AI Engineer in Vancouver, BC. Brazilian. Builds and ships production AI on a self-hosted homelab — RAG pipelines, distributed LLM inference, web-performance and platform enginee…

⚠️ Your page title reads like a navigation menu, so an agent may cite your business as “Rafael Lopes — AI Engineer in Vancouver · Production AI, Web Performance”.

An agent can answer questions about you accurately. 4/4 applicable facts come from machine-readable structured data.

100
Overall score
weighted CAV (0–100)
PASS
0–4950–8990–100

Metrics

100%
CRR Content Recovery Good
1.00
SSD Semantic Signal Density Good
1,056 tok
TC Token Cost Good
12 ms
TTFUT Time to First Useful Token N/A

Token Cost breakdown

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

Content
80.3% · 1,400
Chrome (nav / header / footer)
19.7% · 343
Boilerplate (cookie / ad)
0% · 0
Other
0% · 0

Final screenshot

Final screenshot of https://blog.r-lopes.com/

Diagnostics

No issues found — this page is well-prepared for agents.

Rendered profile: headless

Agent Discoverability 100/100 · Agent Ready

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 Learn →
robots.txt (AI bots) Major AI bots allowed Learn →
sitemap.xml Found at /sitemap.xml Learn →
JSON-LD structured data Types: WebSite, Person Learn →
agents.json Found at /agents.json Learn →
WebMCP endpoint Found at /webmcp.json Learn →
OpenAPI / API docs Found at /openapi.json Learn →

No discovery issues found.

Passed audits (11)

✓ robots.txt allows AI bots✓ No CAPTCHA wall✓ No content-blocking cookie wall✓ llms.txt present + valid✓ No login wall on public content✓ Structured data (JSON-LD)✓ XML sitemap present + fresh✓ Server response (TTFB)✓ agents.json discovery✓ WebMCP endpoint✓ API documentation

Declaration Truthfulness (DVS 1.0.0)

This site publishes an agent capability declaration. DVS verifies whether each declared API operation actually exists in the served /openapi.json — measurement, not trust. Separate from the CAV score.

✅ Publishes a valid declaration — 4 capabilities, all read/content (no callable API operations). There's nothing to cross-verify, so no truthfulness score applies. DVS scores declarations that reference OpenAPI operations (search, booking, checkout).

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.

78Transport posture (0–100, unscored)
4pass
0warn
1fail
Per-header findings (6)
HeaderEvidence
✅ HTTPSserved over HTTPS
❌ HSTSno strict-transport-security header
✅ Content-Security-Policypolicy present, script-src does not allow inline
✅ X-Content-Type-Optionsnosniff
✅ Referrer-Policystrict-origin-when-cross-origin
➖ 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 (static.cloudflareinsights.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

1 third-party requests · 11 KiB (6.7% of transfer) — code an agent must also fetch/run before your content settles. Fewer, lazier third-parties = faster, cheaper agent reads.

Third-party domainReqsTransferMain-thread
cloudflareinsights.com111 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://blog.r-lopes.com/_next/static/chunks/main-a95234e44068e4ab.js50 KiB55.6%28 KiB
https://blog.r-lopes.com/_next/static/chunks/pages/_app-dd0e8ccaf9ea840c.js17 KiB44.9%7 KiB
https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496 3P11 KiB65%7 KiB
https://blog.r-lopes.com/_next/static/chunks/webpack-b5b4d6c4350037c7.js3 KiB65.7%2 KiB
https://blog.r-lopes.com/_next/static/chunks/6831-70546e7fde0c90db.js3 KiB39.5%1 KiB
https://blog.r-lopes.com/_next/static/chunks/2492-cf8dfaa61bc43a0e.js4 KiB30.8%1 KiB
https://blog.r-lopes.com/_next/static/chunks/1668.3ae74a1660bc98cc.js3 KiB32.9%1 KiB
https://blog.r-lopes.com/_next/static/chunks/8122-9dc77ddab9c2b354.js8 KiB4.9%0 KiB
https://blog.r-lopes.com/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js1 KiB30.3%0 KiB
https://blog.r-lopes.com/_next/static/chunks/pages/index-a8e735ab833d6a22.js4 KiB3.5%0 KiB
https://blog.r-lopes.com/_next/static/pVSS6EsqiAbuFn6EBJzRN/_buildManifest.js2 KiB1.2%0 KiB

Network

23Requests
169 KiBTransferred
13Scripts
6.7%3rd-party
0Long tasks
Script (13)
116 KiB
Other (1)
24 KiB
Document (1)
14 KiB
Stylesheet (1)
10 KiB
Ping (4)
2 KiB
Image (1)
1 KiB
XHR (2)
1 KiB
Heaviest requests (23)
URLTypeStatusTransfer
https://blog.r-lopes.com/_next/static/chunks/main-a95234e44068e4ab.jsScript20050 KiB
https://blog.r-lopes.com/rafael-lopes.jpgOther20024 KiB
https://blog.r-lopes.com/_next/static/chunks/pages/_app-dd0e8ccaf9ea840c.jsScript20017 KiB
https://blog.r-lopes.com/Document20014 KiB
https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496Script20011 KiB
https://blog.r-lopes.com/cdn-cgi/challenge-platform/h/b/scripts/jsd/3104729c556c/main.js?Script20010 KiB
https://blog.r-lopes.com/_next/static/css/72f23a0b926e955e.cssStylesheet20010 KiB
https://blog.r-lopes.com/_next/static/chunks/8122-9dc77ddab9c2b354.jsScript2008 KiB
https://blog.r-lopes.com/_next/static/chunks/2492-cf8dfaa61bc43a0e.jsScript2004 KiB
https://blog.r-lopes.com/_next/static/chunks/pages/index-a8e735ab833d6a22.jsScript2004 KiB
https://blog.r-lopes.com/_next/static/chunks/6831-70546e7fde0c90db.jsScript2003 KiB
https://blog.r-lopes.com/_next/static/chunks/webpack-b5b4d6c4350037c7.jsScript2003 KiB
https://blog.r-lopes.com/_next/static/chunks/1668.3ae74a1660bc98cc.jsScript2003 KiB
https://blog.r-lopes.com/_next/static/pVSS6EsqiAbuFn6EBJzRN/_buildManifest.jsScript2002 KiB
https://blog.r-lopes.com/rafael-lopes-28.webpImage2001 KiB
https://blog.r-lopes.com/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.jsScript2001 KiB
https://blog.r-lopes.com/cdn-cgi/challenge-platform/h/b/jsd/oneshot/3104729c556c/0.8699507902979696:1784401528:dlBJMk_zMJQ9Y-eEpZpbg_FgQDKQsPnCdFBEmIHHxwc/a1d473b30f2a1812XHR2001 KiB
https://blog.r-lopes.com/_next/static/pVSS6EsqiAbuFn6EBJzRN/_ssgManifest.jsScript2001 KiB
https://blog.r-lopes.com/api/collectPing2041 KiB
https://blog.r-lopes.com/api/vitalsPing2041 KiB
https://blog.r-lopes.com/api/vitalsPing2041 KiB
https://blog.r-lopes.com/api/vitalsPing2041 KiB
https://blog.r-lopes.com/cdn-cgi/rum?XHR2040 KiB
Analyzing…
running mobile + desktop · ~30s