Table of contents
Webflow already does the hard part of a 404: ask a published site for a URL that does not exist and the server answers with a real 404 status. What it does not do is make that page useful. AIScan check E1 (Correct 404 handling) grades the status code and the body, and a 404 page with no links fails the second half. This guide shows what Webflow serves, how to design a 404 an agent can recover from, and the one quirk of the reserved /404 URL. Tested on 12 October 2026 against live Webflow-hosted sites.
Quick summary
| Situation | What Webflow returns | Fix |
|---|---|---|
| Unknown URL, 404 page designed with links | 404 with your page | None needed |
| Unknown URL, no designed 404 page | 404, a bare page with no links | Design the 404 page (Step 1) |
The reserved /404 URL itself | 200 on a site with a designed page | Turn off Sitemap indexing (Step 2) |
| Old URL after a rename or move | 404 | Add a 301 redirect (Step 3) |
Fastest route: run npx aiscan-cli yoursite.com and read E1, Correct 404 handling. The by-hand check is in Step 4.
What Webflow serves for a missing page
I probed two published Webflow sites with curl: one with a designed 404 page and one still on the platform's stock error page. A made-up path and a made-up .md path both returned 404 on both sites, so unlike some hosts Webflow does not soft-200 one extension and hard-404 another. The difference is the body:
| Site | Status for /zz-nonexist-123 | Body |
|---|---|---|
Stock page (cloneable.webflow.io) | 404 | 906 bytes, one <h1>, 0 links |
| Designed page | 404 | ~50 KB, navigation and footer links |
The stock page has the right status and nothing an agent can follow. That is a partial E1 result, and the fix lives in the Designer, not in server settings.
Step 1: Design a 404 page that links somewhere
Webflow's help article on the 404 error page says it sits in the Utility pages section of the Pages panel. In the Designer:
- Click the Pages icon in the left sidebar.
- Expand Utility pages and click 404.
- Add a heading that says the page was not found, one sentence naming your site, and plain links to the homepage, your main sections and your sitemap.
- Click Publish.
Use static elements: a Navbar component, a text link or a Link block. The same help article states you cannot add Collection lists to a 404 page, because the page has to work even when the CMS or other Webflow features are down. So a "latest posts" list will not work here; hard-code the links you want an agent to follow.
Two limits from Webflow's page documentation: the 404 page's slug is reserved at /404 and cannot be changed, and the 404 page cannot be saved as a draft. You can rename it in the Pages panel, but the URL stays.
Step 2: Keep /404 itself out of the index
Here is the quirk. On the designed-page site, curl -I https://yoursite.com/404 returned 200, while every other unknown URL returned 404. The reserved slug is a real page, so it answers like one. A random-path probe like the one in Step 4 never requests /404, so this does not fail the check, but a crawler that finds a link to /404 sees a 200 page that says "not found".
Webflow's guide on disabling search engine indexing names the 404 page as a good candidate and gives the setting. Open the 404 page, go to Page settings > SEO settings, switch Sitemap indexing off and publish. Webflow documents that this toggle adds <meta content="noindex" name="robots"> to the page, and that it only works if the auto-generated sitemap is enabled. On the live site I tested, /404 was not listed in sitemap.xml.
Step 3: Redirect URLs that used to exist
Every moved or deleted page now returns your 404, which is correct, but it sends agents and visitors to a dead end. Webflow's redirect documentation requires a paid Site plan or a Workspace with a paid plan, then:
- Go to Site settings > Publishing > 301 redirects.
- Enter the old path (for example
/old-url) in Old path. - Enter the new path in Redirect to path.
- Click Add redirect path and publish.
To redirect an existing static page, Webflow says you must first delete it, save it as a draft or change its slug. When you change a slug in Page settings, tick Permanently redirect the old URL to this new one and Webflow creates the rule for you.
Do not use one wildcard rule to push every unknown URL to the homepage. A redirect answers 301, so a missing page would stop returning 404 at all.
Step 4: Verify the fix
With AIScan (default): run npx aiscan-cli yoursite.com, open Discoverability and find E1, Correct 404 handling. It should pass, with the 404 body counted.
By hand with curl:
curl -s -o /dev/null -w '%{http_code}\n' https://yoursite.com/this-page-does-not-exist-9f3a
curl -s https://yoursite.com/this-page-does-not-exist-9f3a | grep -c '<a '
curl -s https://yoursite.com/404 | grep -i 'name="robots"'
Expected: 404, then a link count of at least 2, then a robots meta tag containing noindex. Run it against your custom domain, and republish first if the output looks old.
Edge cases
- A reverse proxy or CDN in front of Webflow can replace the 404 with its own 200 page. Webflow's reverse proxy guide lists a host header mismatch as a cause of 404s at the origin, so test the public domain, not only the
.webflow.ioaddress. - Localised sites: Webflow notes that 301 redirects do not apply to localised slugs, so
/old-urland/es/old-urlneed separate rules. - CMS item pages need the same care: Webflow says an item must be archived, deleted, unpublished or have its slug changed before a redirect rule for its URL applies.
Next step
Run the scan, check E1 on your own domain, and read the rest of the series in AIScan's guides. Related reading: the Astro version of this fix, the Next.js version, why soft 404s mislead agents, the Discoverability checks and AI readiness setup on Webflow.
Frequently asked questions
Why does Webflow return 404 for missing pages but my AIScan E1 check still fails?
Check the body. Webflow's stock 404 page has the right status and no links. E1 grades the body as well, so design the 404 page under Utility pages with links to your homepage, sections and sitemap.
Can I put a CMS Collection list on my Webflow 404 page?
No. Webflow states Collection lists cannot be added to 404 pages, because the page must work even if the CMS is down. Use static links such as a Navbar component, text links or Link blocks.
Why does yoursite.com/404 return 200 when other missing URLs return 404?
/404 is the reserved slug of a real utility page, so it answers like a page. Open the 404 page, go to Page settings > SEO settings, switch Sitemap indexing off and publish, which adds a noindex robots meta tag.
My 404 page changes do not show up on the live site. What went wrong?
The site was not republished. Utility page edits go live only when you publish. Click Publish, test the custom domain rather than the .webflow.io address, and run curl again.
The Sitemap indexing toggle has no effect on my 404 page. Why?
Webflow documents that the toggle only works with the auto-generated sitemap enabled. Turn the sitemap on in Site settings, then switch Sitemap indexing off for the page and publish.
Can I rename the 404 page or change its URL?
You can rename it in the Pages panel, but its slug is reserved at /404 and cannot be changed. Webflow also does not let you save the 404 page as a draft.
Do I need a paid plan to redirect old URLs to new ones?
Yes. Webflow requires a paid Site plan, or a site in a Workspace with a paid plan, to add 301 redirects in Site settings > Publishing > 301 redirects.
My redirect rule for an old page does nothing. Why?
Webflow says an existing static page must be deleted, drafted or given a new slug before a redirect applies, and a CMS item must be archived, deleted, unpublished or re-slugged. Publish after changing it.
Related guides
What a Failing AIScan Check Really Says: 2,961 Fail Lines Audited
A failing check on a scan report is supposed to be an instruction. The site owner reads the line, knows what the scanner asked for, knows what came back, and knows what to change. We audited whether…
How to return a real 404 with a recoverable body on Wix
Wix gets the status code right and leaves the page empty. Request a URL that does not exist on a Wix site and you get a genuine 404, but the body is a scriptbuilt shell with no text and no links in…
Which Agent-Readiness Checks Travel Together: 739 Sites, Three Bundles
Fix one agentreadiness check and a second one often moves with it. Fix another and nothing else changes. A scan report lists every check as its own line, so the reader cannot see which lines are…
How to return a real 404 with a recoverable body on Docusaurus
Docusaurus builds a real 404.html for you, and then the place you test it hides it. Run npm start, type a madeup URL and you get a friendly page with a 200 status. The production build behaves…
