426 Upgrade Required

The server will only answer over a different protocol, named in the Upgrade header.

Code
426
Reason phrase
Upgrade Required
Class
4xx Client error
Defined in
RFC 9110 section 15.5.22
Cacheable by default
No

What it means

Client error: the problem lies with the request. Repeating it unchanged will normally fail again.

Common causes. A service that requires a newer TLS or HTTP version.

What to do. Update the client or switch to the protocol the server names.

How clients and crawlers treat it

Google Search. Like every 4xx except 429, it tells Google the content does not exist: an indexed URL is removed from the index, and a new one is not processed. Crawl frequency for the URL gradually drops. Source: Google Search Central, How HTTP status codes, and network and DNS errors affect Google Search.

Caching. Not cacheable by default (RFC 9110 section 15.1 does not list it). A cache stores it only when the response says so with Cache-Control or Expires.

Example response

HTTP/1.1 426 Upgrade Required
Upgrade: HTTP/3.0
Connection: Upgrade

Upgrade Required

How to send 426

nginx
location /example {
    return 426;
}
Apache (.htaccess)
RewriteEngine On
RewriteRule ^example$ - [R=426,L]
PHP
http_response_code(426);
echo 'Upgrade Required';
exit;
Node.js
res.writeHead(426, { 'Content-Type': 'text/plain' });
res.end('Upgrade Required');
Python (Flask)
# in a view function
return 'Upgrade Required', 426

Change the paths to suit. In nginx, add_header needs always to apply to error responses.

Related codes

All status codes · All 4xx codes

Names and numbers from the IANA HTTP Status Code Registry. Google Search behaviour as documented by Google Search Central.