Title: Unstale &#8211; Refresh Old Posts with AI, Fact-Check &amp; Republish
Author: Web &amp; SEO
Published: <strong>2 Ağustos 2026</strong>
Last modified: 8 Ağustos 2026

---

Eklentilerde ara

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

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

# Unstale – Refresh Old Posts with AI, Fact-Check & Republish

 [Web & SEO](https://profiles.wordpress.org/webandseofr/) tarafından

[İndir](https://downloads.wordpress.org/plugin/unstale.1.0.6.zip)

 * [Detaylar](https://tr.wordpress.org/plugins/unstale/#description)
 * [Değerlendirmeler](https://tr.wordpress.org/plugins/unstale/#reviews)
 *  [Kurulum](https://tr.wordpress.org/plugins/unstale/#installation)
 * [Geliştirme](https://tr.wordpress.org/plugins/unstale/#developers)

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

## Açıklama

Your best posts stopped bringing traffic. Not from a penalty: the prices, the statistics
and the year references inside them grew outdated while fresher pages took the rankings.
A content refresh fixes that, and Unstale runs one with real AI, through the AI 
provider you already connected to WordPress.

Point it at a published post. It reads the post, searches the live web, checks every
figure and price against what it finds, rewrites the text, updates the SEO metas,
adds internal links, and hands you the result as a diff to approve. Then it republishes
with a fresh date, without breaking your URLs.

#### What one content refresh actually does

 * **Live web research.** The refresh searches the web while it runs, so the rewrite
   is based on what is true today and not on what the model remembers.
 * **Fact-check of every number.** Outdated figures, prices and dates are fact-checked
   against the sources the refresh just read. A step that cannot verify a claim 
   says so in the journal instead of inventing one.
 * **Rewrite at the level you choose.** Minimal fixes typos, facts, internal links
   and the date. Balanced adds the SEO work: optimized metas, JSON-LD when no SEO
   plugin already emits it, key-takeaway callouts, readability.
 * **Internal linking.** Up to 10 relevant internal links per refresh, with natural,
   varied anchors, one link per target page.
 * **A journal per article.** Every step, every token count and the real cost, each
   on its own line.

#### You keep the keys, and you keep the bill

Since WordPress 7.0, providers and credentials live in Settings > Connectors and
are managed by WordPress itself. Unstale uses whatever you set up there, so this
plugin stores no API key of its own and never sees your credentials.

Your WordPress talks to that provider directly. Your content, published or draft,
never passes through our servers. We do not see it.

You pay your provider directly, at its own rates, and nothing to us per refresh.
No credits, no monthly quota, no cap on how many old posts you refresh. Unstale 
shows an estimated cost before each launch and logs the real one after.

#### Nothing goes live without you

Every refresh waits in a review queue with a side-by-side diff of the current post
and the proposed one. You approve it or you discard it. An optional full-auto mode
exists for people who want it, off by default. Approved changes are applied as a
normal WordPress revision, so one click rolls them back when revisions are enabled
on your site.

#### Republishing that does not break your URLs

Republishing plugins usually warn you not to use them when your permalinks contain
the post date, because bumping the date moves the URL. Unstale skips the bump automatically
when your permalink structure uses the core date tags. To keep dated URLs and still
refresh the date, switch to the %unstale_year%, %unstale_monthnum% and %unstale_day%
tags: they freeze the original date in the URL for good. Republication also carries
position control, randomized timing, allowed days and time windows.

#### What Unstale does not do

It does not write new articles. It works only on posts you already published, which
is the point: the traffic is easier to win back on an evergreen post that once ranked
than on a new one nobody has read. It does not read Search Console and does not 
rank your archive by traffic lost, so you choose which old posts to refresh, one
by one or through the bulk rules in Unstale Pro. And there is no account to create
anywhere.

Two refresh levels are free: Minimal and Balanced. The Strong and Maximal levels,
scheduled automation and bulk rules for your old posts are part of [Unstale Pro](https://unstale.ai/).
Automation of the free levels is available through the REST API (unstale/v1) and
WP-CLI (wp unstale refresh).

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.

## Ekran Görüntüleri

[⌊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

## Yükleme

 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.

## SSS

### 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.

### How is this different from a plugin that just changes the publish date?

A date bump moves an old post back to the top of your feeds, but the text stays 
exactly as outdated as it was. Unstale rewrites the content first: it researches
the subject on the live web, corrects the figures and prices that aged, updates 
the metas and the internal links, and only then republishes. The date bump is the
last step of the job, not the whole job.

### Can I try it on a single post before touching my archive?

Yes, and that is the default path. The Posts list has no bulk action: you refresh
one post at a time, review the diff, and approve or discard. Nothing sweeps your
archive unless you ask for it, either from WP-CLI (wp unstale refresh –all, which
asks you to confirm first, because every job spends money at your provider) or through
the scheduled rules in Unstale Pro.

### 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.6 Flash, with pricing and 
ratings to help you choose. All three are generally available, so the model you 
pick is the model that runs; if the catalog ever marks one as preview, Unstale runs
its fallback 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.

## İncelemeler

Bu eklenti için herhangi bir değerlendirme bulunmuyor.

## Katkıda Bulunanlar ve Geliştiriciler

“Unstale – Refresh Old Posts with AI, Fact-Check & Republish” açık kaynaklı yazılımdır.
Aşağıdaki kişiler bu eklentiye katkıda bulunmuşlardır.

Katkıda bulunanlar

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

[“Unstale – Refresh Old Posts with AI, Fact-Check & Republish” eklentisini dilinize çevirin.](https://translate.wordpress.org/projects/wp-plugins/unstale)

### Geliştirmeyle ilgilenir misiniz?

[Kodu görüntüleyin](https://plugins.trac.wordpress.org/browser/unstale/), [SVN deposuna](https://plugins.svn.wordpress.org/unstale/)
göz atın ya da [RSS](https://plugins.trac.wordpress.org/log/unstale/?limit=100&mode=stop_on_copy&format=rss)
ile [geliştirme günlüğüne](https://plugins.trac.wordpress.org/log/unstale/) abone
olun.

## Değişiklik Kaydı

#### 1.0.6

 * Fixed: on a long article, the step that writes your metas and structured data
   could hit the model’s output limit mid-answer. The refresh then reported an unreadable
   reply, which was misleading, and tried again under the same limit. That limit
   is now high enough for the job, a cut-off answer says so plainly in the journal,
   and the step is retried.

#### 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

 *  Sürüm **1.0.6**
 *  Son güncelleme **12 saat önce**
 *  Etkin kurulumlar **10dan fazla**
 *  WordPress sürümü ** 7.0 veya üstü **
 *  Test edilen sürüm **7.0.3**
 *  PHP sürümü ** 8.1 veya üstü **
 *  Dil
 * [English (US)](https://wordpress.org/plugins/unstale/)
 * Etiketler
 * [content refresh](https://tr.wordpress.org/plugins/tags/content-refresh/)[evergreen content](https://tr.wordpress.org/plugins/tags/evergreen-content/)
   [fact check](https://tr.wordpress.org/plugins/tags/fact-check/)[old posts](https://tr.wordpress.org/plugins/tags/old-posts/)
   [republish](https://tr.wordpress.org/plugins/tags/republish/)
 *  [Gelişmiş görünüm](https://tr.wordpress.org/plugins/unstale/advanced/)

## Puanlar

Henüz inceleme gönderilmedi.

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

[Tüm değerlendirmeleri görün](https://wordpress.org/support/plugin/unstale/reviews/)

## Katkıda bulunanlar

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

## Destek

Söyleyeceğiniz bir şey mi var? Yardım mı lazım?

 [Destek forumunu görüntüle](https://wordpress.org/support/plugin/unstale/)