Why can’t ChatGPT access my website?
Bring the URL ChatGPT failed to open and a terminal. Five quick tests show whether ChatGPT-User was blocked by your CDN, stopped by a challenge page, sent to a login or preview wall, or handed an empty JavaScript shell. Each cause has a specific fix in your hosting settings or for your coding tool, and none of them means rebuilding the site or opening your app screens to bots.
What “I can’t access that site” usually means
When someone pastes your link or asks ChatGPT to look at your site, it opens the page with the ChatGPT-User agent. OpenAI says this agent acts on a user’s request, isn’t used for automatic crawling, and that robots.txt rules may not apply to it (OpenAI, “Overview of OpenAI crawlers”, read 15 Oct 2026). So for a pasted link, robots.txt is rarely the culprit. Something on the way answered instead of your page.
ChatGPT describes the failure in different words, and some failures don’t look like failures at all:
| What ChatGPT says | Likely cause |
|---|---|
| “I can’t access that website” or “the site is blocking me” | CDN or firewall returns 403 or 429 |
| “There’s a security check” or it describes a captcha | Challenge page |
| It describes a sign-in screen | Login wall or preview protection |
| “The page seems to have little content” | Text drawn by JavaScript |
| It answers anyway, vaguely or wrongly | It never fetched the page and answered from memory or snippets |
Run the AI crawler checker first: it requests your home page as ChatGPT-User and eleven other bots and shows which ones your CDN turns away. Then test the exact URL that failed.
Five tests for the failing URL
An example run, with the URL ChatGPT couldn’t open:
URL="https://yoursite.com/pricing"
UA="Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot"
# 1. Status line: anything but 200 is a block or an error
curl -s -o /dev/null -D - -A "$UA" "$URL" | head -n 1
# 2. Challenge page: a cf-mitigated header means Cloudflare served a check
curl -s -o /dev/null -D - -A "$UA" "$URL" | grep -i "cf-mitigated"
# 3. Login or preview wall: a redirect to a sign-in page
curl -s -o /dev/null -D - -A "$UA" "$URL" | grep -i "^location"
# 4. Words visible without JavaScript: dozens means an empty shell
curl -s -A "$UA" "$URL" | sed 's/<[^>]*>/ /g' | wc -w
# 5. Slow answers: more than a few seconds is a risk
time curl -s -o /dev/null -A "$UA" "$URL"
A good result: HTTP/2 200, no cf-mitigated header, no redirect to a login, hundreds of words, and an answer in about a second.
One limit: a borrowed user agent only reveals rules that look at the user agent. If your CDN verifies bots against OpenAI’s published addresses (openai.com/chatgpt-user.json), your curl is treated as a fake while the real bot may pass, or the reverse. Your CDN’s security events or server logs show what happened to real ChatGPT-User requests.
Fix it by cause
| Cause | Fix |
|---|---|
| CDN returns 403 | On Cloudflare, set the Agent policy to Allow. Domains added from 15 Sep 2026 start with Agent bots blocked on pages that show ads (Cloudflare docs, “Block AI Bots”, updated 1 Jul 2026, read 15 Oct 2026). Details on Cloudflare blocking AI crawlers. |
| Challenge page | Turn off Bot Fight Mode or add a skip rule for verified bots; challenges stop every fetcher that can’t solve them. |
| 429 Too Many Requests | Raise rate limits for verified bots, or cache your HTML at the edge. |
| Login or preview wall | Give ChatGPT the production URL. Vercel’s Standard Protection covers every deployment except production domains (Vercel docs, “Deployment Protection”, updated 15 Sep 2026, read 15 Oct 2026). Public facts belong on public pages. |
| Empty shell | Server rendering, static generation or prerendering for public pages; the tests are on My vibe-coded site is invisible to ChatGPT. |
| Never fetched | Ask again with Search on, or ask it to open the exact URL. |
A prompt for your coding tool
For the rendering and redirect causes, hand your AI coding tool one measurable job. An example:
ChatGPT can't read https://yoursite.com/pricing. Make every public page
return its full text in the first HTML response, without JavaScript and
without a redirect to a login. Leave the app screens behind auth.
Accept when this prints HTTP/2 200 and the page's H1:
curl -s -D - -A "ChatGPT-User/1.0" https://yoursite.com/pricing | head -n 40
CDN settings live outside your repo, so change those in the dashboard and rerun the five tests.
Where Katman fits, and what it can’t do
Katman MCP runs inside your AI coding tool. katman_audit_site requests your live pages as ChatGPT-User, OAI-SearchBot and the other AI bots through your CDN, reports status codes, challenges and soft 404s, and counts the words each page shows without JavaScript. katman_scan_code tells you whether your framework renders on the server or only in the browser, and katman_prompt returns the rendering fix with an acceptance check. Katman Pro is $99 a month for up to 3 sites, with fix prompts and page briefs uncapped. Or have us do it: Growth writes 30 pages a month for you. Plans are on the pricing page.
It can’t change your Cloudflare or Vercel settings for you, and it doesn’t edit your site by itself: your coding tool makes the code changes. Once ChatGPT can open your pages, being found in search is the next step: How to show up in ChatGPT search.
Written by the Katman team, Rnify Limited. OpenAI, Cloudflare, Vercel and Vercel/MERJ pages checked 15 October 2026.
Who this is not for
- App screens behind a login: those should stay closed to bots.
- Sites that block AI agents on purpose: this page is about letting them in.
- Pages ChatGPT can open but doesn’t recommend: start with Why doesn’t ChatGPT recommend my brand?
Frequently asked questions
Does robots.txt stop ChatGPT from opening a link I paste?
Usually not. OpenAI says ChatGPT-User acts on a user’s request, so robots.txt rules may not apply to it. When a pasted link fails, the server, CDN or firewall answered with something other than your page.
ChatGPT opened my page but says it’s empty. Why?
Because the text is drawn by JavaScript. OpenAI’s fetchers didn’t run JavaScript in Vercel and MERJ’s analysis (December 2024, third-party study), so a client-rendered page arrives as an empty shell. Server rendering or prerendering for public pages fixes it.
Can ChatGPT read pages behind a login?
Not with a plain fetch: it arrives without your session, like a stranger. Keep app screens behind the login, and put the facts people ask about (pricing, features, docs) on public pages.
Can ChatGPT open my localhost or staging URL?
No. It fetches from OpenAI’s servers, so localhost and private network addresses are out of reach, and Vercel’s Standard Protection puts preview deployments behind a login. Give it the public production URL.
My curl test returns 200, but ChatGPT still can’t open the page. Why?
Your CDN may verify bots by IP address, rate-limit them or block some regions, and a curl with a borrowed user agent doesn’t trigger those rules. Look for real ChatGPT-User requests in your CDN’s security events or server logs.
If ChatGPT can’t open my site, am I also missing from ChatGPT search?
Not necessarily. Search uses a different bot, OAI-SearchBot, which may be allowed while ChatGPT-User is blocked, or the other way round. Test both user agents.