Dub
← board · dub.co · #18 of 80
Ready with a few material gaps
- B
- Grade
- 82
- Agent readiness
- Board average 77
Scanned 14 hours ago
Every outstanding fix in one prompt for your coding agent. Rescan →
Task
What does dub.co do and how do I use it? A fetch-only agent finds out.
12 fetches9 found3 missing
- /robots.txt⋯/sitemap.xml
- /llms.txt⋯/llms-full.txt
- /pricing
- /docs
- /openapi.json
- mcp.json⋯MCP initialize
- /privacy · /terms
every path the scanner fetched · replayed deterministically, no LLM
Evaluator notes
A fetch-only agent reached dub.co over HTTPS in 113 ms and identified it from its title as “Dub - The Modern Link Attribution Platform”. The copy is readable without JavaScript (151,695 chars of visible text, 21.5% of HTML). It found pricing, docs and an OpenAPI spec. It looked for an MCP server and found none.
Critical access needs attention
Whether an ordinary agent can enter, read, and operate the public site.
- ✓4 / 4 passedAgents can reach the site
Crawler access and bot defenses.
- ~1 / 2 passedCore content is available
Useful content remains accessible without a fragile browser-only path.
- ~1 / 2 passedNavigation fails safely
Redirects and missing pages give agents a recoverable path.
- ~1 / 3 passedControls are understandable
Forms and interactive controls expose usable names and structure.
Fix these gaps first
Critical access gaps come first, then the biggest remaining points.
- 01Analytics installedMeasured
Install analytics (PostHog, Plausible, GA4) before spending on traffic.
+6 pts - 02Canonical URL setCritical access
Add a canonical link so www/non-www and query variants consolidate.
+3 pts - 03Semantic landmarks (main, single H1)Critical access
Wrap the content in <main> and keep one H1 so agents can find the primary content.
+3 pts - 04Agent manifest (MCP, A2A or ai-plugin)Agent-ready
Publish an MCP server manifest or A2A agent card under /.well-known/ so agents can find your tools.
+2 pts - 05Versioned paths or serversAPI
Version the API (v1 in the path or server URL) so integrations survive changes.
+2 pts
Audit the checks behind the score
Grouped by what they measure. Not-applicable checks are excluded from scoring.
Crawlable5 of 5 passed · 19/19 pts›
- ✓Served over HTTPS5/5
https://dub.co/
- ✓Responds in under 1.5s5/5
113 ms to first byte
- ✓robots.txt present2/2
User-Agent: * Allow: / Disallow: /_next/ Disallow: /draft/ Sitemap: https://dub.…
- ✓sitemap.xml present2/2
/sitemap.xml → 200
- ✓Homepage is indexable5/5
HTTP 200
Metadata6 of 7 passed · 21/24 pts›
- ✓Title tag 10–70 characters5/5
"Dub - The Modern Link Attribution Platform" (42)
- ✓Meta description 50–160 characters5/5
"Dub is the modern link attribution platform for short links, conversion tracking, and affiliate prog…" (105)
- ✕Canonical URL set0/3
no <link rel="canonical">
→ Add a canonical link so www/non-www and query variants consolidate.
- ✓Exactly one H14/4
1 × <h1>: "Turn clicks into revenue"
- ✓Mobile viewport set3/3
width=device-width, initial-scale=1
- ✓Language declared2/2
<html lang="en">
- ✓Favicon declared2/2
https://assets.dub.co/favicons/favicon-32x32.png
Shareable3 of 3 passed · 14/14 pts›
- ✓Open Graph title, description and image8/8
title, description, image
- ✓Twitter/X card type set3/3
twitter:card = summary_large_image
- ✓Links to X or LinkedIn3/3
2 social link(s)
Converts3 of 3 passed · 17/17 pts›
- ✓Clear call to action8/8
3 CTA(s), e.g. "Sign Up"
- ✓Pricing page linked6/6
→ /pricing
- ✓HTML under 2 MB3/3
690 KB of HTML
Measured0 of 1 passed · 0/6 pts›
- ✕Analytics installed0/6
no analytics tag detected
→ Install analytics (PostHog, Plausible, GA4) before spending on traffic.
Agent-ready14 of 20 passed · 40/48 pts›
- ✓Structured data (JSON-LD)4/4
@type: Organization, SoftwareApplication
- ✓Machine-readable pricing3/3
Offer / Product in JSON-LD
- ✓llms.txt present1/1
/llms.txt → 200, 4000+ chars
- ✕llms-full.txt present0/1
no /llms-full.txt
→ Publish /llms-full.txt with the full docs inlined, so agents can read everything in one fetch.
- ✓AI crawlers allowed in robots.txt2/2
none of 9 known AI crawlers blocked
- ✓No noai / TDM reservation2/2
no opt-out signals
- ✕Serves markdown on request0/1
Accept: text/markdown → text/html; charset=utf-8
→ Return text/markdown when the Accept header asks for it; agents skip the HTML entirely.
- ✓OpenAPI spec discoverable7/7
application/json at /openapi.json or /.well-known/openapi.json
- ✕Agent manifest (MCP, A2A or ai-plugin)0/2
no manifest at /.well-known/{mcp,agent,ai-plugin}.json
→ Publish an MCP server manifest or A2A agent card under /.well-known/ so agents can find your tools.
- ✓Docs or API link from the homepage3/3
homepage links to docs / API
- ✓Content readable without JavaScript3/3
151,695 chars of visible text, 21.5% of HTML
- ✕Semantic landmarks (main, single H1)0/3
no <main>, 1 × <h1>
→ Wrap the content in <main> and keep one H1 so agents can find the primary content.
- ◐Images have alt text2/2
98/99 images have alt
→ Add alt text to images; it is the only thing a text agent can read from them.
- ✓Form fields are labelled2/2
2/2 fields have a label, name or aria-label
- ◐Descriptive link text1/2
15/135 links say "click here" / "learn more"
→ Replace "learn more" and "click here" with what the link actually leads to.
- ✓Agent-friendly 404s2/2
nonexistent path → HTTP 404
- ✓Trust pages (privacy, terms, security)2/2
found: /privacy, /terms
- ✓Organization schema complete2/2
Organization has name, url, logo, sameAs, description
- ✓llms.txt says what you are and links out2/2
4000+ chars, has H1, has links
- ✓Contact route discoverable2/2
mailto:, /contact or /support link found
API4 of 6 passed · 14/18 pts›
- ✓Spec parses and declares a version4/4
openapi 3.0.3, 57 operations
- ✓Operations have summaries and operationIds4/4
57/57 operations have operationId + summary
- ✓Error responses documented3/3
57/57 operations document a 4xx response
- ✓Auth scheme declared3/3
securitySchemes: token
- ✕Versioned paths or servers0/2
servers: https://api.dub.co
→ Version the API (v1 in the path or server URL) so integrations survive changes.
- ✕Spec within a model context budget0/2
387KB (first 4KB fetched counts toward probe cap)
→ Keep the spec under ~100KB or split it; an agent has to fit it in context.
MCPn/a›
- —Server answers initializen/a
- —Tools listedn/a
- —Tools carry descriptionsn/a
- —Tool parameters have schemasn/a
Fixed something? Scan again.
One scan per site every 10 minutes. Snapshot 2026-08-24T13:48:41.626Z.