Skip to content
AvocadoScore

AvocadoScore audit · vercel.com

vercel.com

Almost ripe

Real users are mostly fine — a focused round of fixes will get the site fully healthy.

Real users:Almost ripeCold lab:Unripe(9 of 10 pages Unripe)

The verdict weights real-user data (Chrome UX Report). Cold lab first-visits, shown below, run slower.

Mobile perf
65/100
Almost ripe
SEO ready
96/100
Ripe
AI ready
94/100
Ripe

How “AI ready” is scored: 18 checks across three pillars — Access (can AI crawlers fetch you), Comprehension (can they parse & chunk you) and Trust (can they attribute & cite you).

Scanned 16 days ago10 pages57 views

Overview

Key findings

The headline takeaways, in plain English.

  1. 1In cold lab tests, 9 of 10 scanned pages render in the "Unripe" band (the overall verdict above weights real-user data, which is faster).
  2. 2Median mobile LCP is 6.6 s — about 2.7× the 2.5 s target.
  3. 3Speed is costing you visitors: more than half of mobile users abandon a page that takes over 3 seconds to load (Google) — and your pages cross that line.
  4. 4The biggest opportunity: Address accessibility gaps — affects 5 pages.
  5. 5The heaviest page ships 1.9 MB of JavaScript — a primary cause of slow loads.
  6. 6Strengths: accessibility, SEO and best practices score well — focus effort on performance.
See the prioritized action plan →
Performance
65/100
11 issue types
Accessibility
94/100
5 issue types
On-page SEO
100/100
0 issue types
Best Practices
96/100
2 issue types
0Ripe1Almost ripe9Unripe

AI & search visibility

Can AI answer engines find, read and cite your site?

More people now ask ChatGPT, Perplexity and Claude instead of Googling. This section answers whether those answer engines can reach your content, understand it, and cite you — the audit other tools skip.

AI visibility verdict

AI agents can read your site; a few quick additions would make it easier to cite.

Fix next: declare a bot policy · add structured data — see the action plan for copy-paste fixes.

OG image quality

100/100

https://lishhsx6kmthaacj.public.blob.vercel-storage.com/og-home-not-x.png

Open Graph preview image as social platforms and AI answer engines see it
3 checks · all pass▸
  • ✓
    Reachable
    HTTP 200
  • ✓
    Content-Type
    image/png
  • ✓
    File size
    826.9 KB

Crawl-as-bot diff

Homepage · GPTBot UA

GPTBot sees 3,385 chars · browser sees 3,385 chars

100%

GPTBot sees 100% of the content a browser sees — essentially identical.

llms.txt content

25 links · 9 sections

100/100
5 checks · all pass▸
  • ✓
    /llms.txt present
    HTTP 200
  • ✓
    Has main heading
    # Title found
  • ✓
    Link coverage
    25 markdown links
  • ✓
    Sections
    9 `##` sections
  • ✓
    /llms-full.txt
    HTTP 200 — richer LLM context
# Vercel > Vercel is a cloud platform for building, deploying, and scaling web applications and AI workloads. Use this index to find machine-readable documentation and platform resources. Follow the linked indexes when you need individual pages. ## When to use Vercel - Deploy and scale web appli…

Robots.txt advisor

1 group · 1 sitemap ref

80/100
5 checks · 1 to review▸
  • ✓
    robots.txt present
    1 user-agent group
  • ✓
    Allows crawlers
    `User-agent: *` permits standard crawling
  • ✓
    Sitemap declared
    1 sitemap ref
  • ✕
    AI bot policies
    No explicit policy for GPTBot, ClaudeBot, Google-Extended, etc. — decide and declare
  • ✓
    Crawl-delay
    No crawl-delay — crawlers use their own pacing

Schema.org coverage

4/10 pages (40%)
Schema typePagesCoverage
Organization220%
TechArticle220%
WebSite220%
BreadcrumbList110%
Service110%
SoftwareApplication110%

Readiness

SEO & AI Readiness

Two scorecards derived from the homepage HTML, robots.txt and AI-specific well-known files. The differentiating analysis no other tool does.

