---
title: "http:// or www/apex variant doesn't redirect to the canonical origin in one hop (seo/origin-redirects)"
description: "seo/origin-redirects: Variants that serve 200 create duplicate sites, and multi-hop redirects (http → https → www) waste crawl budget."
canonical: https://void-design.vercel.app/rules/seo/origin-redirects
lastModified: 2026-09-16
---

# http:// or www/apex variant doesn't redirect to the canonical origin in one hop

`seo/origin-redirects` · severity **error** · category SEO · detected by `void seo` and `void audit`

## Why it matters

Variants that serve 200 create duplicate sites, and multi-hop redirects (http → https → www) waste crawl budget.

## How to fix it

Redirect every variant (http, www or apex) to the canonical https origin with a single 301/308. On Vercel, set the non-canonical domain to redirect to the primary.

## References

- https://developers.google.com/search/docs/crawling-indexing/301-redirects
- https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls

## More seo rules

`void seo` reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.

- `soft-404` Missing page returns HTTP 200 (soft 404) — [seo/soft-404](https://void-design.vercel.app/rules/seo/soft-404)
- `html-too-large` Uncompressed HTML is over Googlebot's 2 MB fetch limit — [seo/html-too-large](https://void-design.vercel.app/rules/seo/html-too-large)
- `rsc-payload-ratio` Inline RSC flight payload dominates the HTML — [seo/rsc-payload-ratio](https://void-design.vercel.app/rules/seo/rsc-payload-ratio)
- `not-https` Page served over plain HTTP — [seo/not-https](https://void-design.vercel.app/rules/seo/not-https)
- `html-lang` <html lang> missing or not a valid BCP 47 tag — [seo/html-lang](https://void-design.vercel.app/rules/seo/html-lang)
- `viewport` Viewport meta missing, not device-width, or blocks zoom — [seo/viewport](https://void-design.vercel.app/rules/seo/viewport)
- `charset` Character encoding not declared early — [seo/charset](https://void-design.vercel.app/rules/seo/charset)
- `title-missing` No single non-empty <title> in <head> — [seo/title-missing](https://void-design.vercel.app/rules/seo/title-missing)

Detected by `void seo` and `void audit`. Explain it in a terminal: `void rules seo/origin-redirects`
