Fix “homepage URL is unresponsive” on Replit
Replit's version of this rejection has a distinctive cause: Google checked the wrong URL, or checked a Deployment that couldn't return real HTML.
Replit gives you a *.replit.dev development URL that goes to sleep when you're not actively editing. If that's the URL on your consent screen, Google's checker can hit a sleeping or empty page. A static/SPA Deployment can also return a shell with no server-rendered content — same 'unresponsive' verdict, different cause than a Node Deployment that renders HTML.
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 homepage must be publicly accessible without login — a bare sign-in screen is rejected.”
“Your homepage must return meaningful, server-rendered HTML to an automated fetch — a JS-only shell, a bot challenge, a robots block, or an invalid TLS certificate all read as 'unresponsive'.”
Do these in order, on Replit.
- 01
Stop using the dev URL
Remove any *.replit.dev address from your OAuth config. It sleeps and is ephemeral — never a homepage Google can rely on.
- 02
Publish a Node Deployment that server-renders
A Reserved-VM or Autoscale Deployment running a Node server can return real HTML for the homepage. Prefer that over a static SPA Deployment for the landing page.
- 03
Verify what the Deployment returns
Run curl -A "Googlebot" -L https://your-deployment-domain and confirm you get descriptive HTML with a privacy-policy link — not an empty shell or a sleeping-app page.
- 04
Attach your own domain and resubmit
Point a custom domain at the Deployment, use it everywhere in the OAuth config, and 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.
Straight answers.
Why would a working Replit app show as unresponsive?
Usually because Google checked the *.replit.dev dev URL, which sleeps when idle. Use the published Deployment on a custom domain instead.
Does my Deployment need to server-render?
The homepage does need to return real HTML. A Node Deployment that renders the landing page server-side satisfies the crawler; a pure static SPA shell doesn't.