# 206 Partial Content and HTTP range requests

> 206 Partial Content means the server is sending only the byte range the client asked for, as used by video players and resumable downloads.

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

**206 Partial Content** means the server is sending only part of a file because the client asked for a specific byte range. It’s how video players seek, download managers resume, and PDF viewers fetch one part of a document at a time.

## Definition

[RFC 9110, section 15.3.7](https://www.rfc-editor.org/rfc/rfc9110#section-15.3.7) says the server is “successfully fulfilling a range request” by transferring one or more parts of the representation. The client sends a `Range` header; the server answers with `Content-Range` describing which bytes it sent, or with a `multipart/byteranges` body for several ranges. Servers advertise support with `Accept-Ranges: bytes`, and a range that can’t be served gets 416 Range Not Satisfiable.

```
GET /media/intro.mp4 HTTP/1.1
Host: www.example.com
Range: bytes=0-1048575

HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 0-1048575/48211533
Content-Length: 1048576
Accept-Ranges: bytes
```

## Where range support matters

- **Video and audio**: players request ranges to start quickly and to seek. Safari in particular expects range support for video files.

- **Large downloads** that should resume after a dropped connection.

- **PDFs** opened in a browser viewer.

Apache and Nginx handle ranges for static files out of the box. Problems usually come from application code that streams files without reading `Range`, or from proxies that strip it.

## SEO impact

A 206 is the normal answer to a range request, so it isn’t an error. The risk is the reverse: a server or cache that sends 206 and a fragment to a request *without* a `Range` header. A crawler fetching your HTML then gets a truncated page. A plain GET for a page should return [200](https://yes-seo.com/http-status-codes/200) with the complete document. Google’s status code documentation doesn’t discuss 206, so don’t count on special handling. (Don’t confuse it with [304 Not Modified](https://yes-seo.com/http-status-codes/304), which sends no body at all because the client’s cached copy is still current.)

## How to check

The [HTTP header checker](https://yes-seo.com/http-header-checker) shows whether a file advertises `Accept-Ranges: bytes`, and the [HTTP status checker](https://yes-seo.com/http-status-checker) confirms that a normal request returns 200. To test a range yourself:

```
curl -s -o /dev/null -w "%{http_code}\n" -r 0-1023 https://www.example.com/media/intro.mp4
206
```

## Frequently asked questions

### Is 206 Partial Content an error?

No. It’s a success response to a range request, used for video streaming, resumable downloads and PDF viewers.

### Why does my video not play or seek in Safari?

A common cause is a server or script that ignores the Range header and always sends the whole file with 200. Make sure media files are served with range support so the server can answer 206.

### Can a 206 response hurt SEO?

Only if a server sends 206 and a partial page to a normal request without a Range header, so crawlers get truncated HTML. Regular page requests should get 200 and the full document.

