Technical research note

Hostinger's CDN blocks GPTBot with HTTP 429 on every cache miss: the evidence, the diagnosis and the ticket

Hostinger's CDN blocks GPTBot before a request ever reaches the site. On 2026-09-14, 8 of 8 cache-miss requests carrying OpenAI's training crawler identity returned HTTP 429, while 56 of 56 requests from seven other identities returned 200 from the same machine in the same minutes. Hostinger has confirmed in writing that this is deliberate: a rate limit applied to OpenAI's training crawler across their platform, not configurable per domain, and not something they will make an exception for on shared hosting. This page is the full record, and it includes a method you can run against any host in five minutes.

  • Ticket #21396332, escalated 2026-09-14

Cache-miss requests that returned HTTP 200, 2026-09-14

429

the status GPTBot got on 8 of 8 cache-miss requests

  • GPTBot/1.2 0 of 8
  • GPTBot bare 8 of 8
  • OAI-SearchBot 8 of 8
  • ChatGPT-User 8 of 8
  • Googlebot 8 of 8
  • ClaudeBot 8 of 8
  • PerplexityBot 8 of 8
  • Chrome 8 of 8
56 of 56 requests from seven other identities returned 200 from the same machine in the same minutes.

Status: ticket closed by Hostinger, re-measured weekly, still in effect

Measured figures on this page regenerate from the run files: the cache-miss reproduction dates from 2026-09-14, the readability sweep and the production log from 2026-09-21. When the rule changes, this log changes first.

Re-measured with instrumented tooling, and the limit is UNCHANGED rather than tightening. After warming every sitemap URL, 45 of 77 pages were readable to GPTBot, against 44 of 78 on 2026-09-15. Every refusal in that sweep arrived with no cache hit and every page that passed was served from cache, so the cache-miss rule still holds exactly. An earlier unpaced probe the same day suggested the limit had roughly halved; it had not, and the instrumented run did not reproduce it. A burst of requests drains the allowance and then measures what it drained, which is the trap this page warns readers about. Figures now regenerate from gptbot_retest_2026-09-21.json.
Hostinger CLOSED ticket #21396332 as resolved. Their final answer: the 429s are "intentional and server-wide", a rate limit applied "specifically to OpenAI's training crawler (GPTBot/1.x) at the infrastructure level" to "protect shared server resources for all customers on the platform", and "not configurable per domain". They will not make an exception on shared hosting. This corrects one claim below, see the note in section 05.
Ticket #21396332 escalated to Hostinger's infrastructure team with written confirmation of a platform-level edge rule. No timeline given. Reproduction on this page run the same day: 8 of 8 GPTBot cache-miss requests returned 429.
Workaround live: CDN TTL raised to four hours and Vary: User-Agent removed, so GPTBot can read pages another visitor has already warmed. Cache misses still 429.
Hostinger live chat confirms GPTBot is absent from their verified-crawler allowlist, which Googlebot and Bingbot are on.
  • 0 of 8

    cache-miss requests GPTBot got through

  • 56 of 56

    from the seven other identities, same machine, same minutes

  • 0 of 221

    OpenAI fetches in the production log that were GPTBot; the other 221 were its search and browsing crawlers

  • 45 of 77

    sitemap pages readable to GPTBot on 2026-09-21, after warming the cache first

Does Hostinger still block GPTBot?

Yes. Measured again on 2026-09-21, after warming every URL in the sitemap as an ordinary browser, 45 of 77 pages were readable to the versioned GPTBot user agent. The same sweep returned 44 of 78 on 2026-09-15, so the limit is holding steady rather than easing or tightening. An ordinary browser string, sent to 3 of the refused URLs in the same minutes, returned HTTP 200 on 3 of them.

Does warming the cache get GPTBot through?

On a cached page, yes. Across all 77 URLs on 2026-09-21, exactly 0 refusals arrived on a page the CDN served from cache. Every refusal was a cache miss and every page that passed came from cache, which is the whole mechanism in one measurement. Warming is therefore worth doing after every deploy, and it still cannot help a page published minutes ago.

Does crawling more slowly get past the limit?

Only partly. Re-requesting refused URLs one at a time on 2026-09-21, at one request every 20 seconds, 3 of 6 returned HTTP 200. At one request every 60 seconds it was 2 of 6. Pacing recovers some pages a fast sweep loses, which is why any figure taken from a parallel sweep is a floor and not a total.

01 The finding

What Hostinger's CDN does to GPTBot, measured

