The rejection: Google hasn't verified this app

Fix “Google hasn't verified this app” on v0 (Vercel)

Because v0 builds Next.js and Next server-renders your homepage, your diagnosis is different from the Vite platforms: the empty-shell rejection rarely applies. The subdomain and the paperwork do.

Platform: v0Stack: Next.js (App Router), deployed to VercelLands on: *.vercel.app
01 — Why this happens

v0 deploys to Vercel, so you start on a *.vercel.app subdomain that can't be verified as yours. Next.js renders the homepage HTML on the server, so 'unresponsive' is rare here — when v0 apps get rejected it's usually the subdomain, a homepage with no real description, or a privacy policy on the wrong domain.

02 — What Google says

Each fix below traces to a requirement Google publishes.

Nothing here is our opinion. Every requirement links to Google’s own page — open it and verify the fix yourself before you resubmit.

Your app must run on a domain you own and have verified — the top private domain, like yourdomain.com. Google's review treats a shared platform subdomain like *.lovable.app or *.vercel.app as not yours.

Google requirement · R1Read it on Google’s docs

Verify the domain in Search Console with the same Google account that owns the Cloud project; verifying under a personal account that isn't on the project fails silently.

Google requirement · R2Read it on Google’s docs

Your homepage must describe what the app does and link to your privacy policy.

Google requirement · R6Read it on Google’s docs

Host your privacy policy on the same domain as your homepage — a Notion page or Google Doc on another domain is rejected.

Google requirement · R11Read it on Google’s docs

The policy link on your homepage and the policy URL on your consent screen must point to the same policy.

Google requirement · R12Read it on Google’s docs
03 — The fix

Do these in order, on v0.

  1. 01

    Add your own domain to the Vercel project

    Attach a domain you own in the project's domain settings and set it as the primary domain, so homepage, privacy policy, and redirect URIs all sit on one owned domain.

  2. 02

    Verify the domain in Search Console

    Use the same Google account that owns your Cloud project — otherwise verification silently does nothing.

  3. 03

    Give the homepage a real description

    Even server-rendered, the homepage still has to say what the app does and link the privacy policy. A bare hero with no description can still be rejected.

  4. 04

    Point the policy URL at your domain

    Host the policy at yourdomain.com/privacy and use that one URL on both the homepage and the consent screen.

Check it before you resubmit

See exactly what Google’s crawler sees — free.

Paste your URL and scopes. The pre-check fetches your homepage the way Google does, finds your privacy-policy link, and flags the blockers this rejection is about — in seconds, no signup.

Questions

Straight answers.

Do v0 apps hit the 'homepage unresponsive' rejection?

Rarely. Next.js server-renders the homepage, so the crawler gets real HTML. If you're rejected, look first at the *.vercel.app subdomain and whether your homepage actually describes the app.

Is a *.vercel.app URL enough to get verified?

No — it's a shared subdomain you can't prove you own. Add a custom domain to the Vercel project and verify it in Search Console.