Skip to content

Basics

My 404 page returns a 200 status

Search engines index these as real pages, so every mistyped or outdated link becomes a thin duplicate in the index. It also hides genuine routing bugs, because a broken link looks like a working one to every automated check.

What 13x checks

This is rule basics.404-status in the public registry: Missing pages return a real 404. It runs on every audit, against the pages we actually fetched, and its result is derived from the response rather than estimated.

Surface
Basics
Score weight
7 of the readiness score
Scope
Runs on every audited page
Applies
To every site

Registry version 2026-07-30. Every rule is published, and the audit is deterministic — the same page produces the same finding every time.

The fix

The same text the audit hands you when this check fails on your own site.

Return a real 404 status for URLs that do not exist. A styled "not found" page served with 200 gets indexed as a real page.

Confirm with:

bash code
curl -I https://example.com/this-page-does-not-exist
# expect: HTTP/2 404

Framework-specific versions

Where the change differs enough to be worth writing out separately.

Does your site have this problem?

13x checks this and 112 others against your live URL in about 30 seconds. No account, and every finding comes with the fix for your framework.

No signup. Results in 30 seconds.

More basics checks