Page as 404
Page as 404
Description
Take control of your site’s 404 Page Not Found error response with this simple, lightweight and core-friendly plugin.
Out of the box, WordPress treats 404 pages as a technical matter, with themes encouraged to include a hard-coded 404.php template. But that means it’s difficult for site owners to make changes.
404 pages have become a space for websites and publishers to have a little fun, putting a smile on visitors’ faces as their journey is halted. They can also serve a useful navigational purpose, guiding users to the site’s latest or most popular content, or offering a search box.
By using WordPress’s built-in Pages feature, you can design and serve a feature-rich 404 page, making full use of WordPress content and navigation blocks. And you can edit and maintain it as easily as any other Page.
Just activate this plugin, then select your desired Page from the dropdown list on the Settings → Reading page.
Developer documentation and source code are available on GitHub.
Development
This plugin uses modern build tooling for development.
Source code is publicly available at:
https://github.com/rareview/page-as-404
Build process
JavaScript and CSS assets are compiled for distribution.
The uncompiled source code and build instructions can be found in the repository above.
Typical development workflow:
composer installcomposer lintcomposer formatnpm installnpm run watchornpm run build
PHP dependencies are managed with Composer for development purposes only.
The distributed plugin includes only the compiled assets required at runtime.
Installation
- Upload and activate the plugin in the usual way
- Create and publish a Not Found page.
- Go to your site's Settings → Reading page
- Choose your Not Found page from the dropdown list.
- Save your updated Settings.
Faq
No. The plugin removes your designated 404 page from generated lists of Pages including on-site search results, blocks/widgets, REST API queries, and sitemap.xml. A noindex tag is added to the page header, asking external search engines to ignore it.
Your 404 Page is just a normal Page.
A standard 404 error code is served, unless you access the URL of the Page itself – in which case, it will be a 200 success message.
There is no Settings page; just an extra dropdown on the existing Settings > Reading page. The 404 Page itself exists as a normal Page, and can be found among your site’s Pages.
Once a Page has been selected, any calls to the 404 template are intercepted, and replaced by a request for the selected 404 Page. If your theme contains a 404.php template, it will be ignored.
This plugin keeps things simple and clutter-free. There are numerous plugins in the WordPress repository already, which add functionality to redirect users, log details, or send alerts in the event of a 404 error. If you are looking for extra features, you will probably find them there.
Reviews
Simple but very useful
By erolsk8 on January 5, 2026
It does exactly what it says and covers all best practices (sitemap, robots, etc.). Code looks solid and trustworthy.
Should be part of WordPress.
Solves a Real Problem Without the Noise
By Dmitry Mayorov (iamdmitrymayorov) on December 21, 2025
It is very rare to see a plugin that solves a common problem in a native WordPress way. I like how Page as 404 doesn’t overload the dashboard with custom branding, upsell popups, or unnecessary UI. It just solves a very common problem. This should be a core feature.
Works great, surprised this isn't in core
By Brian Fischer (fischfood) on December 17, 2025
Something so simple that's often overlooked. Much easier than having to modify the theme. It's also nice that if you're logged it, you can edit the page directly.
A must-have plugin for better 404 pages
By Nate Allen (nateallen) on December 17, 2025
I love that it’s lightweight, core-friendly, and works seamlessly with the block editor. Being able to design a custom 404 page using blocks in the editor is incredibly useful.
Changelog
1.0.3
Preventing password-protected pages from being selected as 404 page
1.0.2
Fixed readme unicode characters issue
1.0.1
Adjust the required PHP and WP versions
1.0.0
Initial release