Any request that reaches Hostinger's edge with the versioned GPTBot user agent and no cached copy to serve gets HTTP 429 with an empty body. The response carries Server: hcdn and a CDN request ID and never touches the origin server, so nothing in the site's own configuration is involved. Requests that hit a warm cache pass, which is why the block hides from casual checks.

  1. GPTBot/1.2 0 of 8 OpenAI training crawler, full versioned string
  2. GPTBot bare 8 of 8 The bare word only, no version, no Mozilla prefix
  3. OAI-SearchBot 8 of 8 OpenAI, builds the index behind ChatGPT search
  4. ChatGPT-User 8 of 8 OpenAI, live fetch when a user question triggers browsing
  5. Googlebot 8 of 8 Google search
  6. ClaudeBot 8 of 8 Anthropic
  7. PerplexityBot 8 of 8 Perplexity
  8. Chrome 8 of 8 An ordinary browser, the control
64 requests across 4 paths, every one with a random query string so the CDN could not serve it from cache. One client IP, 2026-09-14.
Result by crawler identity
IdentityWhat it is200429
GPTBot/1.2 OpenAI training crawler, full versioned string 0 8
GPTBot bare The bare word only, no version, no Mozilla prefix 8 0
OAI-SearchBot OpenAI, builds the index behind ChatGPT search 8 0
ChatGPT-User OpenAI, live fetch when a user question triggers browsing 8 0
Googlebot Google search 8 0
ClaudeBot Anthropic 8 0
PerplexityBot Perplexity 8 0
Chrome An ordinary browser, the control 8 0

One detail worth stating exactly. The bare word GPTBot with no version and no Mozilla prefix passed 8 of 8 on this run. On 11 September the string GPTBot/1.2 on its own failed 5 of 5. The rule matches something in the real crawler's string, and OpenAI's real crawler sends the full string, so the practical effect is total.

Hostinger support ticket #21396332: the agent confirms the 429 is generated at the Hostinger CDN edge before origin, affects two unrelated domains with no shared configuration, is unaffected by security level or traffic blocking rules, and affects only GPTBot, pointing to a platform-level edge rule not configurable from hPanel.
Hostinger support, ticket #21396332, confirming the same result from their side. The full exchange is in section 05.
02 The part most people miss

Why ChatGPT still cites a site whose GPTBot access is blocked

OpenAI runs three crawlers with three jobs, and this rule blocks only one. GPTBot builds the training corpus, the part of the model that knows things without searching. OAI-SearchBot builds the index behind ChatGPT search. ChatGPT-User fetches a page live when a question triggers browsing. The last two returned 200 on every request, so ChatGPT can still find, read and quote this site in real time.

  1. GPTBot 0 of 8 training corpus
  2. OAI-SearchBot 8 of 8 search index
  3. ChatGPT-User 8 of 8 live browsing
Left, the test on 2026-09-14. Right, the server-side AI crawler log for 14 to 21 September 2026, with our own test traffic removed.

The production log settles it independently of any test we ran. In 14 to 21 September 2026, after removing our own testing IPs, OAI-SearchBot fetched 91 pages and ChatGPT-User fetched 130, while GPTBot fetched 0, because every GPTBot line in the raw file came from our own reproduction runs.

Which AI crawlers fetched nothing at all?

Three, over 14 to 21 September 2026: GPTBot, PerplexityBot, Google-Extended. A crawler that fetches nothing cannot hold current information about a site, and only one of those three is being refused. PerplexityBot and Google-Extended were free to crawl and simply did not. Over the same window Anthropic's ClaudeBot fetched 34 pages and Claude-User fetched 4 more on live questions, which is the difference between a crawler that is blocked and one that is uninterested.

What is lost is being part of what the model knows without searching. What survives is everything ChatGPT looks up. A site in this state is cited on questions where the engine searches and absent from the ones where it answers from memory.

03 Elimination

How we proved it was not our site

A host will assume the customer's configuration is at fault, reasonably, so the job was to remove every customer-side variable by direct test before asking anyone to look at the edge. Six checks did it, and the sixth is the one that ended the argument.

  1. The 429 never reaches origin. It carries Server: hcdn, a CDN request ID and Content-Length: 0. No PHP, no .htaccess, no logging script can be in the path.
  2. CDN security level Medium and Off produce identical 429s. The setting is irrelevant to the rule.
  3. hPanel exposes no user-agent rule of any kind. Zero IP blocks, zero country blocks. A rule that matches a user agent cannot be something the customer configured.
  4. No Cloudflare in front. Nameservers and IPs are Hostinger's, and no cf- header appears anywhere.
  5. Hostinger's own edge diagnostic clears the client. /hcdn-cgi/myip returns every classification flag at zero, and it returns 200 under the GPTBot identity while content paths return 429 in the same minute. The TLS fingerprint is identical across identities. The rule is on the user agent and the path, not the client.
  6. A second, unrelated domain on the same host fails identically. Different site, different configuration, same 429, 8 of 8. Two unrelated domains failing the same way is not customer configuration, and Hostinger listed both in the escalation.

