In short. Netlify proxy rewrite requests time out after 26 seconds, with additional restrictions on internal hops, team ownership, protected sites, and shadowing.
Definition: A Netlify proxy rewrite is a redirect rule with HTTP status
200that fetches another location while the requested URL stays in the address bar. Netlify documents a 26 second timeout for proxy rewrite requests and several restrictions on internal and protected rewrites.
Key facts
- Netlify's rewrites and proxies documentation says proxy rewrite requests time out after 26 seconds.
- A
200rule changes the server response while keeping the URL unchanged, according to Netlify's redirect options documentation. - Netlify limits internal rewrites to one hop by default, so a request cannot pass from SiteA to SiteB to SiteC in one request.
- Rewrites between Netlify sites belonging to different teams are not allowed for security reasons.
- Netlify's proxy examples use an external origin in a
200rule, such as/api/*tohttps://api.example.com/:splat.
How does the timeout affect a proxied page?
The public URL is the route a crawler requests. The origin is the other service that Netlify fetches behind that route. A proxy rewrite connects the two: Netlify's servers fetch the target location, and the visitor's address remains unchanged. The redirect options guide identifies status 200 as the status used for rewrites and proxying.
Netlify's rewrites guide sets the documented response-time boundary at 26 seconds. A target that continues running beyond that boundary cannot complete the proxy rewrite request through Netlify. Netlify recommends an asynchronous request for a longer-running process rather than waiting for its response. The documentation states the timeout for proxy rewrite requests; it does not give a separate timeout for a crawler, answer engine, or individual origin type.
Which routing restrictions can affect the response?
The guide limits an internal rewrite to one hop by default. A route on one Netlify site can therefore proxy to another Netlify site, while a chain that continues to a third site is outside the default allowance. Netlify says the one-hop limitation may be amended for customers case by case through support.
Netlify also prohibits rewrites between sites owned by different teams. Separate password-protected sites cannot be the endpoints of a rewrite, although rewrites within one password-protected site are supported. Rules that resolve to the same location and loop indefinitely are incorrect and are ignored.
Proxy routing has content consequences as well. Netlify says relative asset paths can load incorrectly in proxied content and recommends absolute asset paths or a <base> tag. Paths handled by proxies or functions may also fail to redirect from HTTP to HTTPS as expected, so Netlify recommends publishing HTTPS URLs for visitors.
What configuration does Netlify show?
The external-service example in Netlify's documentation uses a splat, which carries the part matched by * into the target path:
/api/* https://api.example.com/:splat 200
The rule makes requests under /api/ pass through Netlify's CDN to the external service. Netlify says responses can be cached at CDN nodes when the API supports standard HTTP caching mechanisms such as ETag or Last-Modified headers. That caching behavior can change what an individual fetch observes compared with a request that reaches the origin.
The redirect options guide says Netlify passes query string parameters to destination paths for rules with status 200, 301, and 302. It also says the redirect engine processes the first matching rule, so a broad rule can handle a path before a later specific rule. A static file can shadow a rewrite unless the rule is forced. In the configuration-file syntax, force = true makes the rule apply even when a file matches the requested path.
Related terms
- How can Netlify add request headers when proxying to another origin?
- Can Netlify rewrite requests to a site owned by another team?
- Which Netlify redirect wins when file and configuration rules overlap?
- How do I add redirects with Netlify's _redirects file?
FAQ
What should you check for a crawler fetch?
Check the public URL's response time, final status, and body through the Netlify route. An origin response that takes longer than 26 seconds reaches Netlify's documented proxy timeout, while a cached response may be served from a CDN node.
Does a proxy rewrite expose the origin URL?
No. A 200 rewrite keeps the requested URL in the browser address bar while Netlify fetches the target behind the scenes. The target host still determines the content returned through the proxy.
Can a proxy rewrite wait for a long report job?
Netlify recommends an asynchronous request for a longer-running process. The proxy request itself has the 26 second timeout documented in the rewrites guide.
Sources
- Netlify Docs, "Rewrites and proxies", 14 July 2025
- Netlify Docs, "Redirect options", 17 September 2026
Check how a page reads to answer engines. Open the GEO score analyzer