Title: Imedes Preflight
Author: imedes
Published: <strong>September 15, 2026</strong>
Last modified: September 15, 2026

---

Search plugins

![](https://ps.w.org/imedes-preflight/assets/banner-772x250.png?rev=3696561)

![](https://ps.w.org/imedes-preflight/assets/icon-256x256.png?rev=3696561)

# Imedes Preflight

 By [imedes](https://profiles.wordpress.org/imedes/)

[Download](https://downloads.wordpress.org/plugin/imedes-preflight.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/imedes-preflight/#description)
 * [Reviews](https://wordpress.org/plugins/imedes-preflight/#reviews)
 *  [Installation](https://wordpress.org/plugins/imedes-preflight/#installation)
 * [Development](https://wordpress.org/plugins/imedes-preflight/#developers)

 [Support](https://wordpress.org/support/plugin/imedes-preflight/)

## Description

Imedes Preflight combines a more resilient public URL structure with early request
qualification for WordPress.

A normal WordPress 404 can require WordPress, plugins, the theme and database queries
to run before the request is finally known to be invalid. Preflight can move that
decision much earlier. In Final Mode, invalid public GET/HEAD requests can be rejected
from the MU runtime before normal plugin and theme processing, reducing unnecessary
PHP, database, CPU and memory work.

Preflight also gives public resources a stable identity while preserving a human-
readable semantic URL. It appends a resource-specific delimiter and numeric ID to
public Post, Term and Author URLs. For example, a Post URL can end in:

    ```
    /example-title/:-:123/
    ```

Terms and Authors use their own delimiters and IDs. The semantic part remains readable,
while the numeric identity gives Preflight a stable way to identify the intended
resource.

This has an important practical advantage: if the semantic part of a valid Preflight
URL is misspelled, stale or has changed, the stable resource ID can still identify
the intended resource. Preflight can then redirect the request to the current canonical
URL instead of automatically losing the visit to a 404. This can reduce traffic 
loss caused by damaged, outdated or incorrectly reproduced semantic URL paths.

A simple example shows the difference. Assume the current canonical resource is:

    ```
    /example-title/
    ```

Without Preflight, a damaged link such as:

    ```
    /exampl-title/
    ```

contains only the semantic path. If WordPress cannot infer which resource was intended,
the request ends in a 404 and the visit is lost.

With Preflight, the equivalent public URL contains a stable resource identity:

    ```
    /example-title/:-:123/
    ```

If an external link damages only the semantic part but keeps the identity:

    ```
    /exampl-title/:-:123/
    ```

Preflight can still identify resource `123`, compare the requested path with the
stored canonical path and issue a 301 redirect to:

    ```
    /example-title/:-:123/
    ```

The readable part can therefore be wrong while the resource itself remains deterministically
recoverable. The same principle also helps when a semantic path becomes stale after
a URL change: the stable identity does not depend on the wording of that path.

The underlying URL principle is not experimental. Combining a human-readable semantic
component with a stable numeric resource identity has been used successfully in 
production systems for decades. Preflight applies that proven principle to WordPress
so URLs can remain readable while also becoming deterministically identifiable. 
That stable identity is what makes both canonical recovery and early request qualification
possible.

Static files such as images, CSS, JavaScript and fonts are outside Preflight’s resource-
identity model. Preflight keeps missing requests for these file types out of its
Observation statistics and, on compatible rewrite-based servers, lets the web server
finish them without sending them through the normal WordPress front controller. 
This matters because a missing static file can otherwise fall through the normal
WordPress rewrite path and trigger a complete WordPress request just to end in a
404. Sites with stale image references, removed media or crawlers requesting old
asset URLs can therefore avoid a surprising amount of unnecessary PHP, plugin, theme
and database work.

Preflight does not switch this behavior on immediately. It uses a staged lifecycle:

 1. **Observation** – no public URL change. Preflight measures the real cost of WordPress
    404 handling.
 2. **Migration** – stable Preflight resource identities are added to generated public
    URLs while native URLs remain reachable and are redirected forward.
 3. **Final** – the Resource Index becomes authoritative for non-excluded public GET/
    HEAD requests, enabling early 404/410 decisions and canonical redirects before 
    normal plugin and theme processing.

WordPress attachment pages are outside Preflight’s resource-identity model. If public
attachment pages are enabled when Final Mode starts, Preflight disables that WordPress
setting automatically and remembers the previous state. The original setting is 
restored when Re-Migration returns the site to native WordPress behavior.

Preflight currently requires an Apache or LiteSpeed/OpenLiteSpeed web-server environment
with working `.htaccess` rewrite support. NGINX-only environments are not supported.
The Migration and Final requirement tests verify the detected web server before 
productive Preflight modes can be enabled.

Because Migration changes the public URL contract of a site, Preflight includes 
a protected Re-Migration path for returning to native WordPress URLs. A verified
standalone legacy redirect can remain after Preflight is removed so previously published
Preflight URLs continue to reach their native counterparts.

## Screenshots

[[

[[

[[

[[

[[

## Installation

 1. Upload and activate Imedes Preflight.
 2. Open Imedes Preflight in the WordPress admin.
 3. Read the introduction and the staged lifecycle explanation.
 4. Continue with Observation Mode before deciding whether to start Migration.

## FAQ

### Does Preflight change my URLs immediately after activation?

No. A fresh installation first presents the introduction and lifecycle information.
Observation Mode does not change public URLs. URL changes begin only when Migration
is explicitly started after its requirement checks pass.

### Why does Preflight add an ID to a readable URL?

The semantic part remains useful to people and search systems, while the numeric
ID gives Preflight a stable resource identity. This allows the intended resource
to remain identifiable even when the semantic path is stale or incorrect and enables
deterministic early request handling.

### What happens to invalid requests in Final Mode?

Outside configured Excludes, public GET/HEAD requests without a valid Preflight 
resource identity can be rejected from the early MU runtime before normal plugin
and theme processing.

### Does Preflight work with Yoast SEO?

Yes. When Yoast SEO is active, Preflight verifies changed public Post indexables
again at the end of the save request and asks Yoast to rebuild an indexable if its
stored permalink does not match the current Preflight permalink.

When Migration is enabled on a site that already has Yoast SEO indexables, rebuild
the existing Yoast index once after Migration starts so previously stored permalinks
are regenerated with the new Preflight URL structure. With WP-CLI this can be done
with `wp yoast index --reindex`.

### Does Preflight work with NGINX?

Not in the current version. Preflight requires Apache or LiteSpeed/OpenLiteSpeed
with working `.htaccess` rewrite support. NGINX-only environments are blocked by
the productive-mode requirement test.

### Can Preflight be removed after Migration?

Yes, but the protected Re-Migration process must be completed first. It restores
native WordPress link generation and installs and verifies a standalone legacy redirect
for previously published Preflight URLs.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Imedes Preflight” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ imedes ](https://profiles.wordpress.org/imedes/)

[Translate “Imedes Preflight” into your language.](https://translate.wordpress.org/projects/wp-plugins/imedes-preflight)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/imedes-preflight/),
check out the [SVN repository](https://plugins.svn.wordpress.org/imedes-preflight/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/imedes-preflight/)
by [RSS](https://plugins.trac.wordpress.org/log/imedes-preflight/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.1**
 *  Last updated **21 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [404](https://wordpress.org/plugins/tags/404/)[performance](https://wordpress.org/plugins/tags/performance/)
   [permalink](https://wordpress.org/plugins/tags/permalink/)[redirect](https://wordpress.org/plugins/tags/redirect/)
   [url](https://wordpress.org/plugins/tags/url/)
 *  [Advanced View](https://wordpress.org/plugins/imedes-preflight/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/imedes-preflight/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/imedes-preflight/reviews/)

## Contributors

 *   [ imedes ](https://profiles.wordpress.org/imedes/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/imedes-preflight/)