The response headers, request by request

Response headers per request, with CDN request IDs
IdentityStatusCacheEdge nodeCDN request ID
GPTBot/1.2 429 none edge9 9a013787e41e1890e2e1a9c94a96235c
GPTBot/1.2 429 none edge7 c66b16cd88681b51638b42aa2984da81
GPTBot/1.2 429 none edge10 6fb289e5e6d5aa1ae81b46a2f2f55eac
GPTBot/1.2 429 none edge6 5027ef225ecb6408b40df7b049e14b5b
OAI-SearchBot 200 DYNAMIC edge7 e071afd1a2e076309db26d1906015a16
OAI-SearchBot 200 DYNAMIC edge8 3750884ba1fe044cf694aca6ab644fd8
OAI-SearchBot 200 DYNAMIC edge8 01f36b1ae0177c8a713aa217574b5842
OAI-SearchBot 200 DYNAMIC edge6 615ab0f946b4608b44037c527917fb63
Googlebot 200 DYNAMIC edge7 ef0bf4a6c619c20e4b2918cd8bb6d592
Googlebot 200 DYNAMIC edge10 f9ec0a6981b1d37417097231d548ff4c
Googlebot 200 DYNAMIC edge8 9ce2ab2e059b3adafe84a52f00a48ff5
Googlebot 200 DYNAMIC edge8 add0b5e6c707d8566e8827d0a6ef2a97
Chrome 200 DYNAMIC edge7 f3fd37b0786f233d1a1e37aed5ddd667
Chrome 200 DYNAMIC edge10 b7b96e4e3994b16b91aac37782ef8bfa
Chrome 200 DYNAMIC edge8 02d1226b644dc2a5be68297c0a1f8c84
Chrome 200 DYNAMIC edge7 a04a26659b915df64de494ce272ab510

Four different edge nodes (edge10, edge6, edge7, edge8, edge9) returned the same result, so it is not one misbehaving node. Every 200 is marked DYNAMIC, meaning it went to origin; every 429 has no cache status at all, because it was refused before the cache was consulted.

04 How it was found

The diagnosis, including the two wrong turns

The diagnosis took a month and was wrong twice, and both wrong turns are in the record because they are the useful part. The first blamed our own logging detour for AI crawlers. The second was a kill switch that removed it and changed nothing. What finally worked was refusing to theorise and measuring the same request under different identities in the same second.

Full crawler sweep: 16 AI user agents, all HTTP 200. GPTBot passed on a CDN cache HIT, so this test never actually reached the rule.
Audit finds GPTBot receiving HTTP 429 on every cache-miss page. First attribution, to our own .htaccess routing AI crawlers through a logging script, was wrong.
Kill switch removes the logging detour entirely. GPTBot still 429s identically. Origin was never the mechanism.
UA-scoped, not IP-scoped: Chrome 200 and OAI-SearchBot 200 from the same IP in the same second as GPTBot 429. Response carries Server: hcdn and a CDN request ID, never reaching origin.
15 consecutive cache-busted GPTBot requests, 15 of 15 returned 429. Controls in the same minute from the same IP: Chrome 15 of 15, OAI-SearchBot 15 of 15, Googlebot 15 of 15, all 200. Reproduced on a second, unrelated domain on the same host. Hostinger live chat confirms GPTBot is absent from their verified-crawler allowlist.
Workaround shipped: CDN TTL raised from 10 minutes to 4 hours and Vary: User-Agent removed, so GPTBot can read pages another visitor has already warmed. Cache misses still 429.
Ticket #21396332 escalated to Hostinger infrastructure. Written confirmation: platform-level edge rule matching GPTBot, no customer-side setting, no timeline. Reproduction on this page run the same day.
Hostinger closes the ticket. Final answer: the 429s are intentional and server-wide, a rate limit applied specifically to OpenAI training crawler GPTBot/1.x at the infrastructure level, to protect shared server resources, not configurable per domain. No exception on shared hosting. This corrected our own earlier claim that it was not rate limiting.
05 The confirmation