SEO Readiness
96/100
11 pass · 1 warn · 0 fail
AI Readiness
94/100
16 pass · 2 warn · 0 fail

Both scorecards are in good shape — the site is well-prepared for search and AI-era discovery.

AI readiness vs the Index

At 94/100, this site scores higher than 96% of 922 well-known sites in the AI Readiness Index. The Index is a curated set of big names, not a sample of the web.

96th
percentile
WorstIndex median 78Best

SEO checklist

11/12 passing
  • ✓
  • ✓
  • ✓
  • ✓
  • !
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • !
    Meta description
    45 chars — aim for 70–160
▸ 11 passing checks — show all
  • ✓
    HTTPS
    Served over HTTPS
  • ✓
    Sitemap
    sitemap.xml present
  • ✓
    robots.txt
    Present
  • ✓
    Title tag
    31 chars
  • ✓
    Canonical URL
    https://vercel.com
  • ✓
    Open Graph
    Complete (title, description, image)
  • ✓
    Twitter Card
    summary_large_image
  • ✓
    Structured data (JSON-LD)
    3 blocks
  • ✓
    H1 heading
    Exactly one H1
  • ✓
    Language declaration
    <html lang="en">
  • ✓
    Viewport meta
    Set

AI readiness — three pillars

16/18 passing
Access100

Can AI crawlers fetch the site at all?

  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓

6/6 passing

Comprehension95

Once fetched, can they parse and chunk it?

  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • ✓
  • !
  • ✓
  • ✓

9/10 passing

Trust75

Can they attribute and date the content?

  • ✓
  • !

1/2 passing

Access — Can AI crawlers fetch the site at all?

6/6 passing

All 6 checks pass. Nothing to fix here.

▸ 6 passing checks — show all
  • ✓
    AI answer-engine access
    No restrictions on any of the 5 search/citation crawlers (default-allowed)
  • ✓
    Training-crawler stance
    No training opt-outs declared — content may be used for model training (5 tokens checked)
  • ✓
    Search-index crawlers (AI surfaces)
    Googlebot and Bingbot can crawl — the indexes behind AI Overviews, ChatGPT search and Copilot can see the site
  • ✓
    CDN / firewall gate
    GPTBot sees 100% of the content a browser sees — essentially identical.
  • ✓
    Snippet directives
    No nosnippet / max-snippet / noai restrictions
  • ✓
    Agent-friendly 404s
    Returns 404 for unknown paths

Comprehension — Once fetched, can they parse and chunk it?

9/10 passing
  • !
    RSS/Atom feed
    No feed advertised in <head> — several AI systems ingest feeds for freshness
▸ 10 passing checks — show all
  • ✓
    /llms.txt
    Present — AI-friendly content map
  • ✓
    /llms-full.txt
    Present — expanded LLM context
  • ✓
    Markdown for agents (bonus)
    Serves text/markdown with Vary: Accept
  • ✓
    Structured data (validated)
    3 blocks, all required properties present (Offer, Organization, Person, SoftwareApplication)
  • ✓
    Server-rendered content
    9741 words in initial HTML
  • ✓
    Semantic HTML
    Uses main, header, footer, nav
  • ✓
    Heading outline
    18 headings in a clean hierarchy
  • ✓
    Open Graph metadata
    Complete
  • ✓
    Sitemap freshness
    sitemap.xml carries <lastmod> dates — recrawl prioritization works
  • ✓
    Consent wall
    No consent-manager wall detected

Trust — Can they attribute and date the content?

1/2 passing
  • !
    Content dates
    No datePublished/dateModified in structured data — answer engines can't judge freshness
▸ 1 passing check — show all
  • ✓
    Author / Organization markup
    Person/Organization schema present

AI bot policies (robots.txt)

10 bots tracked

No explicit policy for any of 10 tracked AI bots — implicit allow.

Answer & search crawlers — blocking these removes the site from AI answers

  • OAI-SearchBotno rule for this bot, so implicitly allowed
  • ChatGPT-Userno rule for this bot, so implicitly allowed
  • Claude-Userno rule for this bot, so implicitly allowed
  • PerplexityBotno rule for this bot, so implicitly allowed
  • Perplexity-Userno rule for this bot, so implicitly allowed

