505 HTTP Version Not Supported: a rare protocol error

505 HTTP Version Not Supported means the server refuses the major HTTP version used in the request.

Check a URL’s status code

505 HTTP Version Not Supported means the server refuses the HTTP version the client used in its request. With modern browsers it’s almost extinct, because HTTP/2 and HTTP/3 are agreed before any request is sent. When it does appear, the cause is usually a malformed request or very old software.

Definition

RFC 9110, section 15.6.6 says the server “does not support, or refuses to support, the major version of HTTP that was used in the request message,” and should explain why and which protocols it does support.

How versions are actually chosen

  • HTTP/1.1 states its version in the request line (GET / HTTP/1.1).
  • HTTP/2 is agreed during the TLS handshake via ALPN (h2), so an unsupported version never reaches the request stage.
  • HTTP/3 is advertised with the Alt-Svc header or HTTPS DNS records, and clients fall back if it fails.

So 505 mostly appears when a request line is broken or hand-built: a raw space in a URL that confuses the parser (some servers report that as 505, others as 400), a script that writes HTTP/2.0 into a text request line, or a legacy appliance that only speaks HTTP/1.0.

SEO impact

Google’s crawlers support HTTP/1.1 and HTTP/2, and Googlebot crawls over HTTP/2 when that benefits the site. Google treats 505 like any other 5xx: crawling slows and URLs that keep failing are eventually dropped (Google’s documentation). If Googlebot gets 505s, look for a proxy or security appliance between the internet and your server that mishandles one of those versions. Google has also explained that a site can opt out of HTTP/2 crawling by answering with 421 Misdirected Request; don’t use 505 for that.

How to fix it

  • Encode spaces and special characters in URLs (%20) wherever links are generated.
  • Update or reconfigure old load balancers, WAFs and proxies so they accept HTTP/1.1 and HTTP/2.
  • In scripts, use a real HTTP library instead of writing request lines by hand.

How to check

The page speed test reports which HTTP version your server uses, the HTTP header checker shows the full response, and the HTTP status checker tells you which URLs fail.

GET /index.html HTTP/2.0
Host: legacy.example.com

HTTP/1.1 505 HTTP Version Not Supported
Content-Type: text/plain
Connection: close

Frequently asked questions

Can a browser cause a 505 error?

Rarely. Modern browsers negotiate HTTP/2 or HTTP/3 before sending requests and fall back to HTTP/1.1. A 505 usually points to a script, an old device or a broken URL.

Which HTTP versions does Googlebot use?

Google’s crawler documentation lists support for HTTP/1.1 and HTTP/2. Googlebot uses HTTP/2 when it benefits the site, and a server can opt out with a 421 response.

How do I fix a 505 error?

Check whether the failing URLs contain unencoded spaces or odd characters, then look at any proxy or firewall in front of your server. Make sure every layer accepts HTTP/1.1 and HTTP/2.