What Hostinger confirmed in writing

Ticket #21396332, opened 2026-09-11 and escalated to the infrastructure team on 2026-09-14. The support agent's confirmation, quoted from the ticket, is the part that matters: the refusal is not a misconfiguration on this account, and no site owner can switch it off. It is a deliberate rule applied across the platform, stated by the host in its own words.

"The 429 is being generated at the Hostinger CDN edge, before your origin is ever reached."

"It affects two unrelated domains on our platform with no shared configuration."

"Security level and traffic blocking rules have no effect."

"Every other major crawler passes without issue; only GPTBot is affected."

"This points to a platform-level edge rule that is specifically matching GPTBot, something that exists at the infrastructure layer and is not configurable from hPanel. There is no setting available to you (or to us at the support level) that can whitelist a bot UA or IP range at the CDN edge."

"Googlebot and Bingbot are on a verified crawler allowlist that bypasses CDN security checks. GPTBot is not currently on that list."

"We cannot commit to a timeline or outcome."

Hostinger support ticket #21396332: Googlebot and Bingbot are on a verified crawler allowlist that bypasses CDN security checks and GPTBot is not; the evidence passed to the infrastructure team lists both domains, two request IDs on edge nodes nme-edge8 and nme-edge9, the /myip result with all flags zero, and security level Off producing an identical result.
The allowlist line, and the evidence passed to their infrastructure team: both domains, the CDN request IDs, the edge nodes and the result with CDN security switched off.

Correction, 15 September 2026

This page originally said the mechanism was "not rate limiting" and described it as a verified-crawler allowlist with the largest AI crawler missing from it. That came from the first agent's explanation, and Hostinger's final answer supersedes it. On 15 September they closed the ticket and stated that their servers "apply a rate limit specifically to OpenAI's training crawler (GPTBot/1.x) at the infrastructure level", that the rule exists to "protect shared server resources for all customers on the platform", and that it is "not configurable per domain".

Every measurement on this page still stands. What changed is the label. A rate limit set low enough that 15 consecutive cache-busted requests all fail is indistinguishable from a blanket block when you are testing it from outside. Slowing down only partly lifts it: at one request every 60 seconds on 2026-09-21, 2 of 6 previously refused URLs came back. We could not tell the difference from the client side, and we should have said so rather than ruling one out.

"The 429 responses for GPTBot are intentional and server-wide, this is not caused by anything on your website or your hPanel configuration."

"A different User-Agent string returning 200, it simply doesn't match the rate-limit rule; it does not mean your site behaves differently for that crawler."

"The issue appearing on multiple domains, because the rule is server-wide, not domain-specific."

"While we are unable to allowlist GPTBot on shared/cloud hosting, here are your available options."

"We're sorry we can't offer a per-domain exception on the current hosting plan."

The three options they offered: raise the cache TTL so more requests hit a warm cache, upgrade to a VPS or dedicated server where "you have full control over server-level rules, including the ability to remove or adjust crawler rate limits entirely", or do nothing, on the grounds that OAI-SearchBot and ChatGPT-User already reach the site. Their own words on that last point: "Your site is not invisible to ChatGPT", which matches what we measured in section 02.

So the finding is narrower and more deliberate than we first described, and in one way worse. It is not an oversight in a list. A major shared host has chosen to rate-limit OpenAI's training crawler across its platform, will not make exceptions, and prices the remedy as an upgrade. Anyone publishing on shared hosting is opted into that by default and has no way to see it.

06 Mitigation

The workaround, and what it does not fix

Cache hits pass, so the only customer-side lever is making more requests hit. Two changes did that: the CDN TTL went from ten minutes to four hours, and Vary: User-Agent was removed from the response, because it had been giving every distinct crawler string its own cache key. GPTBot could never warm its own key, so it was locked out of a cache other visitors had already filled.

Why the cache ratio mattered

Hostinger's own CDN analytics for the 30 days to 2026-09-11: 49 hits, 328 misses, 391 dynamic, 772 requests. A hit ratio of 6.3% on a static site. Since GPTBot succeeds only on hits, roughly 94% of the site was unreachable to it before the change.

What it does not fix is the thing that matters most to a publisher. A newly published page has no cached copy, so GPTBot's first attempt is always a miss, and always 429. Hostinger said the same in the ticket: the cache changes are a workaround, and every new cache miss still returns 429. New content stays invisible to the training crawler until the rule is removed, which is the opposite of what a site that publishes for a living needs.

