PHPackages                             phpwatch/wordpress-fast404 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. phpwatch/wordpress-fast404

ActiveWordpress-muplugin

phpwatch/wordpress-fast404
==========================

WordPress plugin to prevent WordPress from delivering full Page-Not-Found errors when the browser is not expecting a full HTML page. Saves bandwidth and improves performance.

v1.2(2y ago)32381[1 issues](https://github.com/PHPWatch/WordPress-Fast404/issues)GPL-2.0-or-laterPHPPHP ^7.1 | ^8.0

Since May 18Pushed 2y ago1 watchersCompare

[ Source](https://github.com/PHPWatch/WordPress-Fast404)[ Packagist](https://packagist.org/packages/phpwatch/wordpress-fast404)[ Docs](https://wordpress.org/plugins/fast404/)[ RSS](/packages/phpwatch-wordpress-fast404/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependenciesVersions (4)Used By (0)

```
=== Fast 404 ===
Contributors: ayeshrajans
Tags: performance, 404, page-not-found
Requires at least: 3.9.2
Tested up to: 6.3
Stable tag: 1.2
Requires PHP: 7.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Prevents WordPress from delivering full Page-Not-Found errors when the browser is not expecting a full HTML page. Saves bandwidth and improves performance.

== Description ==

Fast 404 is a low foot-print plugin that quickly inspects an incoming HTTP request, and terminates the request as soon as possible if the request is for a non-existing resource. If the browser is expecting an HTML page (indicated by the `Accept` HTTP header), this plugin will not intercept it. For all other requests, this plugin will terminate it immediately, saving server resources and bandwidth.

When a user browser requests a resource (such as a `jpg` image, or a `.woff2` font file), the web server sends this resource if it is available in the requested location. If the file does not exist, the request is forwarded to WordPress to handle. Unless you are using a plugin that dynamically generates these files, these file-not-found requests trigger a full WordPress Page-Not-Found error page. This plugin inspects such incoming requests, and if the browser indicates that it is looking for a resource other than an HTML page, this plugin terminates the request as soon as possible to prevent WordPress from serving this request which would be a waste of resources and bandwidth. This plugin carefully makes sure that the short-circuited 404 pages (which just shows "Not Found" on a blank page) is only returned to browser asset requests, and not for end users who expect an HTML page.

By default, all HTTP requests to `js|css|jpg|jpeg|gif|png|webp|ico|exe|bin|dmg|woff|woff2` extensions will be fast 404'd. You can configure the extensions and even configure an exclusion pattern to prevent this plugin from intercepting certain requests.

This plugin is the WordPress port of [PHPWatch/Fast404](https://github.com/PHPWatch/Fast404) package.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. You are all set!

== Frequently Asked Questions ==

= How to configure the error message? =

This plugin ensures that the error message is not shown to end users who request URLs from the browser address bar. It is configured as "Not Found" by default.

However, you can override this message by adding a PHP constant to your `wp-config.php` file. Anywhere in this file, put this:

`define('FAST404_ERROR_MESSAGE', 'My new error message');`

= How to configure file types? =

By default, `js|css|jpg|jpeg|gif|png|webp|ico|exe|bin|dmg|woff|woff2` extensions are terminated early.

You need to define a PHP constant in `wp-config.php` file to override this. The value of the constant MUST be a valid regular expression matched against the request URI.

`define('FAST404_REGEX', '/\.(?:js|css|jpg|jpeg|gif|png|webp|ico|exe|bin|dmg|woff|woff2)$/i')`

= How can I log requests? =

You cannot. The whole point of this plugin is to save server resources when the request cannot be served. It takes the first opportunity to terminate the request, and it might be early in the page request-cycle that any of the logging functionality is even available yet.

= What screams "I'm insecure"? =

"http://"

== Changelog ==

= 1.0 =
* Initial release.

= 1.0.1 =
* Updates the WordPress core version this plugin was tested against.
* Minor text improvements.

= 1.2 =
* Same version as 1.0.1, but with a consistent version number bump.
```

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~580 days

Total

3

Last Release

1030d ago

PHP version history (2 changes)v1.0PHP ^7.1

v1.0.1PHP ^7.1 | ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/1703f88c1f225e3fadff28458e81328f86668d9631a8c489f45ea1aaebe12df2?d=identicon)[Ayesh](/maintainers/Ayesh)

---

Top Contributors

[![Ayesh](https://avatars.githubusercontent.com/u/811553?v=4)](https://github.com/Ayesh "Ayesh (8 commits)")

---

Tags

wordpresswordpress-pluginwordpressperformance404

### Embed Badge

![Health badge](/badges/phpwatch-wordpress-fast404/health.svg)

```
[![Health](https://phpackages.com/badges/phpwatch-wordpress-fast404/health.svg)](https://phpackages.com/packages/phpwatch-wordpress-fast404)
```

###  Alternatives

[rarst/laps

Light WordPress profiler.

567262.1k2](/packages/rarst-laps)[wp-media/imagify-plugin

Image optimization plugin for WordPress by WP Media.

7960.9k](/packages/wp-media-imagify-plugin)[rarst/fragment-cache

WordPress plugin for partial and async caching of heavy front-end elements.

14115.0k2](/packages/rarst-fragment-cache)[olliejones/index-wp-mysql-for-speed

Speed up your WordPress site by adding high-performance keys (database indexes) to your MySQL database tables.

1481.8k](/packages/olliejones-index-wp-mysql-for-speed)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
