To create a Joomla 3 custom 404 page do the following...
 
  • Create an article called "404", style it the way you want the page to look including links.
  • create a hidden menu with a menu item called "404",  set your alias to the link you want to use.  I recommend "404"
  • go to "link type" tab and set "Display in menu" to off
  • go to "metadata" tab and set it to "noindex,nofollow"
  • go to cpanel and copy the error.php to your template root directory
  • go to your template files and open the error.php we just copied a few steps ago.
  • enter the rewrite code, as shown below,  replacing "your-alias-here" with the alias we used when we created the menu item.
  • go to your home page then put a silly url in like http://hallhome.us/burp
  • If you get your 404 page congratulations your done.  If not, go back thru these steps.
/* Load Custom 404 article with true 404 error code returned */
if (($this->error->getCode()) == '404') { header('Location: /your-alias-here'); exit; }

If you have SEF off then you'll need to follow the steps below...
  • Create an article called "404", style it the way you want the page to look including links.
  • create a hidden menu with a menu item called "404"
  • on your menu, click the 404 menu item you just created.
  • copy the link path shown in the url, such as...
    index.php?option=com_content&view=article&id=44&Itemid=462
  • go to cpanel and copy the error.php to your template root directory
  • go to your template files and open the error.php we just copied.
  • enter the rewrite code replacing "your-alias-here" with the link we just copied
  • go to the 404 menu item and on "link type" turn off  "display in menu"
  • go to "metadata" and in the robots area choose "noindex,nofollow"
  • go to your home page then put a silly url in like http://hallhome.us/burp
  • If you get your 404 page congratulations your done.  If not, go back thru these steps.
**Original Documentation on Joomla.org