Hostinger support ticket #21396332: the agent states the cache changes are only a workaround, every new cache miss still returns 429, the underlying edge rule remains active and blocks newly published content, there is no customer-side setting left to change, and no timeline can be promised.
Hostinger confirming the limit of the workaround in their own words, after we shipped the cache change.
07 Run it yourself

How to check whether GPTBot can crawl your site

Five minutes, one terminal, no tool. The method has three rules: defeat the cache with a random query string on every request, send the real crawler's full user-agent string rather than the bare name, and run the controls from the same machine within the same minute so nothing but the identity differs.

# 1. GPTBot, full string, cache-busted
curl -sI -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.2; +https://openai.com/gptbot" \
  "https://YOURSITE.com/?miss=$RANDOM" | head -n 1

# 2. Control: an ordinary browser, same second
curl -sI -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0 Safari/537.36" \
  "https://YOURSITE.com/?miss=$RANDOM" | head -n 1

# 3. Control: OpenAI's other crawler
curl -sI -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot" \
  "https://YOURSITE.com/?miss=$RANDOM" | head -n 1

# 4. Control: Googlebot
curl -sI -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
  "https://YOURSITE.com/?miss=$RANDOM" | head -n 1

Read the result in this order. If all four return 200, you are fine. If GPTBot alone returns 429 or 403, look at the response headers: a Server value naming the CDN and a request ID with no cache status means the edge refused it before your site was involved. Repeat GPTBot ten times to rule out a budget. Then run the same four commands against a second site on the same host, ideally one you did not build. If it fails identically, you have the evidence a support agent needs, and the words to use are "reproduced on two unrelated domains, controls pass from the same IP in the same minute."

Two traps. A 200 on a page you visited a minute ago proves nothing, because the CDN served the copy it already had; the random query string is not optional. And a short sequence of 200s from a cold start proves nothing either; we saw first requests pass and then everything fail. Ten cache-busted requests is the minimum for a claim.

The standalone version of this method, written for any host rather than for this one case, is how to check whether AI crawlers can reach your site.

The raw run files behind this page are published alongside it: the 64-request run, the header capture, the log split and the 2026-09-21 re-test, per URL with cache status. CC BY 4.0.

08 Tooling

Where Claude fit, and where it did not

This was diagnosed with Claude Code driving the terminal, and it is worth being precise about what that bought. It did not fix anything, because the fix is a rule on someone else's infrastructure. The rate limit sits on Hostinger's edge, and nothing done from this side removes it.

What it did was run the elimination sequence above as scripts rather than as guesses, capture headers on every request so the CDN request IDs existed when support asked for them, and write the ticket from the measurements instead of from memory.

It also produced both wrong turns. The first attribution to our own logging script was a plausible theory that a script wrote up confidently and that a month of evidence then disproved. The lesson there has nothing to do with the tool: a theory about a 429 is worth nothing until the same request has been sent under two identities in the same second, and no amount of reasoning substitutes for that one measurement.

09 Limits

Method and limits

Everything below is reproducible from one machine with curl. One IP, a fixed set of cache-busted paths, the full user-agent strings as the crawlers actually send them, and every response header captured. The limits are the obvious ones: one host, one account, one domain, measured over a defined window, so this is evidence about this platform rather than a claim about every CDN.

Measured
2026-09-14 10:59:13 UTC
Client
one IP
Requests
64 across 4 paths, all cache-busted
Identities
8, full user-agent strings as sent, listed above
Edge nodes
edge10, edge6, edge7, edge8, edge9
Ticket
#21396332, quoted verbatim
  • Single vantage point. Everything here was measured from one IP. The UA-scoped result, with seven identities passing from the same IP in the same minutes, makes an IP-reputation explanation very unlikely, and Hostinger's own diagnostic showed the IP clean, but the test has not been run from OpenAI's published crawler ranges.
  • The production log undercounts. After the cache change, hits never reach origin, so the server-side log undercounts every crawler equally. The zero for GPTBot is against 221 for OpenAI's other bots in the same log, so the comparison holds; the absolute numbers do not.
  • The bare-word result is reported, not explained. We do not know the exact pattern the rule matches, only that the string OpenAI's crawler actually sends is caught.
  • This is one host. Whether other hosts' edges behave the same way is exactly what the method in section 07 is for.

Written by Abdul Subkhan. Published 2026-09-14. Our measurement rules are on the methodology page. Figures regenerate from the run files, so the page and the data cannot disagree.

10 Questions

Questions about GPTBot being blocked

Does Hostinger block GPTBot?

