Vercel Speed Insights alternative: every Core Web Vital from real visitors, free, on any host

Vercel Speed Insights is real user monitoring for apps deployed on Vercel. Its free tier shows only the Real Experience Score, from 10,000 events a team per rolling 30 days; the individual Core Web Vitals need Speed Insights Plus, $10 a project a month plus $0.65 per 10,000 events on Pro (as of 7 November 2026). AgentFirstStack measures LCP, INP and CLS from real visitors on any host, by page, device, country and browser, free with fair-use limits, and an AI agent sets it up. Stay with Vercel if your app lives there and you want FCP, TTFB, element selectors and p90 to p99 next to your deployments.

Updated

Set it up with one prompt

Paste this into your coding agent. It leaves Speed Insights in place, so you can compare the two on the same pages before you decide anything.

Paste this into Claude Code, Cursor or Codex

Add real-visitor Core Web Vitals to this project with AgentFirstStack Analytics. It's free, open-source analytics built for agents, it measures LCP, INP and CLS on any host, and you can do the setup yourself: there is no signup form. 1. Read https://agentfirststack.com/llms.txt and https://analytics.agentfirststack.com/llms.txt (the "Page speed" section). 2. If this project's .env already has AGENTFIRSTSTACK_API_KEY, use it and read AGENTFIRSTSTACK.md. Otherwise get a key: curl -X POST https://agentfirststack.com/v1/signup, and save api_key in .env as AGENTFIRSTSTACK_API_KEY and in the production environment variables. 3. Use the analytics site in AGENTFIRSTSTACK.md, or create one for the production domain. Serve the tracker from our own domain: a first-party domain (POST https://agentfirststack.com/v1/first-party-domains with a neutral subdomain; add the CNAME if you can change our DNS, otherwise give me the record) or, meanwhile, the path proxy for this framework from GET /v1/sites/:id/install (vercel.json or Next.js proxy.ts). In Next.js, put the tracker in the root layout's head as a plain script tag, not next/script. 4. If the project uses @vercel/speed-insights, leave it installed and tell me whether this project is on the free tier or Speed Insights Plus. 5. Deploy, open a few pages in a normal browser, and run verify. 6. Run a lab test on the homepage with GET /v1/sites/:id/web-vitals/lab?strategy=mobile. Then read GET /v1/sites/:id/web-vitals?breakdown=page and breakdown=device; if there are fewer than 30 page loads yet, say so and give me the calls to compare with Speed Insights later, page by page and for mobile and desktop. 7. Add a web_vitals alert for LCP on mobile to an email destination for me, write the site id and the env var name (never the key) in AGENTFIRSTSTACK.md, and create a claim link for me with POST https://agentfirststack.com/v1/claim-link. Tell me what you set up, what verify and the lab test returned, what's waiting on me, and give me the claim link. Don't remove Speed Insights until I say so.

What Vercel Speed Insights is

