HTTP 300 Multiple Choices

The resource has several representations and the client may choose one.

Updated

300
Multiple Choices
3xx Redirection
Class
RFC 9110 §15.4.1
Defined in

What does HTTP 300 mean?

The resource has several representations and the client may choose one. Meant for content negotiation (different languages or formats). Browsers do not show a choice screen, so in practice sites redirect with 301/302 or use Accept headers instead.

3xx Redirection: The client must take another step — usually follow the URL in the Location header — to complete the request.

Best practices

  • Prefer a 301/302 to the best match, or serve the right variant directly with Vary.
  • For languages, link alternates with hreflang instead.

300 and SEO

Search engines may pick the URL in the Location header if present; otherwise use canonical tags and hreflang.

Example response

HTTP/1.1 300 Multiple Choices

How to return a 300 response

Node.js (Express)

res.redirect(300, 'https://example.com/new-url');

PHP

header('Location: https://example.com/new-url', true, 300);
exit;

Python (Flask)

return redirect('https://example.com/new-url', code=300)

Go (net/http)

http.Redirect(w, r, "https://example.com/new-url", 300)

nginx

return 300 https://example.com/new-url;

Related status codes

  • 301 Moved Permanently — The resource has a new permanent URL, given in the Location header.
  • 302 Found — The resource is temporarily at a different URL, given in the Location header.
  • 406 Not Acceptable — The server cannot produce a response matching the client’s Accept headers.

Check which status code a URL returns with the HTTP header checker, or trace a redirect chain with the redirect checker.

All HTTP status codesSearch the full list of status codes from 100 to 599 with their meanings and SEO impact.
Open the full list

Frequently asked questions

What does status code 300 mean?
300 Multiple Choices: The resource has several representations and the client may choose one.
Does 300 affect SEO?
Search engines may pick the URL in the Location header if present; otherwise use canonical tags and hreflang.