Title: Server Scout
Author: susheelhbti
Published: <strong>Juny 11, 2026</strong>
Last modified: Juny 12, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/server-scout.svg)

# Server Scout

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

[Download](https://downloads.wordpress.org/plugin/server-scout.zip)

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

 [Support](https://wordpress.org/support/plugin/server-scout/)

## Description

**Server Scout** is a tool for server administrators who manage multiple WordPress
sites on the same server. Instead of logging into each site one by one, Scout gives
you a single dashboard where you can see every WordPress installation on the server
and quickly access them.

#### What it does

 * Recursively scans a directory of your choice (e.g. `/var/www`) for all WordPress
   installations.
 * Stores the results in a dedicated database table so the dashboard loads instantly
   without re-scanning.
 * Refreshes the stored results automatically in the background (WP-Cron), every
   30 minutes by default.
 * Displays each site’s name, URL, WordPress version, and database prefix.
 * Lists all administrator users for each site (username + email).
 * Generates a secure, one-time, 5-minute login link so you can jump straight into
   any site’s admin area without needing the password.

#### Who is it for?

 * **VPS / dedicated server owners** managing multiple client or personal WordPress
   sites.
 * **Developers** running several local or staging environments on one machine.
 * **Agencies** with a fleet of sites on a single server.

#### How scanning & caching works

 1. The first time you open the dashboard, click **Scan Server**.
 2. Results are written to a `{prefix}servsc_sites` table — one row per installation.
 3. Every later visit renders straight from that table (no filesystem walk).
 4. A background WP-Cron task re-scans the same root on a schedule so the data stays
    fresh.
 5. Use **Rescan Now** any time to force an immediate refresh.

#### How login links work

 1. Click **Generate Login Link** next to any admin user.
 2. A cryptographically signed, one-time token is stored in that site’s database (valid
    for 5 minutes).
 3. The generated link goes through WordPress’s standard `admin-ajax.php` endpoint —
    not a direct PHP file — and includes a nonce for request verification.
 4. Opening the link logs you directly into that site’s admin dashboard.
 5. The token is deleted immediately on first use — it cannot be used twice.

#### Security

 * Requires the `manage_options` capability (Administrator) to use the plugin.
 * All form submissions are protected with WordPress nonces.
 * Login links use `wp_ajax_nopriv_` (WordPress AJAX), include a nonce, and go through`
   admin-ajax.php`.
 * Tokens are HMAC-signed with a per-token secret — cannot be forged.
 * Scan paths are validated with `realpath()` before use.
 * All database queries use prepared statements.
 * The standard `wp_login` action is fired on login so security plugins (login limiters,
   audit logs) are notified.

**Important:** This plugin is intended for server administrators only. Do not install
it on shared hosting environments where you do not control all sites on the server.

## Installation

 1. Upload the `server-scout` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. Go to **Tools  Server Scout** in the admin menu.
 4. Enter the root directory to scan (e.g. `/var/www`) and click **Scan Server**.

## FAQ

### Will this work on shared hosting?

Technically yes, but it is not recommended. This plugin reads the database credentials
of other WordPress installations on the same server. Only use it if you own and 
administer all sites on that server.

### How often does the background refresh run?

Every 30 minutes by default. WP-Cron only fires when the site receives traffic, 
so on a low-traffic server the refresh can lag — set up a real system cron calling`
wp-cron.php` if you need it on a strict schedule. You can change the interval with
the `servsc_refresh_minutes` filter.

### Where are scan results stored?

In a dedicated table, `{prefix}servsc_sites`. Only the configured scan path and 
the last-scan timestamp are kept as options. The table is removed when you delete
the plugin.

### What happens to unused login links?

Tokens expire automatically after 5 minutes. When you delete the plugin, `uninstall.
php` cleans up any leftover tokens from the database.

### The scan found no results. What should I check?

 * Make sure PHP has read permission for the scan directory.
 * Try a more specific path (e.g. `/var/www/html` instead of `/`).
 * Some server setups place sites under `/home` or `/srv/www`.

### Why does the login link say “invalid”?

The link was either already used (one-time only) or has expired (5-minute window).
Generate a new one.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Server Scout” is open source software. The following people have contributed to
this plugin.

Contributors

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

[Translate “Server Scout” into your language.](https://translate.wordpress.org/projects/wp-plugins/server-scout)

### Interested in development?

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

## Changelog

#### 1.1.0

 * Scan results are now stored in a dedicated database table instead of being re-
   scanned on every page load.
 * Added a background WP-Cron refresh (every 30 minutes by default; filterable via`
   servsc_refresh_minutes`).
 * Added a “Rescan Now” action and a “last scanned” indicator.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.6.0**
 *  Last updated **6 dies ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.5 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/server-scout/)
 * Tags
 * [admin](https://bal.wordpress.org/plugins/tags/admin/)[management](https://bal.wordpress.org/plugins/tags/management/)
   [multisite](https://bal.wordpress.org/plugins/tags/multisite/)[server](https://bal.wordpress.org/plugins/tags/server/)
   [tools](https://bal.wordpress.org/plugins/tags/tools/)
 *  [Advanced View](https://bal.wordpress.org/plugins/server-scout/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/server-scout/)