501 vs 405: Not Implemented vs Method Not Allowed

501 and 405 can look similar in logs, but they tell clients, crawlers, and API consumers different things.

Aspect501405
MeaningNot Implemented describes how the server processed the request and what the client should do next.Method Not Allowed describes how the server processed the request and what the client should do next.
Typical use caseHTTP 501 Not Implemented indicates a server errors response outcome.HTTP 405 Method Not Allowed indicates a client errors response outcome.
Caching/client behaviorCheck cache headers and downstream behavior for 501.Check cache headers and downstream behavior for 405.
SEO implicationsSearch crawlers interpret 501 according to server-errors semantics.Search crawlers interpret 405 according to client-errors semantics.
API/backend impactAPI clients may branch logic specifically on 501.API clients may branch logic specifically on 405.

When to use one vs the other

Use 501 when the response should communicate not implemented behavior; use 405 when method not allowed is the accurate protocol signal.

A frequent mistake is swapping 501 and 405 for convenience; that causes client retry bugs, incorrect cache signals, and misleading monitoring data.

Decision summary: if user agents should receive the Not Implemented signal, return 501; if they should receive Method Not Allowed, return 405.

FAQ

What is the biggest difference between 501 and 405?

501 communicates Not Implemented, while 405 communicates Method Not Allowed. Choosing the right one keeps clients and intermediaries predictable.

Do 501 and 405 have SEO or caching impact?

Yes. Search engines and caches interpret status classes differently. Use each code according to its semantics to avoid accidental indexing, stale responses, or crawl inefficiency.

Can APIs safely return 501 instead of 405?

Only when it matches contract semantics. API clients often branch logic by exact code, so swapping them can break retries, auth handling, or user-facing errors.

Related guides: 501 Not Implemented ยท 405 Method Not Allowed

Related comparisons