Yes, at the CDN edge, on cache misses only.

8 of 8 cache-miss requests carrying the versioned GPTBot user agent returned HTTP 429 on 2026-09-14, while 56 of 56 requests from seven other identities, including two other OpenAI crawlers, returned 200 from the same IP in the same minutes. Hostinger confirmed in writing that this is an intentional, server-wide rate limit that cannot be configured per domain. Pages already sitting in the CDN cache pass, which is why a casual spot check can look fine.

Why does ChatGPT still cite a site GPTBot cannot crawl?

Because OpenAI runs three crawlers and Hostinger's rule only catches GPTBot.

GPTBot builds the training corpus, while OAI-SearchBot builds the index behind ChatGPT search and ChatGPT-User fetches a page live when a question triggers browsing. Both of those returned 200 on every request. In production logs from 14 to 21 September 2026, with our own testing addresses excluded, they fetched 221 pages between them and GPTBot fetched 0. So the search side of ChatGPT can still read and cite the site even while the training crawler is refused.

How do I check whether GPTBot can crawl my site?

Send one cache-busted request as GPTBot and one as an ordinary browser, from the same machine, and compare the status codes.

If the GPTBot request returns 429 and the browser request returns 200, the rule is on the user agent. The exact curl commands are on this page. Step by step:

  • Add a random query string to the URL so the CDN cannot serve it from cache.
  • Request it with the full versioned GPTBot user agent.
  • Within the same minute, request it again with an ordinary browser string.
  • Repeat with OAI-SearchBot and Googlebot as further controls.
Is this a rate limit?

Yes, and Hostinger confirmed it in writing on 15 September.

Their servers "apply a rate limit specifically to OpenAI's training crawler (GPTBot/1.x) at the infrastructure level" to protect shared resources, and it is set low enough to look like a block in testing. Fifteen consecutive cache-busted requests returned 429, and pacing them 20 seconds apart still left 3 of 6 refused on 2026-09-21. This page originally said it was not a rate limit, and the correction is in section 05.

Can I fix this from hPanel?

No, there is no hPanel setting that changes it.

Hostinger stated the rule is "not configurable per domain" and that "there is no setting in hPanel that can remove or bypass this limit for GPTBot". Security level, IP rules and bot protection had no effect when we tested them. What is left:

  • Cache warming, which lets GPTBot read pages another visitor has already loaded but does nothing for newly published ones.
  • Hostinger's own remedy, a move to a VPS or dedicated server where crawler rate limits can be removed.
Was this caused by the site itself?

No, the rule sits in Hostinger's CDN, upstream of the site.

The proof came from two directions. A second, unrelated domain on the same host failed identically, and the response headers show the 429 carries the CDN server header and a CDN request ID and never reaches origin. Hostinger listed both domains when it escalated the ticket to its infrastructure team, and its written answer described a platform-level edge rule that no customer setting could have created.

Cite and reuse this case study

Cite this case study as CiteVantage (2026), Hostinger CDN Blocks GPTBot: an HTTP 429 Case Study, and link to this page. The run files are published under CC BY 4.0, so the measurements can be reused with attribution. Figures on the page regenerate from those files, which means a quoted number can be checked against the data rather than taken on trust.

Reference

CiteVantage (2026). Hostinger CDN Blocks GPTBot: an HTTP 429 Case Study. https://citevantage.com/research/hostinger-cdn-blocks-gptbot/

In a sentence

A CiteVantage case study found Hostinger's CDN returned HTTP 429 to GPTBot on 8 of 8 cache-miss requests while every other crawler it tested passed (CiteVantage, 2026).

Downtown Houston from the air at dusk, the city behind our 2,000-answer study
Free, no call required

Find out what the engines can and cannot read on your site.

We will ask ChatGPT, Gemini, Perplexity and Copilot 50 questions each buyers ask about your topic (200 answers), then email you every screenshot within 48 hours.

Book 15 minutes with Abdul Opens Calendly's booking calendar for a 15-minute call, where you see what AI says about your area.

Book 15 minutes with Abdul

Booking through Calendly

Loading Abdul's calendar from Calendly.

The calendar has not loaded here yet. Open Calendly in a new tab

The audit needs no call and no card. If AI already names you, the report says so.

chatgpt.com · "best real estate agent in Houston" ChatGPT answering "best real estate agent in Houston" by naming Houston Properties Team, Found Realty Group and Corcoran Prestige Realty Nine named. None of them you.
Unedited, from a real audit. This is the answer your buyer already sees.