Title: Ghost Update
Author: CaphLabs
Published: <strong>May 4, 2025</strong>
Last modified: January 27, 2026

---

Search plugins

![](https://ps.w.org/ghost-update/assets/banner-772x250.png?rev=3287022)

![](https://ps.w.org/ghost-update/assets/icon-256x256.png?rev=3287022)

# Ghost Update

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

[Download](https://downloads.wordpress.org/plugin/ghost-update.1.2.2.zip)

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

 [Support](https://wordpress.org/support/plugin/ghost-update/)

## Description

Ghost Update is a simple but powerful plugin that makes your WordPress site look
alive again by systematically updating post/page timestamps and alerting Google 
Search to come check it out.

This is perfect for older blogs, abandoned content, or static websites that haven’t
changed in a while and are now suffering in search rankings.

Ghost Update offers:

 * ✅ Automatic post/page timestamp refresh (without touching content)
 * ✅ Optional random or sequential update order
 * ✅ Force update + recrawl button
 * ✅ Manual Google JSON auth upload & secure storage
 * ✅ Enforced 10-minute cooldown between Google Indexing API pings (for safety)
 * ✅ Simple log viewer + log clearing
 * ✅ Cron toggle — enable/disable auto mode
 * ✅ No product updates, no WooCommerce, no content edits

### Cron Behavior

GhostUpdate uses WordPress’ built-in “pseudo-cron” system, which means scheduled
tasks only run when someone visits your site. This includes both automatic post 
updates and Google Search Console pings.
 If DISABLE_WP_CRON is enabled in wp-config.
php, you must run WordPress cron via a real server cron job.

### Key Points

🔁 WordPress cron is visitor-based
 No visitors = no cron runs. It only triggers
when a page is loaded by a real user or bot.

🕓 Missed runs = delayed schedules
 Cron tasks won’t fire in the background unless
triggered by activity. This can cause delays in updates on low-traffic sites.

🧠 One run = one reschedule
 A cron job must fire before WordPress will schedule
the next one. They don’t “queue up” in advance.

### Options for Low-Traffic Sites

✅ Keep the plugin’s settings page open in your browser
 This keeps cron alive by
generating regular page loads.

✅ Use the “Force Update + Recrawl Now” button
 Instant update and ping, no waiting
or cooldown.

### Reminder

This behavior is core to how WordPress works. GhostUpdate doesn’t change or override
it — it works with it.

### External Services

This plugin connects to multiple endpoints from Google’s Indexing API to notify 
Google that a post or page has been updated. This functionality is required to trigger
recrawls in Google’s search index.

### What data is sent

The plugin sends the URL of the updated post or page to the following Google API
endpoints. No personal data is transmitted.

### When data is sent

Data is sent only when a post/page is programmatically republished by the plugin
or when triggered manually by the admin.

### External domains contacted

 * `https://oauth2.googleapis.com/token` — used to obtain an OAuth 2.0 token with
   a service account
 * `https://indexing.googleapis.com/v3/urlNotifications:publish` — used to send 
   the updated URL to Google for recrawling
 * `https://www.googleapis.com/auth/indexing` — used as the OAuth scope to limit
   access to Indexing API only

### Service Provider

 * Google LLC
 * [Terms of Service](https://policies.google.com/terms)
 * [Privacy Policy](https://policies.google.com/privacy)

By using this plugin, you agree to Google’s API terms and policies. The authentication
is performed using a Google Cloud service account which you manually upload to the
plugin.

### Notes

 * Posts/pages skipped due to cooldown are **still updated**, just not pinged.
 * Google will still crawl updated content eventually even if not directly pinged.

### License

GPL v2 — use, modify, share freely.

## Screenshots

 * [[
 * Ghost Update Settings Panel

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/` or install via the Plugins >
    Add New screen
 2. Activate the plugin through the ‘Plugins’ menu
 3. Visit **Settings  Ghost Update** to configure:
 4.  * Upload your Google `.json` service account file
     * Enable automatic updating
     * Set your desired interval (in seconds)
     * Exclude posts/pages (optional)
     * View logs of all update and ping activity

## FAQ

### What does this plugin actually do?

Ghost Update refreshes your post/page `post_date` and `post_modified` fields on 
a schedule (e.g. every 8 hours). Optionally, it will also notify Google using the
Indexing API to request a recrawl.

### Does it change content?

No. It does **not** alter content, metadata, taxonomy, SEO fields, or anything else.
It only updates timestamps and optionally triggers a Google ping.

### What’s the cooldown logic for Google API pings?

Ghost Update enforces **1 request every 10 minutes**. This is to protect your quota
and avoid abuse detection.

If an update is triggered while in cooldown, the post is still refreshed — but the
Google ping is skipped and logged as:

    ```
    🔒 Cooldown active. Skipping GSC for post ID 1234.
    ```

### Can I control which posts/pages get updated?

Yes — exclude any number of posts or pages via ID in the plugin settings.

### How do I authenticate with Google?

 1. Create a Google Cloud project
 2. Enable the **Indexing API**
 3. Create a **service account**, and download the `.json` key
 4. Upload it in the plugin settings
 5. Add the `client_email` from the `.json` file as an **Owner** in your Google Search
    Console property

### How do I add the service account as an Owner in GSC?

 1. Open your `.json` file and find:
     “client_email”: “your-service-account@project.
    iam.gserviceaccount.com”
 2. Go to **Google Search Console  Settings  Users and Permissions**
 3. Click **Add User** and paste the service account email
 4. Set permission to **Owner**

### Google gave me an HTML file for verification — what do I do?

You don’t need it.

Just uploaded securely via the plugin settings.
 this will add the file to “your-
site”/uploads/ghostupdate

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Ghost Update” is open source software. The following people have contributed to
this plugin.

Contributors

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

[Translate “Ghost Update” into your language.](https://translate.wordpress.org/projects/wp-plugins/ghost-update)

### Interested in development?

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

## Changelog

#### 1.1.0

Tested and updated to work with wp 6.9

#### 1.0

 * Initial release
 * Scheduled updates with interval + randomization
 * Google Indexing API ping integration
 * Rate-limited GSC API calls (1 per 10 min)
 * Service account JSON file support
 * Logging system with viewer + cleaner
 * Admin UI with force button and exclusion filter
 * Enable/Disable toggle for plugin scheduler
 * Works with pages and posts (not WooCommerce)

## Meta

 *  Version **1.2.2**
 *  Last updated **2 months ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/ghost-update/)
 * Tags
 * [indexing api](https://twd.wordpress.org/plugins/tags/indexing-api/)[scheduled updates](https://twd.wordpress.org/plugins/tags/scheduled-updates/)
   [seo](https://twd.wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://twd.wordpress.org/plugins/ghost-update/advanced/)

## Ratings

No reviews have been submitted yet.

[Add my review](https://wordpress.org/support/plugin/ghost-update/reviews/#new-post)

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

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ghost-update/)