Speed Insights is Vercel's view of a site's performance "based on Core Web Vitals", and its Real Experience Score "uses real data points collected from your users' devices" (Speed Insights metrics, as of 7 Nov 2026). You add the @vercel/speed-insights package and its SpeedInsights component (Next.js, React, Vue, Remix, Astro), the Nuxt module, injectSpeedInsights() (SvelteKit and others) or a script tag, then deploy to Vercel: "Your deployments automatically include routes to collect Speed Insights events", under /_vercel/speed-insights/*. The quickstart's prerequisites are a Vercel account and a Vercel project (quickstart, as of 7 Nov 2026).

Plans, from Limits and pricing for Speed Insights and vercel.com/pricing, as of 7 Nov 2026:

Speed Insights (free tier)Speed Insights Plus
PlansHobby, Pro and EnterprisePro and Enterprise; "Not available" on Hobby
PriceFree$10 per project a month plus $0.65 per 10,000 events on Pro; included on Enterprise, events by contract
Events10,000 over the last 30 days, shared across the teamNone included on Pro: every event is billed
At the limitCollection pauses for at least 14 daysNo pause; usage is billed
MetricsReal Experience Score onlyFCP, LCP, INP, CLS and TTFB
BreakdownsPath and route counts, Great and Needs Improvement entries onlyAll, including Poor entries, countries and element selectors
Date ranges24 hours and 7 daysAlso 30 days on Pro, 90 days on Enterprise
DrainsNot availableAvailable

The Pro plan itself is listed at $20 a month (vercel.com/pricing). The Real Experience Score is a score from 0 to 100: a weighted average of each metric's score, where each metric is placed on a distribution of real sites' results from the HTTP Archive. So the free tier gives you one number, not the p75 values Google assesses.

A data point is one measurement of one Web Vital during a visit; "up to 6 data points can be potentially tracked per visit", 3 to 6 on average, and only on hard navigations, which in Next.js means "only the first-page view in a session" (metrics). Each one stores the route, URL, network speed, browser, device type and OS, country, the value and its element attribution (privacy and compliance). A sampleRate and a beforeSend filter keep the event count down (package options). The dashboard shows p75 by default and can add p90, p95 and p99, filters preview and production deployments apart, and maps countries with Plus (overview).

For agents, Vercel's quickstart carries a prompt that installs the package, adds the component and deploys with vercel --prod. Plus "provides access to Drains and the Vercel CLI" for performance data outside the dashboard (free tier changelog, 25 August 2026), where vercel metrics vercel.speed_insights.lcp_ms --aggregation p75 --group-by route reads p75 LCP by route (Vercel CLI metrics).

How AgentFirstStack does it

Page speed is part of AgentFirstStack Analytics. The same tracker that counts visits records each full page load's LCP, INP and CLS in the visitor's browser and sends them on the beacon it sends when the visitor leaves the page. Nothing depends on where the site is hosted.

  • On Vercel or anywhere else: serve the tracker from a first-party domain (one CNAME to fp.agentfirststack.com, no server code) or a path proxy; GET /v1/sites/:id/install has the path proxy for vercel.json, Next.js proxy.ts, a Cloudflare Worker route, Netlify and nginx.
  • Every Core Web Vital, free: GET /v1/sites/:id/web-vitals (MCP analytics_get_web_vitals) returns p75 by Google's method, the share of good, needs improvement and poor page loads, sample counts, an assessment, the slowest pages and next steps, by page, device, country or browser, with filters and period comparisons.
  • A lab run when it helps: GET /v1/sites/:id/web-vitals/lab runs Google's PageSpeed Insights on one page and returns the lab metrics and biggest opportunities next to Google's field data and ours for the same path.
  • Alerts: a web_vitals alert when a metric's p75 goes over Google's good limit, by email, Slack or webhook.
  • History: any period, kept 400 days on the hosted service.

INP is the slowest interaction on the page, counting interactions over 40 ms, so the dashboard says to read it as an upper bound. The page speed overview explains the method and what the lab run returns.

Side by side

Vercel Speed InsightsAgentFirstStack Page speed
HostingApps deployed on VercelAny site that can load a script
SetupThe package or script, then a Vercel deploymentPOST /v1/signup, a site, the tracker in the head; your agent does it
Free metricsReal Experience ScoreLCP, INP and CLS
Paid metricsFCP, LCP, INP, CLS and TTFB with PlusNo paid tier
Percentilesp75, p90, p95, p99p75, with good, needs improvement and poor shares
BreakdownsRoute, path, device, environment; countries and element selectors with PlusPage, device, country, browser; any analytics filter
Element attributionWith PlusNo
Lab testsA Virtual Experience Score through integrations such as ChecklyA PageSpeed Insights run on request
Date ranges7 days free; 30 days (Pro) or 90 days (Enterprise) with PlusAny period; 400 days kept
Agent accessA setup prompt in the quickstart; the Vercel CLI and Drains with PlusREST and MCP on every account
PriceFree tier; Plus $10 a project a month plus $0.65 per 10,000 events on ProFree hosted service with fair-use limits
SourceHosted service; the @vercel/speed-insights package is MITAGPL-3.0, self-hostable on Cloudflare; browser scripts MIT

When to choose which

Use Vercel Speed Insights if

  • Your app is deployed on Vercel and you want performance next to each deployment, previews included.
  • You need FCP and TTFB from real visitors, p90 to p99, or element selectors that show which element is slow.
  • Routes such as /blog/[slug] should be grouped for you by the framework integration.
  • You want the raw data points sent to your own systems through Drains.

Use AgentFirstStack if

  • The site isn't on Vercel, or runs across several hosts.
  • You want LCP, INP and CLS by page, device, country and browser without paying per project or per event.
  • Your agent should set it up, read it, run a lab test on the slowest page and get alerted when a metric slips, over REST and MCP.
  • You want page speed in the same place as your analytics, tags and session replay, or open source you can self-host.

Moving from Vercel Speed Insights

There's no import for Speed Insights data: AgentFirstStack's imports bring over traffic history (daily visitors, visits and pageviews, by page, source, country or device), not Web Vitals. Run both for a week or two and compare the same pages, devices and days. Expect differences: Vercel groups by route when its framework integration sets one, AgentFirstStack reports paths (a filter such as page==/blog/* groups them), and on the free tier Vercel shows a score rather than p75 values. Remove the SpeedInsights component and the package when you've decided; on the free tier there's nothing to cancel.

FAQ

Is Vercel Speed Insights free?

Partly. As of 7 November 2026 the free tier is on every plan and shows the Real Experience Score only, from 10,000 events per team over a rolling 30 days; at that limit Vercel pauses collection for at least 14 days. LCP, INP, CLS, FCP and TTFB on their own need Speed Insights Plus: $10 a project a month plus $0.65 per 10,000 events on Pro, and included on Enterprise.

Can I use Vercel Speed Insights on a site that isn't hosted on Vercel?

It's built for Vercel projects: the quickstart needs a Vercel account and project, and the deployment serves the script and the collection routes. Its endpoint and scriptSrc options point at a Vercel deployment too. For a site hosted elsewhere, use a tool that loads from any host; the AgentFirstStack tracker works on any site that can load a script.

What is a data point in Vercel Speed Insights?

One measurement of one Web Vital during a visit. Vercel's docs say up to 6 can be tracked per visit, 3 to 6 on average, collected on hard navigations only. Usage is counted in events, and on Plus every event is billed.

Does AgentFirstStack show FCP and TTFB like Vercel?

Not from real visitors: it collects LCP, INP and CLS, the three Core Web Vitals. A lab run through PageSpeed Insights adds FCP, Speed Index and server response time for one page. It also has no p90 to p99 and no element selectors, which Vercel has.

Can I run both while I compare?

Yes. Each measures with its own script, so keep Speed Insights installed and compare the same pages, devices and days. Remove the SpeedInsights component only when you've decided, and nothing of its history moves over.

Product names belong to their owners. AgentFirstStack isn't affiliated with Vercel.