300 Multiple Choices means the target resource has more than one representation, each with its own URL, and the server wants the user or user agent to choose. Typical examples are the same document in different languages or file formats. The body should list the choices with links.
If the server has a preferred choice, it should send that URL in a Location header. RFC 9110 allows user agents to follow it automatically, but browsers do not: the Fetch standard only follows 301, 302, 303, 307 and 308. Users see the response body instead.
A 300 is heuristically cacheable. Because automatic negotiation is unreliable, most sites choose a variant themselves and either serve it directly or use a regular redirect.
Example response
HTTP/1.1 300 Multiple Choices
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/guide.en.html
Content-Type: text/html; charset=utf-8
Content-Length: 102
<ul>
<li><a href="/guide.en.html">English</a></li>
<li><a href="/guide.de.html">Deutsch</a></li>
</ul> SEO and redirect checking
300 is rare and poorly supported by crawlers, so do not rely on it to route visitors or bots. To serve different languages, use separate URLs connected with hreflang annotations. If you redirect visitors based on language or device, use 302 or 307 and keep a default version that crawlers can reach. Browsers stop at a 300, so treat it as the end of the chain when you audit redirects.
Common causes and use cases
- Apache's
mod_spelingfinds several files that could match a misspelled URL and lists them. - Content negotiation lists the available language or format variants instead of choosing one.
- An API offers several formats of a document and lets the client choose.