Your site's own 404 page is now served

AddedCDN

Ship a 404.html in your build and it is now served when someone asks for a page that doesn't exist, in your design, with a 404 status. Sites that don't ship one still get the branded fallback rather than plain text.

If your build produces a 404.html, it is now the page visitors see when they ask for something that isn’t there. Nothing to configure — ship the file and it is used.

Most static site generators already write one. Astro, Eleventy, Hugo and Next all do, and they keep it out of your sitemap, which is what you want.

The status stays 404. Your page is served with a 404 rather than a 200, which matters more than it sounds. A “soft 404” — your not-found page returned with a success status — gets indexed by search engines as though it were real content, and hides the broken link from Search Console instead of reporting it.

It goes through the same pipeline as every other page on your site, so it looks like your site, not like an error screen bolted on beside it. It is cached under its own policy rather than the policy of the page that was asked for, because the page that was asked for isn’t the thing being served.

Sites without a 404.html are unaffected and still get the generic branded page, which no longer discloses our internal storage path.

← All changes · More CDN changes · Subscribe to CDN