¿Es para una web concreta? En tal caso podrías hacerlo observando el DOM. No tendrías problemas mientras la web no cambie el diseño de su página 404. En caso de cambiar su diseño, dependería de la rutina en javascript que se encarga de revisar el DOM. Si revisa algo que no esté tras el cambio... no detectara la página 404.
En concreto los métodos que necesitarías serian:
document.querySelector / document.querySelectorAll
Hay otros métodos pero yo prefiero este porque además te permite usar CSS-Selectors para dar con los elementos del DOM los cuales facilitan mucho el trabajo de localizar los elementos. Pueden parecer complicados al principio, pero una vez que uno se acostumbra es casi como coser y cantar... y facilita mucho, ya que los puedes localizar basándote en sus descendientes, sus adyacentes, las propiedades que tengan o que no tengan, con un valor concreto, o sin él, etc.
Aqui tienes una guia de CSS-Selectors: https://css-tricks.com/almanac/selectors/
Para ponerte un ejemplo: Si quieres los DIV del BODY lo que tienes que hacer es pedir un document. QuerySelectorAll("body > DIV") y te estaría devolviendo un HTMLCollection al que se la trata casi como si fuera un Array. Si en vez de usar querySelectorAll usas querySelector, te devolvería solo el primero de la colección.
El ">" indica que quieres los DIV que son descendientes DIRECTOS del BODY (osea hijos si, nietos y sucesivos no).
Tras tener referenciados los elementos que vas a revisar tendrías que acceder a sus propiedades y puede que su textContent.