# HTTP 410 Gone — Meaning, Causes & Fixes

> The resource was deliberately removed and won't be coming back.

410 is a 404 with intent: the server knows the resource used to exist and that its removal is permanent. Search engines treat it as a strong signal to drop the URL, and clients should delete links or cached references to it.

- Class: 4xx Client Error
- Retry: No — change the request first
- Cacheable by default: yes
- Defined in: [RFC 9110 §15.5.11 — 410 Gone](https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.11)

## Example response

```http
HTTP/1.1 410 Gone
Content-Type: application/json
Content-Length: 16

{"error":"Gone"}
```

## Common causes

- Deleted products, expired listings or retired API versions.
- Content removed for good with no replacement.

## How to fix it

1. If there's a replacement page, 301 to it instead.
2. Use 410 for content you've removed on purpose and want deindexed.
3. Before retiring an API version, announce the date with a `Sunset` header (RFC 8594).

## Send a 410 from your server

### Express

```
res.status(410).json({ error: "Gone" });
```

### Next.js route handler

```
return Response.json({ error: "Gone" }, { status: 410 });
```

### Flask

```
return {"error": "Gone"}, 410
```

### Go net/http

```
http.Error(w, "Gone", http.StatusGone)
```

### nginx

```
return 410;
```

## FAQ

### Does Google treat 410 differently from 404?

Slightly. Both are removed from the index; Google has said a 410 can be processed a little faster because it's explicitly permanent.

## Related status codes

- [404 Not Found](https://www.devkult.com/http/404.md)
- [301 Moved Permanently](https://www.devkult.com/http/301.md)
- [308 Permanent Redirect](https://www.devkult.com/http/308.md)

Open the interactive page: https://www.devkult.com/http/410