Training crawlers — blocking is an opt-out from model training and does not affect citations

  • GPTBotno rule for this bot, so implicitly allowed
  • ClaudeBotno rule for this bot, so implicitly allowed
  • Google-Extendedno rule for this bot, so implicitly allowed
  • Applebot-Extendedno rule for this bot, so implicitly allowed
  • CCBotno rule for this bot, so implicitly allowed

no rule

▸ Vendor and status detail
BotVendorStatus
GPTBotOpenAINot specified
OAI-SearchBotOpenAINot specified
ChatGPT-UserOpenAINot specified
ClaudeBotAnthropicNot specified
Claude-UserAnthropicNot specified
Google-ExtendedGoogleNot specified
PerplexityBotPerplexityNot specified
Perplexity-UserPerplexityNot specified
Applebot-ExtendedAppleNot specified
CCBotCommon CrawlNot specified

Declare a policy either way so the intent is clear — see the action plan for a copy-paste robots.txt block.

Readiness is sampled on the site homepage; deeper pages may differ. AI bot policies follow the llms.txt proposal and the established robots.txt convention.

📩 Save this report to your free dashboard

Everything below is already unlocked — this emails you the link and keeps every scan in one place. Free, no card. We may send an occasional reminder to re-scan; unsubscribe in one click.

Deep dive

Performance analysis

Where this site stands against its peers, which viewport is the weak link, the slowest pages, and the issues that recur most.

Performance vs peers

At 65/100, this site is above the Next.js site (peer median 55).

68th
percentile (est.)
WorstNext.js siteBest
▸Show detailsviewport gap, slowest pages, frequent issues

Slowest pages

  • 1
    /kb/builds
    perf 59/100
    11.5 s
  • 2
    /about
    perf 56/100
    8.9 s
  • 3
    /contact
    perf 54/100
    7.7 s

Ranked by mobile LCP (Largest Contentful Paint).

Most frequent issues

Performance: 11Accessibility: 5Best practices: 2
  • Render-blocking requests
    10 pages · 100%
  • Legacy JavaScript
    10 pages · 100%
  • Reduce unused JavaScript
    10 pages · 100%
  • Browser errors were logged to the console
    9 pages · 90%
  • Minimize main-thread work
    8 pages · 80%
  • `[user-scalable="no"]` is used in the `<meta name="viewport">` element or the `[maximum-scale]` attribute is less than 5.
    8 pages · 80%
  • Forced reflow
    8 pages · 80%
  • Reduce unused CSS
    8 pages · 80%

Core Web Vitals

How fast your site really is

Real-user experience from the Chrome UX Report (p75, 28-day window). Lab metrics below show cold first-visit timings.

Real users: your Core Web Vitals pass Google's thresholds.

Every measured metric is in the green — re-check after each release.

Real users · page-level
LCP
≤ 2.5 s
1.2 s
FAST
CLS
≤ 0.1
0.000
FAST
INP
≤ 200 ms
—
no data
Lab · median of scanned pages▸
LCP
≤ 2.5 s
6.9 s
CLS
≤ 0.1
0.000
TBT
≤ 200 ms
387 ms
FCP
≤ 1.8 s
2.1 s
TTFB
≤ 800 ms
17 ms
SI
≤ 3.4 s
5.0 s

Page Weight

Resource breakdown

Pages average 2.1 MB across 131 requests. Third-party scripts add 59 KB on top.

  • JavaScript1.4 MB65%
  • Images117 KB5%
  • CSS153 KB7%
  • Fonts187 KB9%
  • Other310 KB14%
▸Show detailsheaviest page

Heaviest page: /kb/builds at 3.1 MB over 161 requests.

Deep dive

Resource intelligence

Where time and bytes are going across your site — the specific vendors and code paths behind the totals.

Show▸

Top third-party vendors

Site-wide totals
VendorTotal bytesBlockingPages
Sentry11 KB0 ms9
vercel-storage.com87 KB0 ms2
vercel-status.com1 KB0 ms1
vercel.sh17 KB0 ms4
ctfassets.net469 KB0 ms2

