SEO glossary
What is a 308 Redirect?
Learn what HTTP 308 Permanent Redirect means, how it compares to 301, when method preservation matters for SEO, and implementation guidance for permanent URL moves.
Definition
A 308 Permanent Redirect is an HTTP status code signaling that a resource has permanently moved to a new URL while requiring clients to repeat the original request method and body on the destination—the permanent, method-preserving counterpart to 307.
308 Redirect: permanent move without changing the method
308 Permanent Redirect communicates that a resource has permanently moved to the URI in the Location header, and the client must repeat the request with the same method and body. It is the permanent sibling of 307 Redirect and the method-strict counterpart to 301 Redirect.
SEO practitioners encounter 308 less often than 301 because HTML crawling is overwhelmingly GET-based. Still, modern stacks—reverse proxies, serverless platforms, and unified API/web gateways—sometimes default to 308. Treating it as "unknown redirect" risks missing migrations that behave correctly for bots but confuse analytics and redirect audits.
308 response anatomy
PUT /resources/42 HTTP/1.1
Host: example.com
Content-Type: application/json
{"status":"published"}
HTTP/1.1 308 Permanent Redirect
Location: https://api.example.com/v3/resources/42
Content-Length: 0
Client repeats PUT to the new URL with identical body.
For crawlers:
GET /articles/2024/recap HTTP/1.1
Host: example.com
HTTP/1.1 308 Permanent Redirect
Location: https://example.com/blog/2024-recap
HTTP/1.1 200 OK
...
Signal consolidation intent matches 301 Redirect; method preservation is irrelevant for GET.
308 vs 301: decision matrix
| Factor | 301 | 308 |
|---|---|---|
| Permanence | Permanent | Permanent |
| GET crawls | Standard | Standard |
| POST/PUT preservation | Not guaranteed historically | Required by spec |
| CMS support | Ubiquitous | Growing |
| Google consolidation | Yes | Yes |
| Log/analytics familiarity | High | Moderate |
Rule: Permanent HTML URL changes → 301 unless infrastructure standardizes on 308. Permanent API path changes on shared hosts → prefer 308 (or 301 if only GET matters).
SEO implications of 308
Signal consolidation
Like 301, 308 tells Google the old URL is superseded. Link equity and historical rankings should migrate to the destination after recrawl cycles— not instant, but directionally identical to permanent redirects in Google's documentation.
Avoid mixing permanence codes without reason
/old → 308 → /mid → 301 → /final
Mixed redirect chains slow crawlers. Map /old directly to /final with one permanent hop.
Sitemap and internal links
After deploying 308:
- Remove old URLs from XML sitemaps
- Point internal links to final URLs
- Align
rel=canonicalon destination
Status code choice does not replace housekeeping.
Accidental 308 on temporary campaigns
If marketing toggles "permanent" in a CDN UI, 308 may lock a seasonal path permanently in crawler memory—harder to unwind than 302 Redirect. Label redirect rules with expiry review dates.
When 308 is the right tool
API permanent version upgrades
/v2/orders 308 to /v3/orders preserves POST from checkout clients while retiring v2—parallel to retiring /old-blog for HTML.
Platform defaults
Some platforms emit 308 for apex domain consolidation:
redir https://www.example.com{uri} https://example.com{uri} 308
Acceptable permanent host policy if consistently applied.
Method-sensitive forms on primary domain
Rare marketing sites POST lead forms to /contact that 308 to SaaS endpoint—308 prevents silent GET conversion that loses payload.
When 308 is wrong
| Case | Better approach |
|---|---|
| Short maintenance window | 307 or 503 |
| Content deleted | 404 or 410 |
| "Try another URL" A/B test | 302 or 307 |
| Soft launch with revert plan | 302/307 |
Implementation examples
Nginx
location /legacy-api/ {
return 308 https://example.com/api/;
}
Express
app.put('/v2/item', (req, res) => {
res.redirect(308, 'https://example.com/v3/item');
});
308 and HTTPS migrations
Industry convention uses 301 Redirect from http:// to https://. HTTPS enforcement with 308 is equally valid permanently—choose one sitewide:
http://example.com/page → 308 → https://example.com/page → 200 OK
Ensure HSTS headers follow so browsers skip future HTTP attempts.
308 vs canonical tags
Permanent redirects (301/308) are stronger than rel=canonical when you control the server response. Use canonical when duplicate URLs must remain reachable (tracking parameters, print views).
Do not chain 308 to a page whose canonical points elsewhere—contradictory signals delay consolidation.
Example: unified gateway migration
example.com routed both /api/* and /help/* through an edge gateway. Engineers permanently moved API paths to api.example.com with 308 preserving POST/PUT. Help articles moved with 308 to /support/* on the same host.
SEO issue: Help articles 308 twice—first path rewrite, then host change—before 200 OK.
Fix:
- Single 308 per old help URL to final
/support/article-slug - 301 from
wwwto apex (policy choice) - Updated sitemap only listed support URLs
Crawl waste dropped 34% on help section templates; indexed support URLs stabilized within a month.
How Crawlox helps with 308 redirects
Crawlox traces permanent redirects including 308 across your crawl graph: source URLs, hop count, final status, and whether destinations return 200 OK. Identify accidental 308 on campaign paths, validate API and HTML migrations share consistent policies, and export redirect maps for post-migration audits without guessing which permanent code your edge actually emits.
Related terms
Frequently asked questions
Should I use 308 instead of 301 for SEO?
For typical HTML GET pages, 301 is universal and well understood. Use 308 when you need permanent redirects that must preserve POST/PUT methods—common in API gateways sharing a hostname with marketing content.
Does Google treat 308 like 301?
Google documents that permanent redirects—including 308—consolidate indexing signals to the destination similar to 301.
When did 308 become standard?
HTTP 308 was defined in RFC 7538 (2015) to provide a permanent redirect with strict method preservation, complementing 307.
Can CMS platforms emit 308?
Less common than 301 by default. Nginx, Caddy, and Cloudflare support 308 explicitly; verify CMS plugins do not silently use 302.
Is 308 appropriate for HTTPS migration?
301 is the conventional choice for HTTP to HTTPS on GET HTML. Either permanent code works; pick one policy sitewide for log consistency.
References
Explore authoritative guidance and frameworks related to 308 redirect.
Explore every glossary definition
Return to the glossary to search by term, alias, starting letter, or category.