Express js prevent GET /favicon.ico

my preferred method is middleware

put this somewhere:

function ignoreFavicon(req, res, next) {
  if (req.originalUrl.includes('favicon.ico')) {
    res.status(204).end()
  }
  next();
}

then:

app.use(ignoreFavicon);

Browsers will by default try to request /favicon.ico from the root of a hostname, in order to show an icon in the browser tab.

If you want to avoid this request returning a 404, you can either:

  • Supply a favicon.ico file that is available at the root of your site.
  • Use a module such as serve-favicon to point requests to a specific file.
  • Catch the favicon.ico request and send a 204 No Content status:
app.get('/favicon.ico', (req, res) => res.status(204));