AIScan fix guide cover: headline 'A 404 that says 404, and helps', a Webflow logo chip and a broken page changing to a fixed page.
AIScan fix guide cover: headline 'A 404 that says 404, and helps', a Webflow logo chip and a broken page changing to a fixed page.
AI Readiness

How to return a real 404 with a recoverable body on Webflow

Webflow returns a real 404, but the stock page has no links. Design a 404 that agents can recover from, handle the /404 quirk, and verify AIScan check E1.

AAIScan Content Team 12 Oct 2026 5 min read
#Webflow#404#soft 404#301 redirects#AI readiness

This guide covers E1 · Discoverability.

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

SituationWhat Webflow returnsFix
Unknown URL, 404 page designed with links404 with your pageNone needed
Unknown URL, no designed 404 page404, a bare page with no linksDesign the 404 page (Step 1)
The reserved /404 URL itself200 on a site with a designed pageTurn off Sitemap indexing (Step 2)
Old URL after a rename or move404Add 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:

SiteStatus for /zz-nonexist-123Body
Stock page (cloneable.webflow.io)404906 bytes, one <h1>, 0 links
Designed page404~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.

Webflow's help article on the 404 error page says it sits in the Utility pages section of the Pages panel. In the Designer:

  1. Click the Pages icon in the left sidebar.
  2. Expand Utility pages and click 404.
  3. 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.
  4. 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:

  1. Go to Site settings > Publishing > 301 redirects.
  2. Enter the old path (for example /old-url) in Old path.
  3. Enter the new path in Redirect to path.
  4. 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.io address.
  • Localised sites: Webflow notes that 301 redirects do not apply to localised slugs, so /old-url and /es/old-url need 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