# 413 Content Too Large: fixing upload size limits

> 413 Content Too Large means the request body, usually an upload, exceeds the size the server is willing to accept.

URL: https://yes-seo.com/http-status-codes/413

**413 Content Too Large** means the request body, usually an upload or a big form submission, is larger than the server is willing to accept. Older specs called it “Request Entity Too Large” and later “Payload Too Large,” wording many servers still print.

## Definition

[RFC 9110, section 15.5.14](https://www.rfc-editor.org/rfc/rfc9110#section-15.5.14) lets the server refuse the request and close the connection. If the limit is only temporary, the server should send `Retry-After`. Clients that send `Expect: 100-continue` can learn about the limit before uploading anything (see [100 Continue](https://yes-seo.com/http-status-codes/100)).

## Where the limit lives

A 413 can come from any layer between the browser and your code, so check each one:

- **Nginx**: `client_max_body_size`, 1 MB by default. Its error page still says “413 Request Entity Too Large.”

- **Apache**: `LimitRequestBody`.

- **CDN or proxy**: Cloudflare, for example, caps request body size by plan (100 MB on Free and Pro at the time of writing).

- **PHP**: `upload_max_filesize` (default 2M) and `post_max_size` (default 8M). PHP doesn’t send 413 itself (oversized uploads arrive empty or flagged with an upload error), but the fix belongs on the same list. WordPress’s “exceeds the maximum upload size” message comes from these settings.

## How to fix it

```
# Nginx (http, server or location block)
client_max_body_size 64m;

# Apache
LimitRequestBody 67108864

; php.ini (then restart PHP-FPM)
upload_max_filesize = 64M
post_max_size = 64M
```

Raise limits only where uploads happen, such as an admin or upload location, rather than site-wide. For very large files, upload straight to object storage with signed URLs, or use resumable uploads, which also avoid [408](https://yes-seo.com/http-status-codes/408) timeouts on slow connections.

## SEO impact

None for normal crawling: Googlebot requests pages with GET and sends no body, so it can’t trip a size limit. A 413 matters for your users (failed uploads, broken forms) and for API integrations that POST data. If a page URL somehow returns 413 to a plain request, check your security rules; Google would treat it like any other 4xx and drop the page.

## Example and testing

```
HTTP/1.1 413 Request Entity Too Large
Server: nginx
Content-Type: text/html
Connection: close
```

Clients act on the number, not the text, so “Request Entity Too Large” and “Content Too Large” mean the same thing. Our [HTTP header checker](https://yes-seo.com/http-header-checker) and [HTTP status checker](https://yes-seo.com/http-status-checker) send ordinary requests without a body, so they won’t reproduce an upload limit; test that with curl instead, e.g. `curl -i -F 'file=@big.zip' https://www.example.com/upload`.

## Frequently asked questions

### How do I fix “413 Request Entity Too Large” in WordPress?

Raise the upload limit at every layer: client_max_body_size in Nginx (or LimitRequestBody in Apache), plus upload_max_filesize and post_max_size in PHP. On managed hosting, ask your host to change them.

### Does a 413 error affect SEO?

No. Crawlers fetch pages without a request body, so they never hit upload limits. It only affects visitors and integrations that send data.

### Why do I still get 413 after changing php.ini?

Another layer still has a lower limit, usually Nginx’s client_max_body_size or a CDN, or PHP-FPM wasn’t restarted. Check each layer between the visitor and your application.

