=== Evergreen Recycler ===
Contributors: cliff
Tags: evergreen, republish, recycle old posts, indexnow, freshness
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 0.4.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Resurfaces your aging evergreen posts and instantly notifies search engines via IndexNow —
honestly, without faking dates.

== Description ==

A modern take on the old "Old Post Promoter" idea: keep your best older content working
instead of letting it sink out of sight. On a schedule, Evergreen Recycler picks eligible
older posts and:

* **Marks them genuinely updated** — bumps the modified date, which is an honest freshness
  signal (an accurate sitemap `lastmod`, a "Last updated" label, schema `dateModified`).
* **Optionally re-floats them** to the top of your homepage and RSS feed (opt-in; automatically
  disabled on date-based permalinks so it can never break your URLs).
* **Pings search engines via IndexNow** so the change is picked up fast.

= Honest about who IndexNow reaches =
IndexNow gets you near-instant pickup on **Bing, Yandex, Naver, Seznam and Yep** — and,
because they draw on Bing's index, **DuckDuckGo, ChatGPT Search and Copilot**. It does **not**
reach Google — Google has never adopted IndexNow. For Google, what works is the honest sitemap
`lastmod` this plugin already produces, plus internal links. This plugin will never claim to
instantly index you on Google, because it can't, and neither can anything else.

= Honest about dates =
Just changing a post's date to fake "new" does nothing for Google rankings and can hurt trust.
So the default here only bumps the *modified* date and always keeps the true original publish
date. The classic "move the publish date" behavior is available, but it's opt-in and clearly
scoped to what it actually helps: your on-site feed and Bing discovery.

== Installation ==

1. Copy or symlink this folder into wp-content/plugins/.
2. Activate through the 'Plugins' menu.
3. Go to Settings → Evergreen Recycler, set the minimum age / cooldown / schedule, and turn on
   automatic recycling.

= More than a recycler =
Recycling is only the last step. Around it: a **stale-content radar** that scores your posts by real
reasons to refresh (dead links, dead images, aged-out years) into a worst-first Refresh Queue; an
optional **Google Search Console** connection that targets the posts actually losing traffic and shows
the before/after; and an optional **AI refresh** that drafts honest, specific update suggestions with
Claude (your own API key — it only suggests, it never edits or publishes your posts).

== Screenshots ==

1. The Evergreen Recycler settings screen — age / cooldown / schedule, the opt-in re-float, the
   IndexNow key with a reachability check, "run one pass now", and the activity log.

== Frequently Asked Questions ==

= Does it fake publish dates to trick Google? =
No. By default it only updates the modified date and preserves the real original date. Faking
dates doesn't help Google and can hurt — so it isn't the default.

= Will it instantly index my posts on Google? =
No — nothing can. IndexNow (which this uses) reaches Bing/Yandex/etc., not Google. For Google
it produces an honest sitemap `lastmod` and you rely on normal re-crawling.

= I use date-based permalinks. Is it safe? =
Yes. The "move the publish date" option is automatically disabled on date-based permalinks,
because moving the date would change the URL. Only the modified date is touched.

= Where does it host the IndexNow key file? =
Virtually — it serves `/{key}.txt` dynamically, so nothing is written to your web root. Use the
"Check key is reachable" button to confirm it's working.

== Changelog ==

= 0.4.0 =
* AI refresh: Claude drafts honest, specific update suggestions (bring your own Anthropic key). It
  only suggests — it never edits or publishes your posts.

= 0.3.0 =
* Google Search Console: connect your own OAuth credentials to target the posts losing traffic and
  measure before/after; new "biggest traffic drop" recycling order.

= 0.2.0 =
* Stale-content radar + Refresh Queue: scores posts by real reasons to refresh (dead links, dead
  images, aged-out years); worst-first, with per-post deep link/image checks. New top-level menu.

= 0.1.0 =
* First version: scheduled evergreen resurfacing (refresh-only default, opt-in re-float),
  native IndexNow with virtual key hosting, per-post cooldowns, date-permalink guard, activity log.
