# connect-block-favicon

> Middleware for Connect or Express to silence browser requests for favicon.ico with no content.

Latest version **2.0.0** (published 2026-10-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install connect-block-favicon
pnpm add connect-block-favicon
yarn add connect-block-favicon
bun add connect-block-favicon
```

## Health

**Score 65/100 (B)** — status: active.

Positive: esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2026-10-24 |
| First published | 2019-01-01 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=22 |
| Dependencies | 0 |
| Unpacked size | 6.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 1 |
| Author | Ferdinand Prantl |
| Maintainers | prantlf |
| Keywords | block, connect, express, favicon, favicon.ico, middleware, polka |

## Links

- npm: https://www.npmjs.com/package/connect-block-favicon
- Repository: https://github.com/prantlf/connect-block-favicon
- Homepage: https://github.com/prantlf/connect-block-favicon#readme
- Issues: https://github.com/prantlf/connect-block-favicon/issues
- npm.io page: https://npm.io/package/connect-block-favicon

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 2.0.0 (latest) — 2026-10-24
- 1.1.0 — 2025-05-14
- 1.0.5 — 2022-04-09
- 1.0.4 — 2019-09-23
- 1.0.3 — 2019-06-07
- 1.0.2 — 2019-03-10
- 1.0.1 — 2019-01-01
- 1.0.0 — 2019-01-01
- 0.0.1 — 2019-01-01

## README

# connect-block-favicon

[![Latest version](https://img.shields.io/npm/v/connect-block-favicon)
![Dependency status](https://img.shields.io/librariesio/release/npm/connect-block-favicon)
](https://www.npmjs.com/package/connect-block-favicon)
[![Test coverage](https://codecov.io/gh/prantlf/connect-block-favicon/branch/master/graph/badge.svg)](https://codecov.io/gh/prantlf/connect-block-favicon)

Middleware for [Connect], [Express] or [Polka] to silence browser requests for `favicon.ico` with no content. Useful when serving web project files from a local web server for development or test automation purposes.

- No need for storing a `favicon.ico` file in the root of your project.
- Any server supporting [middleware] supported.
- No other dependencies.

If you develop or test a web application and your console is polluted by the following message, when the browser tries accessing `/favicon.ico`, using this middleware will help you to get rid of it:

```txt
Failed to load resource: the server responded with a status of 404 (Not Found)
```

### Table of Contents

- [Synopsis](#synopsis)
- [Installation](#installation)
- [Getting Started](#getting-started)
- [Contributing](#contributing)
- [Release History](#release-history)
- [License](#license)

## Synopsis

```js
const connect = require('connect')
const blockFavicon = require('connect-block-favicon')
const serveStatic = require('serve-static')

connect()
  .use(blockFavicon())
  .use(serveStatic('.', { etag: false }))
  .on('error', err => console.error(err))
  .listen(9876, () => console.log('Serving on the port', 9876))
```

## Installation

This module can be installed in your project using [NPM], [PNPM] or [Yarn]. Make sure, that you use [Node.js] version 6 or newer.

    npm i connect-block-favicon
    pnpm i connect-block-favicon
    yarn add connect-block-favicon

## Getting Started

The main module exports a factory, which returns a request handler. The request handler is a [middleware] (plugin function) compatible with both [Connect], [Express] or [Polka] HTTP server frameworks. The factory is function returning the request handler.

```js
const connect = require('connect')
// Load the block-favicon middleware factory.
const blockFavicon = require('connect-block-favicon')

const app = connect()
// Create a block-favicon middleware and pass it to the application server.
app.use(blockFavicon())
```

The request handler intercepts requests to `/favicon.ico` and "satisfies" them by serving no content (HTTP status 204) and a request to cache the response for one year.

## Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.

## License

Copyright (c) 2019-2026 Ferdinand Prantl

Licensed under the MIT license.

[Node.js]: http://nodejs.org/
[NPM]: https://www.npmjs.com/
[PNPM]: https://pnpm.io/
[Yarn]: https://yarnpkg.com/
[Connect]: https://www.npmjs.com/package/connect
[Express]: https://expressjs.com/
[Polka]: https://www.npmjs.com/package/polka
[middleware]: https://github.com/senchalabs/connect#use-middleware

---
_Source: https://npm.io/package/connect-block-favicon · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
