{"id":139794,"date":"2018-10-23T10:00:59","date_gmt":"2018-10-23T15:00:59","guid":{"rendered":"https:\/\/getflywheel.com\/?p=30143"},"modified":"2025-05-13T15:50:37","modified_gmt":"2025-05-13T20:50:37","slug":"custom-404-page-wordpress-child-theme-how-to","status":"publish","type":"resource","link":"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/","title":{"rendered":"How to Make a Custom 404 Page in a WordPress Child Theme"},"content":{"rendered":"\n<p>No matter how well-designed and architected your website is, users will likely encounter a 404 page at some point.<\/p>\n\n\n\n<p>It can be something as simple as typing in a URL with a spelling error. For example, if you have a contact page found at <strong>www.website.com\/contact<\/strong> and someone tries to land on <strong>www.website.com\/contacts<\/strong>, there\u2019s a good possibility they\u2019ll be redirected to the 404 page.<\/p>\n\n\n\n<p>Also, website content adjustments may not always account for pages that could have been moved without links being redirected. Hopefully, this experience doesn\u2019t happen too often to your users, but when it does, it\u2019s an opportunity to offer help and make something unique to your brand.<\/p>\n\n\n\n<p>Make sure to check out our guide to <a href=\"https:\/\/wpengine.com\/resources\/creative-404-pages\/\">creative 404 pages<\/a> for some design tips. Design can be anything from serious to funny, text-heavy or minimalist, or somewhere in between, as long as it suits your brand.<\/p>\n\n\n\n<p>Below are a couple of our favorites. They\u2019re good examples of how creativity is used in the design of the page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/www.figma.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Figma<\/a><\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/www.figma.com\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/getflywheel-images.s3.us-east-2.amazonaws.com\/uploads\/2018\/10\/figma-404-hairlines.png\" alt=\"figma custom 404 page\" class=\"wp-image-30155\" \/><\/a><\/figure>\n\n\n\n<p>Figma uses a simple 404 page, but the graphic is very fitting with the vector points. We like how simple and bold it is; it\u2019s really all that is needed..<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/mailchimp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">MailChimp<\/a><\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/mailchimp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/getflywheel-images.s3.us-east-2.amazonaws.com\/uploads\/2018\/10\/mailchimp-404-hairline.png\" alt=\"mailchimp custom 404 page\" class=\"wp-image-30157\" \/><\/a><\/figure>\n\n\n\n<p>The design is always fun on the MailChimp site, especially with the recent redesign. It has an element of humor in both the text and illustration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating a WordPress custom 404 page<\/h2>\n\n\n\n<p>There are several ways to create a WordPress custom 404 page for your website, including plugins, Full Site Editing (FSE), and manually coding the page in a child theme. We\u2019ll cover plugins and FSE briefly before we dive into manual coding.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Plugins for WordPress custom 404 pages<\/h3>\n\n\n\n<p>The plugin ecosystem is one reason WordPress is so flexible. If you can imagine it, there\u2019s probably at least one plugin for it. Some redirection plugins may include the ability to create custom 404 pages for WordPress, but there are also plugins that make it their focus. We\u2019ve included a selection of them below. While this is by no means a complete list, it should help you get started.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/en-ca.wordpress.org\/plugins\/404page\/\">Smart Custom 404 Error Page<\/a> helps users create branded 404 pages via the WordPress Customizer, offering pre-built templates and basic tools to redirect visitors or add search functionality.<\/p>\n\n\n\n<p><a href=\"https:\/\/en-ca.wordpress.org\/plugins\/custom-404-pro\/\">Custom 404 Pro<\/a> is designed for advanced users, featuring A\/B testing, detailed analytics, and granular control over 404 page design to optimize user retention after broken-link encounters.<\/p>\n\n\n\n<p><a href=\"https:\/\/wordpress.org\/plugins\/colorlib-404-customizer\/\">Colorlib 404 Customizer<\/a> focuses on visually appealing, mobile-friendly error pages through intuitive drag-and-drop editing and modern templates, making it a good choice for beginners seeking polished designs without technical complexity.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Using Full Site Editing to create WordPress custom 404 pages<\/h3>\n\n\n\n<p>Creating a custom 404 page with FSE in WordPress leverages block themes and the Site Editor to design a cohesive error page that aligns with your site\u2019s overall style. This method requires a block theme, as the Site Editor (where template editing happens) is exclusive to block-enabled themes. We\u2019re using the Twenty Twenty-Five theme for purposes of illustration, but this basic method should work with any block theme.&nbsp;<\/p>\n\n\n\n<p>The first step is to edit or create the 404 template. In the WordPress admin, navigate to <strong>Appearance &gt; Theme<\/strong>, and click <strong>Customize<\/strong> on your active theme.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/wpengine.com\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme-1024x609.png\" alt=\"\" class=\"wp-image-156708\" srcset=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme-1024x609.png 1024w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme-540x321.png 540w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme-768x457.png 768w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme-1536x914.png 1536w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme-1500x892.png 1500w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-Customizing-Theme.png 1794w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Next, navigate to <strong>Templates<\/strong> and select the 404 template (or create one if your theme doesn\u2019t include it). Use blocks (e.g., headings, images, buttons, search bar) to craft a user-friendly page, ensuring it matches your site\u2019s design.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"690\" src=\"https:\/\/wpengine.com\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-1024x690.png\" alt=\"A custom 404 page\" class=\"wp-image-156709\" srcset=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-1024x690.png 1024w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-540x364.png 540w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-768x518.png 768w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-1536x1035.png 1536w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-2048x1380.png 2048w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-404-Template-1500x1011.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If you\u2019re building the template from scratch, add contextual elements like a &#8220;Return Home&#8221; button, suggested content links (manually or via a <a href=\"https:\/\/wordpress.org\/documentation\/article\/query-loop-block\/\">Query Loop<\/a> block), or a search form. Note that if you\u2019re using an existing template in your theme, it may already have some of these features.\u00a0<\/p>\n\n\n\n<p>Next, customize typography, spacing, and colors using block settings while maintaining responsiveness across devices. Don\u2019t forget to save your changes.&nbsp;<\/p>\n\n\n\n<p>Finally, preview the page and test by visiting a broken or nonexistent URL (e.g., yoursite.com\/404-test). Clear caching plugins if the old 404 page persists.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"448\" src=\"https:\/\/wpengine.com\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-1024x448.png\" alt=\"A custom 404 page made in FSE by modifying the theme's existing 404 page. The image has been replaced with Homer Simpson answering the phone, and the text reads &quot;D'oh! No Answer&quot;\" class=\"wp-image-156710\" srcset=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-1024x448.png 1024w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-540x236.png 540w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-768x336.png 768w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-1536x672.png 1536w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-2048x896.png 2048w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-FSE-on-Site-1500x656.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Building a WordPress custom 404 page manually<\/strong><\/h2>\n\n\n\n<p>Customizations to your WordPress theme should generally be done in a <a href=\"https:\/\/wpengine.com\/resources\/how-to-create-a-wordpress-child-theme\/\">child theme<\/a>. This prevents modifications from being overridden by updates to the parent theme, ensures you don\u2019t break your theme, and keeps your custom code organized.&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>Also, remember to do this in a<a href=\"https:\/\/wpengine.com\/support\/environments\/\"> test or staging environment<\/a> before you roll it out to your production site. When theme files are being changed, there\u2019s always the possibility of syntax errors that may bring the site down.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Create 404.php<\/h3>\n\n\n\n<p>The first step is to create a new file in your child theme called\u00a0<code>404.php<\/code>. This file should be created in the child theme\u2019s root directory (e.g., <code>\/wp-content\/themes\/your-child-theme\/<\/code>). You can also copy over an existing <code>404.php<\/code> file if your parent theme has one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Edit 404.php<\/h3>\n\n\n\n<p>Pasting the following code into your file will create a basic 404 page with text and a spot for an image.\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php get_header(); ?&gt;\n\n&lt;div id=\"main-content\"&gt;\n  &lt;div class=\"container\"&gt;\n    &lt;div id=\"content-area\" class=\"clearfix\"&gt;\n      &lt;div id=\"left-area\"&gt;\n        &lt;article id=\"post-0\" &lt;?php post_class('post-not-found'); ?&gt; aria-label=\"&lt;?php esc_attr_e('Page not found', 'text-domain'); ?&gt;\"&gt;\n          &lt;?php\n          \/\/ Using attachment ID from Media Library\n          $image_id = 123; \/\/ \u2190 REPLACE THIS NUMBER\n          if ($image_url = wp_get_attachment_image_url($image_id, 'full')) :\n          ?&gt;\n            &lt;img \n              src=\"&lt;?php echo esc_url($image_url); ?&gt;\" \n              alt=\"&lt;?php esc_attr_e('404 Error Image', 'text-domain'); ?&gt;\"\n              width=\"600\" \n              height=\"400\"\n            &gt;\n          &lt;?php else : ?&gt;\n            &lt;p&gt;&lt;?php esc_html_e('Error: Image not found', 'text-domain'); ?&gt;&lt;\/p&gt;\n          &lt;?php endif; ?&gt;\n          \n          &lt;h1&gt;&lt;?php esc_html_e('Error 404: Page Not Found', 'text-domain'); ?&gt;&lt;\/h1&gt;\n          &lt;h2&gt;&lt;?php esc_html_e('Oops, this page cannot be found.', 'text-domain'); ?&gt;&lt;\/h1&gt;\n          &lt;?php get_search_form(); ?&gt;\n          &lt;a href=\"&lt;?php echo esc_url(home_url('\/')); ?&gt;\" class=\"button\"&gt;\n            &lt;?php esc_html_e('Return Home', 'text-domain'); ?&gt;\n          &lt;\/a&gt;\n        &lt;\/article&gt;\n      &lt;\/div&gt;\n    &lt;\/div&gt;\n  &lt;\/div&gt;\n&lt;\/div&gt;\n\n&lt;?php get_footer(); ?&gt;\n<\/code><\/pre>\n\n\n\n<p>At this point, our WordPress site is displaying our custom 404 page, but there\u2019s no image and the text is dull and generic.\u00a0<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/wpengine.com\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-No-Image-Found-1024x576.png\" alt=\"A custom 404 page with a broken image link and generic text. \" class=\"wp-image-156712\" srcset=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-No-Image-Found-1024x576.png 1024w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-No-Image-Found-540x304.png 540w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-No-Image-Found-768x432.png 768w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-No-Image-Found-960x540.png 960w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-No-Image-Found.png 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To set an image, we need to modify the file, specifically this part: <code>$image_id = 123; \/\/ \u2190 REPLACE THIS NUMBER<\/code>. You can use any image from your WordPress Media Library. There are various ways to find the <code>image_id<\/code>, but the easiest way is to click on the image in the Media Library and look at the URL. It should say something like <code>?item=9<\/code> right at the end. That number is the <code>image_id<\/code>.<\/p>\n\n\n\n<p>Changing the text is much simpler. Just replace the text that\u2019s currently in the file (i.e., <code>Error 404: Page Not Found<\/code> or <code>Oops, this page cannot be found<\/code>) with your desired text.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"673\" src=\"https:\/\/wpengine.com\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-Manual-Method-Final-1024x673.png\" alt=\"The final custom 404 page, with a custom image selected from the Media Library and updated text. \" class=\"wp-image-156713\" srcset=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-Manual-Method-Final-1024x673.png 1024w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-Manual-Method-Final-540x355.png 540w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-Manual-Method-Final-768x505.png 768w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-Manual-Method-Final-1500x986.png 1500w, https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/Custom-404-Pages-Manual-Method-Final.png 1520w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>A well-crafted 404 page is an opportunity to retain visitors, reinforce your brand\u2019s identity, and turn a frustrating experience into a helpful one. Whether you choose plugins for simplicity, Full Site Editing for seamless integration with block themes, or manual coding in a child theme for full creative control, the goal remains the same: guide users back to your content with clarity and style.<\/p>\n\n\n\n<p>By following the steps outlined above, you can ensure your WordPress site\u2019s 404 page aligns with your brand\u2019s tone, whether playful, professional, or minimalist. Remember to prioritize usability with elements like a search bar, home button, or suggested content links. Test thoroughly, keep design responsive, and don\u2019t shy away from injecting personality. After all, even a dead end can leave a lasting impression. With these strategies, your custom 404 page will not only fix a broken moment but elevate your site\u2019s user experience.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No matter how well-designed and architected your website is, users will likely encounter a 404 page at some point. It can be something as simple as typing in a URL with a spelling error. For example, if you have a contact page found at www.website.com\/contact and someone tries to land on www.website.com\/contacts, there\u2019s a good<span class=\"tile__ellipses\">&hellip;<\/span><span class=\"tile__ellipses--animated\"><\/span><\/p>\n","protected":false},"author":1,"featured_media":140899,"template":"","resource-topic":[1396,912],"resource-role":[1397,896],"resource-type":[916],"class_list":["post-139794","resource","type-resource","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Make a Custom 404 Page in a WordPress Child Theme<\/title>\n<meta name=\"description\" content=\"Learn how to create a custom 404 page for your WordPress site. No matter how well-designed your website is, users will likely encounter one at some point.\" \/>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Make a Custom 404 Page in a WordPress Child Theme\" \/>\n<meta property=\"og:description\" content=\"Learn how to create a custom 404 page for your WordPress site. No matter how well-designed your website is, users will likely encounter one at some point.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/\" \/>\n<meta property=\"og:site_name\" content=\"WP Engine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wpengine\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-13T20:50:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/custom-404-pages-wordpress_1200x627.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/custom-404-pages-wordpress_1200x627.png\" \/>\n<meta name=\"twitter:site\" content=\"@wpengine\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/\",\"url\":\"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/\",\"name\":\"How to Make a Custom 404 Page in a WordPress Child Theme\",\"isPartOf\":{\"@id\":\"https:\/\/wpengine.com\/case-studies\/#website\"},\"datePublished\":\"2018-10-23T15:00:59+00:00\",\"dateModified\":\"2025-05-13T20:50:37+00:00\",\"description\":\"Learn how to create a custom 404 page for your WordPress site. No matter how well-designed your website is, users will likely encounter one at some point.\",\"breadcrumb\":{\"@id\":\"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wpengine.com\/case-studies\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resources\",\"item\":\"https:\/\/wpengine.com\/case-studies\/resources\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Make a Custom 404 Page in a WordPress Child Theme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wpengine.com\/case-studies\/#website\",\"url\":\"https:\/\/wpengine.com\/case-studies\/\",\"name\":\"WP Engine\",\"description\":\"Managed Hosting for WordPress\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wpengine.com\/case-studies\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/wpengine.com\/case-studies\/#\/schema\/person\/f5301455463371a10d1fc290e9ad0085\",\"name\":\"WP Engine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wpengine.com\/case-studies\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g\",\"caption\":\"WP Engine\"},\"sameAs\":[\"https:\/\/wpengine.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Make a Custom 404 Page in a WordPress Child Theme","description":"Learn how to create a custom 404 page for your WordPress site. No matter how well-designed your website is, users will likely encounter one at some point.","robots":{"index":"noindex","follow":"follow"},"og_locale":"en_US","og_type":"article","og_title":"How to Make a Custom 404 Page in a WordPress Child Theme","og_description":"Learn how to create a custom 404 page for your WordPress site. No matter how well-designed your website is, users will likely encounter one at some point.","og_url":"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/","og_site_name":"WP Engine","article_publisher":"https:\/\/www.facebook.com\/wpengine","article_modified_time":"2025-05-13T20:50:37+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/custom-404-pages-wordpress_1200x627.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/custom-404-pages-wordpress_1200x627.png","twitter_site":"@wpengine","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/","url":"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/","name":"How to Make a Custom 404 Page in a WordPress Child Theme","isPartOf":{"@id":"https:\/\/wpengine.com\/case-studies\/#website"},"datePublished":"2018-10-23T15:00:59+00:00","dateModified":"2025-05-13T20:50:37+00:00","description":"Learn how to create a custom 404 page for your WordPress site. No matter how well-designed your website is, users will likely encounter one at some point.","breadcrumb":{"@id":"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wpengine.com\/case-studies\/resources\/custom-404-page-wordpress-child-theme-how-to\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wpengine.com\/case-studies\/"},{"@type":"ListItem","position":2,"name":"Resources","item":"https:\/\/wpengine.com\/case-studies\/resources\/"},{"@type":"ListItem","position":3,"name":"How to Make a Custom 404 Page in a WordPress Child Theme"}]},{"@type":"WebSite","@id":"https:\/\/wpengine.com\/case-studies\/#website","url":"https:\/\/wpengine.com\/case-studies\/","name":"WP Engine","description":"Managed Hosting for WordPress","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wpengine.com\/case-studies\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/wpengine.com\/case-studies\/#\/schema\/person\/f5301455463371a10d1fc290e9ad0085","name":"WP Engine","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wpengine.com\/case-studies\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g","caption":"WP Engine"},"sameAs":["https:\/\/wpengine.com"]}]}},"acf":[],"grid_image_url":"https:\/\/wpengine.com\/case-studies\/wp-content\/uploads\/2018\/10\/custom-404-pages-wordpress_343x245.png","media-type":{"term_id":916,"name":"Article","slug":"article"},"role":"<strong>Roles:<\/strong> Designer, Developer","topic":"<strong>Topics:<\/strong> Design, Performance","_links":{"self":[{"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/resource\/139794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/resource"}],"about":[{"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/types\/resource"}],"author":[{"embeddable":true,"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/users\/1"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/media\/140899"}],"wp:attachment":[{"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/media?parent=139794"}],"wp:term":[{"taxonomy":"resource-topic","embeddable":true,"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/resource-topic?post=139794"},{"taxonomy":"resource-role","embeddable":true,"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/resource-role?post=139794"},{"taxonomy":"resource-type","embeddable":true,"href":"https:\/\/wpengine.com\/case-studies\/wp-json\/wp\/v2\/resource-type?post=139794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}