Main-thread time

Average per page · 3.0 s
  • Script evaluation1.6 s52%
  • Other531 ms18%
  • Script parse / compile413 ms14%
  • Style + layout343 ms11%
  • Garbage collection63 ms2%
  • Parse HTML53 ms2%
  • Paint + composite44 ms1%

Image format breakdown

6% modern (WebP / AVIF)
  • png642 KB
  • svg245 KB
  • jpeg209 KB
  • webp57 KB
  • avif14 KB

Technology

Detected stack

What we recognised from the homepage HTML, response headers and DNS. Used to tailor stack-specific recommendations.

Show▸
Framework
Next.js
Hosting
Vercel

Action Plan

Root-cause groupings, sequenced by effort. Each card opens a ready-to-paste task you can create in Jira or Linear with one click.

Quick wins
Under a day each — start here.
  1. high severity:01Address accessibility gaps⚡ quick win
  2. medium severity:02Declare a policy for AI crawlers⚡ quick win
Moderate effort
A few days each — book this sprint.
  1. critical severity:01Unblock the initial render
  2. medium severity:02Add Schema.org structured data
  3. medium severity:03Right-size and modernize images
  4. low severity:04Reduce total page weight
Larger projects
A week+ each — scope and plan.
  1. critical severity:01Cut and defer JavaScript
Fix these with AI

Bundle any of the 7 fixes into one ready-to-paste prompt for Claude Code, Cursor or v0 — it carries the site-specific evidence and exact snippets.

Filter·Sort
01 / 07

Unblock the initial render

Critical·Medium effort·Affects 10 pages·~1.1 s faster
Create ticket →

CSS and JavaScript in the critical path delay first paint — visitors stare at a blank screen, and Largest Contentful Paint (a Google ranking signal) suffers.

Impact — Largest Contentful Paint is a Google ranking signal. Sites in the slowest quartile of their category see 30–50% less organic search traffic than faster peers.

Found on this site~1.1 s faster if fixed
  • ·Render-blocking requests — Est savings of 1,350 ms
  • ·Reduce unused CSS — Est savings of 23 KiB
Seen on:/about/pricing//contact/oss+5 more
▸ Steps (4)
  1. 1.Inline critical above-the-fold CSS and defer the rest.
  2. 2.Add async or defer to render-blocking scripts.
  3. 3.Preload the LCP image and key fonts so the browser discovers them early.
  4. 4.Remove unused CSS rules from above-the-fold stylesheets.
  5. For your stack
  6. 1.Use next/font so fonts do not block render.
  7. 2.Avoid importing large global CSS; prefer per-component styles.
Paste into Claude Code, Cursor or v0 to apply this fix.
02 / 07

Cut and defer JavaScript

Critical·Large effort·Affects 10 pages·~1.4 s faster
Create ticket →

Large scripts block the browser’s main thread, so the page looks loaded but does not respond to taps or clicks. This is the most common cause of a slow mobile experience and directly drives up bounce rate.

Impact — Heavy JavaScript is the #1 driver of slow mobile sites — 53% of mobile users abandon pages that take longer than 3 seconds to load (Google mobile-speed research).

Found on this site~1.4 s faster if fixed
  • ·Reduce unused JavaScript — Est savings of 819 KiB
  • ·Reduce JavaScript execution time — 2.3 s
  • ·Minimize main-thread work — 3.5 s
  • ·Legacy JavaScript — Est savings of 42 KiB
Seen on:/about/pricing//contact/oss+5 more
▸ Steps (4)
  1. 1.Audit the bundle to find the largest dependencies (a bundle analyzer or source-map-explorer).
  2. 2.Code-split so route- and below-the-fold code loads on demand instead of upfront.
  3. 3.Remove or replace heavy third-party scripts; load non-critical ones with async/defer or after first interaction.
  4. 4.Drop legacy polyfills and transpilation targets that modern browsers no longer need.
  5. For your stack
  6. 1.Use next/dynamic to lazy-load heavy components.
  7. 2.Run @next/bundle-analyzer to find oversized chunks.
  8. 3.Set a modern browserslist so Next.js stops shipping legacy transforms.
