Title: Unstale &#8211; AI Content Refresh, Rewrite &amp; Republish for SEO
Author: Web &amp; SEO
Published: <strong>2 de agosto de 2026</strong>
Last modified: 4 de agosto de 2026

---

Buscar plugins

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

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

# Unstale – AI Content Refresh, Rewrite & Republish for SEO

 Por [Web & SEO](https://profiles.wordpress.org/webandseofr/)

[Descargar](https://downloads.wordpress.org/plugin/unstale.1.0.5.zip)

 * [Detalles](https://es-ec.wordpress.org/plugins/unstale/#description)
 * [Valoraciones](https://es-ec.wordpress.org/plugins/unstale/#reviews)
 *  [Instalación](https://es-ec.wordpress.org/plugins/unstale/#installation)
 * [Desarrollo](https://es-ec.wordpress.org/plugins/unstale/#developers)

 [Soporte](https://wordpress.org/support/plugin/unstale/)

## Descripción

Old posts lose rankings. Unstale refreshes them with real AI, through the provider
you already connected to WordPress:

 * **Real AI in the free plugin.** Analysis, live web research, fact-checking of
   numbers and prices, rewrite, SEO metas, JSON-LD when no SEO plugin already emits
   it, key-takeaway callouts.
 * **No credits, no quota.** Unstale sells you nothing per refresh. You pay your
   AI provider directly, at its own rates. Unlimited refreshes.
 * **Your content never touches our servers.** Your WordPress talks to the AI provider
   you connected, directly. We never see your content or your credentials.
 * **Nothing to configure twice.** Since WordPress 7.0, providers and credentials
   are managed by WordPress itself in Settings > Connectors. Unstale uses whatever
   you set up there, so no API key is ever stored by this plugin.
 * **Review queue with a side-by-side diff.** Nothing is published without your 
   approval (an optional full-auto mode exists). Native WordPress revisions give
   you one-click rollback when revisions are enabled on your site.
 * **Internal linking.** Each refresh adds up to 10 relevant internal links with
   natural, varied anchors, one link per target page.
 * **SEO-safe republication.** Optional publish-date bump with position control,
   randomized timing, allowed days and time windows. Stable dated permalinks via
   the %unstale_year%, %unstale_monthnum% and %unstale_day% permalink tags.
 * **Full journal.** Every step, token count and cost is logged per article.
 * **Automation-ready.** REST API (unstale/v1) and WP-CLI (wp unstale refresh) included.

Two refresh levels are free: Minimal (typo fixes, fact-check, internal links, date
bump) and Balanced (everything in Minimal plus SEO essentials: optimized metas, 
JSON-LD, callouts, readability). The Strong and Maximal levels, scheduled automation
and bulk rules are part of [Unstale Pro](https://unstale.ai/).

Unstale is developed by [Web & SEO Ltd](https://www.webandseo.fr/), the company 
that owns and operates unstale.ai.

### External services

This plugin relies on one external service.

#### The Unstale model catalog (unstale.ai)

What it is: a public, static JSON file at https://unstale.ai/api/v1/models.json 
listing the supported model ids, their prices per million tokens and their notes.
It exists so that a new provider model becomes available in your settings without
waiting for a plugin update, and so the plugin can show you a cost estimate before
each refresh.

What is sent, and when: nothing but the HTTP request itself. It is an unauthenticated
GET, fired by a single scheduled task once every 24 hours. No content, no credentials,
no personal data, no site identifier is transmitted, and there is no manual refresh
button that could trigger it more often. If the request fails the plugin keeps using
the catalog bundled in the plugin files.

This service is provided by Unstale: [Terms](https://unstale.ai/terms), [Privacy](https://unstale.ai/privacy)

#### A note on AI providers

Unstale does not contact Anthropic, OpenAI or Google itself and declares none of
them as its own external service. Prompts are handed to the WordPress AI Client,
which routes them to the provider you connected in Settings > Connectors. That provider,
its terms and its billing are the relationship between you and them, set up in WordPress
and not in this plugin.

## Capturas

[⌊Review queue with per-job actions⌉⌊Review queue with per-job actions⌉[

Review queue with per-job actions

[⌊Side-by-side diff before approval⌉⌊Side-by-side diff before approval⌉[

Side-by-side diff before approval

[⌊Settings: connected AI provider and model cards⌉⌊Settings: connected AI provider
and model cards⌉[

Settings: connected AI provider and model cards

[⌊Cost estimate before launching a refresh⌉⌊Cost estimate before launching a refresh⌉[

Cost estimate before launching a refresh

## Instalación

 1. Install and activate the plugin. WordPress 7.0 or newer is required.
 2. Go to Settings > Connectors and connect an AI provider if you have not already.
    Unstale will tell you if none is connected.
 3. Go to Unstale > Settings, pick a default model and refresh level.
 4. In the Posts list, click «Refresh with Unstale» on any published post. Review the
    estimated cost, confirm, then approve the proposed rewrite in Unstale > Review 
    queue.

## FAQ

### How much does a refresh cost?

You pay your AI provider directly, per token. Unstale shows an estimate BEFORE each
launch and logs the real cost after. For a 1000-word article at the Balanced level
the estimate runs from roughly $0.50 to $1.50 depending on the model you pick. That
estimate bounds the worst case (it assumes every web search the level allows is 
spent), so the cost logged after the run is usually lower.

Web search fees are part of the estimate but only appear in the logged cost when
your provider reports how many searches it ran. WordPress does not standardise that
number, so the logged cost can understate searches on some providers.

### Does my content go through your servers?

No. WordPress calls the provider you connected, directly. The only request to unstale.
ai is the public model catalog (no content, no personal data).

### Which API key does it use?

None of its own. Since WordPress 7.0, credentials live in Settings > Connectors 
and are managed by WordPress. Unstale never sees, stores or transmits them. If you
used an older version of this plugin, the API keys it had stored are deleted automatically
when you update.

### Can it publish without my approval?

Not by default. Every refresh waits in the review queue with a side-by-side diff.
You can enable full-auto publishing in the settings if you want it.

### My permalinks contain the post date. Will the date bump break my URLs?

No: the bump is skipped automatically when your permalink structure uses the core
date tags. To keep dated URLs AND bump dates, switch your structure to the %unstale_year%,%
unstale_monthnum% and %unstale_day% tags: they freeze the original date in the URL
forever. If you deactivate Unstale later, the plugin automatically restores the 
core date tags so your site keeps routing (posts whose date was bumped will then
use the bumped date in their URL). Deleting the plugin files manually without deactivating
skips that safety net: re-save your permalink structure in that case.

### Which models are supported?

Whichever models the provider you connected exposes. Unstale ships model cards for
Claude Sonnet 5 (default), GPT-5.6 Terra and Gemini 3.5 Flash, with pricing and 
ratings to help you choose. GPT-5.6 Terra is still in limited preview: if you pick
it, Unstale runs GPT-5.5 instead and states the substitution on the model card and
in the job log. The catalog is updated remotely: when a provider ships a new model,
it appears in your settings without a plugin update.

## Reseñas

No hay reseñas para este plugin.

## Colaboradores y desarrolladores

«Unstale – AI Content Refresh, Rewrite & Republish for SEO» es un software de código
abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

 *   [ Web & SEO ](https://profiles.wordpress.org/webandseofr/)

[Traduce «Unstale – AI Content Refresh, Rewrite & Republish for SEO» a tu idioma.](https://translate.wordpress.org/projects/wp-plugins/unstale)

### ¿Interesado en el desarrollo?

[Revisa el código](https://plugins.trac.wordpress.org/browser/unstale/) , echa un
vistazo al [repositorio SVN](https://plugins.svn.wordpress.org/unstale/) o suscríbete
al [registro de desarrollo](https://plugins.trac.wordpress.org/log/unstale/) por
[RSS](https://plugins.trac.wordpress.org/log/unstale/?limit=100&mode=stop_on_copy&format=rss).

## Registro de cambios

#### 1.0.5

 * Fixed: a refresh could die on an article that has nothing to fact-check. The 
   model was answering correctly, but explaining in a sentence that it had found
   no figures to verify before giving its answer, and the plugin could not read 
   a reply written that way. Three such replies in a row and the refresh gave up.
   Those answers are now understood.

#### 1.0.4

 * Fixed: a model that answered with reasoning only, and no readable content, killed
   the refresh outright. The journal said nothing useful about it and the call it
   had already paid for was never counted. That answer is now treated like any other
   step failure: the reason appears in the journal, the tokens appear in the cost,
   and the step is tried again.

#### 1.0.3

 * Fixed: the cost shown for a refresh could be lower than what your AI provider
   actually billed you. A step that failed after the model had already answered 
   dropped the tokens it had just spent, and because a step is tried up to three
   times, a refresh could pay for three calls and report none of them. Every call
   that reaches the provider is now counted, on its own line in the journal.
 * Fixed: when a model replied with something the plugin could not read, the journal
   only said the answer was invalid. It now quotes what the model actually sent 
   back, so a failed step can be diagnosed from the journal instead of guessed at.

#### 1.0.2

 * Fixed: a refresh that died in the middle of a step always reported the same generic
   reason, whatever had really happened. The journal now records what the worker
   actually reported, so a provider error, a memory limit and a scheduler timeout
   no longer look alike and a failed refresh can be understood from the journal 
   alone.

#### 1.0.1

 * Fixed: a refresh could fail for good when the AI provider stopped responding.
   All three attempts used to fall inside a 90-second window, so a short provider
   outage exhausted them and the job died. Retries are now spaced 2 and 10 minutes
   apart, which carries a refresh through an outage instead of losing it.

#### 1.0.0

 * Initial release: pipeline on the WordPress AI Client (analyze, web research, 
   fact-check, rewrite, enrich, internal links, cleanup, review, publish), review
   queue with diff, journal, SEO-safe republication, targeted cache purge, REST 
   API and WP-CLI.

## Meta

 *  Version **1.0.5**
 *  Last updated **hace 1 día**
 *  Active installations **Menos de 10**
 *  WordPress version ** 7.0 o superior **
 *  Tested up to **7.0.2**
 *  PHP version ** 8.1 o superior **
 *  Language
 * [English (US)](https://wordpress.org/plugins/unstale/)
 * Tags
 * [AI](https://es-ec.wordpress.org/plugins/tags/ai/)[content](https://es-ec.wordpress.org/plugins/tags/content/)
   [republish](https://es-ec.wordpress.org/plugins/tags/republish/)[rewrite](https://es-ec.wordpress.org/plugins/tags/rewrite/)
   [seo](https://es-ec.wordpress.org/plugins/tags/seo/)
 *  [Vista avanzada](https://es-ec.wordpress.org/plugins/unstale/advanced/)

## Valoraciones

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/unstale/reviews/)

## Colaboradores

 *   [ Web & SEO ](https://profiles.wordpress.org/webandseofr/)

## Soporte

¿Tienes algo que decir? ¿Necesitas ayuda?

 [Ver el foro de soporte](https://wordpress.org/support/plugin/unstale/)