WebmasterID logoWebmasterID
Crawl diagnostics

HTTP 300 Multiple Choices: crawler handling

HTTP 300 Multiple Choices signals that the requested resource has more than one representation and the client (or user) should pick one, optionally guided by a Location header pointing at a preferred choice. It is defined in RFC 9110 but is almost never used in practice for web pages, because there is no standard machine-readable format for the choices. For SEO and crawling, a 300 is ambiguous: most crawlers cannot reliably follow it, so a concrete redirect is preferable.

Verified against primary sources

What 300 means

300 Multiple Choices indicates the target resource has more than one representation — for example different formats or languages — and information about the alternatives is being provided so a choice can be made. RFC 9110 lets the server include a Location header naming a preferred choice, which a user agent may follow automatically.

In practice there is no standardised, machine-readable body format for listing the choices, so general-purpose clients and crawlers cannot act on a 300 the way they can on a 301. It survives mostly in niche content-negotiation setups.

Why it matters for crawling

Search crawlers want one canonical URL per piece of content. A 300 pushes the choice back to the client without a reliable mechanism, so the crawler may not index any representation. If you genuinely have multiple language or format variants, model them with hreflang, distinct canonical URLs, or content negotiation that redirects with a 301/302 — not a bare 300.

If you see 300s in logs, check what software emits them; it is unusual enough that it often points to a misconfigured negotiation layer.

How it appears in analytics and logs

A 300 on an indexable URL means the server declined to choose a representation. Crawlers do not have a defined way to disambiguate, so the URL may go unindexed. Treat repeated 300s on important pages as a configuration issue, not a healthy state.

Diagnostic use case

Recognise a 300 in logs as agent-driven content negotiation, and replace it with a single canonical 301/302 plus a real Content-Location when one representation is clearly preferred.

What WebmasterID can help detect

WebmasterID can surface 3xx status codes crawlers receive, helping you spot URLs returning an ambiguous 300 where a single canonical redirect would index more reliably.

Common mistakes

Privacy and accuracy notes

A 300 status is a request-level negotiation signal with no personal data. WebmasterID records the status a crawler received without attaching it to any visitor identity.

Related pages

Sources and verification notes

Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.