Paste into Claude Code, Cursor or v0 to apply this fix.
03 / 07

Address accessibility gaps

High·Small effort·Affects 5 pages·⚡ Quick win
Create ticket →

Accessibility issues exclude users of assistive technology and create legal exposure (ADA / European Accessibility Act). Many fixes also help SEO.

Impact — About 15% of users have a disability (WHO). Accessibility gaps both exclude these users and create ADA/EAA compliance risk in the US and EU.

▸ Steps (3)
  1. 1.Give interactive elements and dialogs accessible names (aria-label or visible text).
  2. 2.Ensure every meaningful image has descriptive alt text.
  3. 3.Check color contrast meets WCAG AA.
Paste into Claude Code, Cursor or v0 to apply this fix.
04 / 07

Declare a policy for AI crawlers

Medium·Small effort·Affects 1 page·⚡ Quick win
Create ticket →

Answer engines like ChatGPT, Perplexity and Claude crawl with named bots (GPTBot, ClaudeBot, Google-Extended…). With no explicit robots.txt rule you have made no decision — you neither invited them in to be cited nor kept them out. Either choice is fine; silence isn’t.

Impact — AI answer engines are a fast-growing discovery channel. Sites they can’t identify a policy for are crawled on the bot’s terms, and sites that block them forfeit citations — both are decisions worth making deliberately.

Found on this site
  • ·Unspecified: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Google-Extended, PerplexityBot, Perplexity-User, Applebot-Extended, CCBot
Seen on:/robots.txt
Copy-paste fix
# Allow AI answer engines to read and cite your content:
User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: Applebot-Extended
Allow: /

User-agent: CCBot
Allow: /

# …or block them from training/crawling instead — pick one:
# (replace "Allow: /" with "Disallow: /" above)
▸ Steps (4)
  1. 1.Decide whether you want AI answer engines to read and cite your content.
  2. 2.Add an explicit Allow or Disallow rule for each major AI bot in robots.txt.
  3. 3.If you allow them, make sure your key content is server-rendered so they can actually read it.
  4. 4.Re-run the readiness checker to confirm the policy is detected.
Paste into Claude Code, Cursor or v0 to apply this fix.
05 / 07

Add Schema.org structured data

Medium·Medium effort·Affects 6 pages
Create ticket →

Schema.org JSON-LD tells search engines and answer engines what each page is — an Organization, an Article, a Product, an FAQ. Pages with structured data earn richer search results and are easier for LLMs to summarize and cite accurately.

Impact — Structured data is a low-risk SEO and AI-visibility win: it doesn’t change your design but materially improves how engines understand and present your pages.

Found on this site
  • ·Present: Organization (2), TechArticle (2), WebSite (2), BreadcrumbList (1), Service (1)
Copy-paste fix
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "vercel.com",
  "url": "https://vercel.com",
  "logo": "https://vercel.com/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/your-company",
    "https://twitter.com/your-handle"
  ]
}
</script>
▸ Steps (4)
  1. 1.Add an Organization + WebSite schema to your homepage (identity for the whole site).
  2. 2.Add BreadcrumbList to section pages so engines understand your hierarchy.
  3. 3.Add page-type schema where it fits — Article/BlogPosting on posts, FAQPage on Q&A, Product on product pages.
  4. 4.Validate with Google’s Rich Results Test before shipping.
Paste into Claude Code, Cursor or v0 to apply this fix.
06 / 07

Right-size and modernize images

Medium·Medium effort·Affects 2 pages
Create ticket →

Oversized images waste bandwidth and slow the largest element on the page. On mobile connections this is often the single biggest load-time cost.

Impact — Images account for roughly 25% of an average mobile page (HTTP Archive). Every MB of unoptimized images adds 1–2 seconds of mobile load time.

Found on this site
  • ·Improve image delivery — Est savings of 273 KiB
Seen on:/about/
▸ Steps (4)
  1. 1.Serve images at the dimensions they are displayed, with srcset for different screen sizes.
  2. 2.Use modern formats (WebP/AVIF) with fallbacks.
  3. 3.Lazy-load below-the-fold images.
  4. 4.Compress images — aim well under 200 KB for most photos.
  5. For your stack
  6. 1.Use the next/image component — it handles sizing, modern formats and lazy-loading automatically.
