410 Gone

Client Error - Resource permanently removed

HTTP 410 Gone

What It Means

The HTTP 410 Gone status code indicates that the target resource is no longer available at the server and no forwarding address is known. This is expected to be permanent — the resource is intentionally gone.

410 vs 404

  • 404: "I don't know if this ever existed" — Resource not found
  • 410: "This existed but was intentionally removed" — Permanently gone

When to Use 410

  • Deleted user accounts: Account permanently removed
  • Removed products: Product discontinued, not just out of stock
  • Deprecated API endpoints: Old API version shut down
  • Removed content: Blog post or page intentionally deleted
  • Expired content: Time-limited promotion ended

Example Response

HTTP/1.1 410 Gone
Content-Type: application/json

{
  "error": "Gone",
  "message": "This resource has been permanently removed",
  "deleted_at": "2025-01-01T00:00:00Z"
}

SEO Implications

410 is a stronger signal than 404 for search engines:

  • Google removes 410 pages from index faster than 404s
  • 410 tells crawlers to stop trying this URL
  • Use 410 when you want quick de-indexing

Implementation

Express.js

// Soft-deleted resources
app.get('/api/users/:id', async (req, res) => {
  const user = await User.findById(req.params.id);

  if (!user) {
    return res.status(404).json({ error: 'Not Found' });
  }

  if (user.deletedAt) {
    return res.status(410).json({
      error: 'Gone',
      message: 'This user account was deleted'
    });
  }

  res.json(user);
});

Nginx redirect to 410

# Mark specific URLs as gone
location = /old-product {
    return 410;
}

# Mark entire directory as gone
location /deprecated-section/ {
    return 410;
}

Decision Matrix

Scenario Status Code
Page never existed 404
Page moved to new URL 301
Page intentionally deleted 410
Product discontinued 410

Best Practices

  • Consider 301 redirect if there's a replacement resource
  • Use 410 for intentional, permanent deletions
  • Include a helpful message explaining the removal
  • Log 410 responses to track deleted resources

Frequently Asked Questions

What does HTTP 410 Gone mean?
HTTP 410 Gone means the resource has been intentionally and permanently removed from the server with no forwarding address. Unlike 404, which means the resource was not found and might return, 410 explicitly signals that the resource existed before but has been deliberately deleted and will not come back.
What is the difference between 410 and 404?
404 Not Found means the server cannot find the resource and does not know if it ever existed. 410 Gone means the resource definitely existed but has been intentionally removed. Use 404 for unknown URLs and 410 for deliberately deleted content like removed products, closed accounts, or deprecated API endpoints.
Does 410 affect SEO differently than 404?
Yes. Google de-indexes 410 pages faster than 404 pages. When Google encounters a 410, it treats it as a strong signal to remove the URL from the index immediately. With 404, Google may continue to recrawl the URL for some time. Use 410 when you want rapid removal from search results.
When should I use 410 instead of a 301 redirect?
Use 410 when the content has been permanently removed with no replacement. Use 301 when the content has moved to a new URL. For example, if a product is discontinued with no successor, use 410. If a product was renamed or replaced, redirect with 301 to the new product page.

Monitor your endpoints

Track removed resources and ensure proper handling.

Start monitoring free →

Related Status Codes

More Resources