Paste into Claude Code, Cursor or v0 to apply this fix.
07 / 07

Reduce total page weight

Low·Medium effort·Affects 2 pages
Create ticket →

Heavy pages cost real money for users on metered mobile data and load slowly on weak connections — a meaningful share of every site’s traffic.

Impact — Every additional megabyte of page weight typically adds 1–2 seconds of mobile load time on a slow connection (HTTP Archive).

Found on this site
  • ·Avoid enormous network payloads — Total size was 2,919 KiB
Seen on:/kb/tanstack/kb/builds
▸ Steps (3)
  1. 1.Enable text compression (Brotli or Gzip) for all text assets.
  2. 2.Trim the largest payloads — usually JavaScript and images.
  3. 3.Remove unused third-party embeds and scripts.
Paste into Claude Code, Cursor or v0 to apply this fix.

Shipped a fix? Open the task list or hit ↻ Re-scan in the header — the comparison shows what moved.

Detail

Per-page results

Mobile metrics shown, worst performance first. Click a row for the full per-page deep dive — LCP element, page weight breakdown, top failing checks.

Show▸
PagePerf
/contact→54
/about→56
/pricing→56
/kb/builds→59
/oss→60
/→63
/docs/oidc→64
/geist/table→66
/docs/redis→81
/kb/tanstack→88

10 of 10 pages scanned successfully. Each row links to the full per-page report with mobile + desktop side by side.

Coverage

Scan coverage

Pages were discovered via sitemap and sampled across URL patterns. Issues found on a sampled page very likely affect the rest of its pattern group.

Show▸
Discovered
8725
Sampled
10
Scanned OK
10
Failed
0

Methodology

How we measured this

Every page measured with Google PageSpeed Insights (1 run per page per viewport — quick scan). Real-user data, where shown, comes from the Chrome UX Report.

Show▸
  • ▸Lab data is a cold first visit from Google's US infrastructure; real users with warm caches and in other regions will differ.
  • ▸Mobile is emulated on throttled slow-4G; desktop is unthrottled. Only public pages are scanned.
  • ▸Quick scan (1 run/page) — upgrade to a paid scan for median-of-3 accuracy.

Full deep-dive on every check at /methodology.

Share

Embed this badge anywhere

An SVG badge for this scan. It shows this scan’s scores and does not change if you re-scan. Embeds in your README, site footer, or blog post.

Public report URL

https://avocadoscore.io/r/509903f8-ee6d-4d7d-9c19-1e27de86fb0c

Markdown (for README)

[![AvocadoScore — overall verdict](https://avocadoscore.io/api/scans/509903f8-ee6d-4d7d-9c19-1e27de86fb0c/badge?metric=verdict)](https://avocadoscore.io/r/509903f8-ee6d-4d7d-9c19-1e27de86fb0c)

HTML (for site footer)

<a href="https://avocadoscore.io/r/509903f8-ee6d-4d7d-9c19-1e27de86fb0c"><img src="https://avocadoscore.io/api/scans/509903f8-ee6d-4d7d-9c19-1e27de86fb0c/badge?metric=verdict" alt="AvocadoScore — overall verdict" /></a>

Next Steps

Where to go from here

  1. 1Start this week. Knock out the 2 quick wins from the Action Plan — small effort, immediate gain.
  2. 2Re-scan after each round of fixes. Hit Re-scan in the header after each round — the comparison shows what moved and what didn’t.

You just fixed it — now keep it fixed.

Scores drift back after every deploy. For $9/mo we re-scan vercel.com monthly and email you the moment a performance, SEO or AI-readiness score slips — so you catch the regression before it costs you traffic. Cancel any time.

This audit was run on AvocadoScore

vercel.com scored 65 on Mobile Perf. What about yours?

Performance, SEO, and how Claude, GPT and Gemini see your site. Free, every fix unlocked. Same report format, your domain.

Scan my site — free →

Or see how your site stacks up against vercel.com:

Or share this report on X