← Back to Blog
SEO StrategyContent StrategySEO

Perplexity freshness and the publishing cadence maths

What is actually published about freshness in AI citations, where the two biggest datasets disagree, and the arithmetic for when refreshing an old page beats writing a new one.

SPSantosh Paudel· September 6, 2026· 14 min read
Table of contents

Short answer: yes, AI assistants cite newer pages than Google organic does, and the effect is real but smaller than the freshness-industrial-complex implies. Ahrefs measured 16.975 million cited URLs and found the average AI-cited page is 1,064 days old against 1,432 days for organic results. That is 25.7% fresher. It is not a 30-day cliff. Perplexity specifically sits at 1,166 days: newer than organic, older than ChatGPT's citations. Anyone selling you a freshness multiplier has not shown you the multiplier. What follows is the evidence I could verify, the claim I could not, and the cadence arithmetic that actually changes what you do on Monday.

What is actually published

I went looking for a controlled study isolating publication date as a variable. I did not find one. What exists is observational: large scrapes of what AI engines cited, correlated with the dates on those pages. That is enough to establish a preference and not enough to establish a mechanism.

The Ahrefs dataset

Ahrefs analysed 16.975 million cited URLs across seven surfaces using their Brand Radar data. The per-platform figures:

SurfaceAvg days since publication
Google AI Overviews (top 3)1,432
Organic SERP baseline1,416
Perplexity (text order)1,166
Gemini1,118
Copilot1,056
ChatGPT (references)1,023
ChatGPT (citations)958

Two things in that table are worth more than the headline. First, AI Overviews cite pages older than the organic baseline — the only surface in the study pointing that direction. So "AI search prefers fresh content" is false as a blanket statement about AI search; it holds for the chat assistants and fails for Google's answer box. Second, Ahrefs quotes the organic baseline as 1,432 days in the headline comparison and 1,416 in the platform table. A 16-day gap is immaterial to the conclusion, but I am flagging it because I am about to build arithmetic on these numbers and you should know the input has a rounding wobble in it.

Where the second dataset disagrees

Seer Interactive analysed 5,000+ URLs with extractable publish dates, combining ChatGPT bot log hits with citation data from Peec.ai. They report that roughly 50% of Perplexity's citations came from 2025 alone, against about 31% for ChatGPT.

Hold those two results next to each other. Ahrefs says Perplexity's mean citation age is 1,166 days, nearly seven months older than ChatGPT's 958. Seer says Perplexity cites far more current-year content than ChatGPT. Both can be true at once: Perplexity can draw half its citations from calendar 2025 while dragging a long tail of decade-old reference pages that pulls the mean up. A mean and a share-of-recent are different statistics and they can point in opposite directions on the same corpus.

The sharper disagreement in these two datasets is about Google, and neither write-up addresses it. Seer puts 44% of AI Overviews citations in calendar 2025 and about 85% in 2023-2025, the tightest three-year concentration of any surface they measured. Ahrefs has AI Overviews as the oldest surface in its study, at 1,432 days. Those are not two statistics that can quietly coexist the way a mean and a share-of-recent can; they are two readings of the same product that I cannot reconcile from what either team published. Different query sets, different date-extraction methods, different quarters, take your pick. It is the strongest reason on this page to treat any single freshness figure as provisional.

What that means practically: nobody has published a number you can multiply by. "Fresher wins" survives both datasets. "Republish every 30 days for a 2x lift" survives neither.

The claim I could not verify

The most-repeated figure in this space is a one-year half-life — the idea that each year of age cuts a page's AI visibility by 40-60%. Gander publishes it off a genuinely interesting dataset: 194,077 unique retrieved URLs and 23,973 fan-out queries across four platforms in Q1 2026. I fetched the piece to find the derivation. There is no methodology section for the half-life itself. The dataset is described; the calculation that turns it into a decay constant is not.

I am going to use a one-year half-life anyway, clearly labelled as an assumption with a dial on it rather than a finding. That distinction is the whole point of the next section.

The cadence maths

Model a page's citation weight as w(t) = q · e^(−λt), where q is intrinsic quality plus accumulated authority, t is months since the last substantive update, and λ = ln(2) / H for half-life H.

Your footprint is a flow, not a library

Under decay, steady-state weighted stock is publish rate divided by decay rate: N* = n / λ. Publishing 6 posts a month:

Assumed half-lifeFresh-equivalent pages sustained at 6/month
3 months26.0
6 months51.9
12 months103.9
24 months207.7

That table is the argument against hoarding. Under a 12-month half-life, a 6-per-month cadence sustains the decay-weighted equivalent of about 104 fresh pages, and it sustains exactly that whether your archive holds 104 posts or 1,040. The extra 936 contribute a rounding error.

I have the receipts on this from my own site. I cut published posts from 267 to 103 in September, a 61% reduction, after classifying 279 seeded posts and finding roughly 150 that averaged 380 words with no table, no code, no internal link and no image. The archive was large. The flow was near zero. I wrote up the scoring in the content pruning model and the full damage report in 389 pages, 22 clicks.

Why smoothing your calendar does not matter

Here is the result that surprised me. If exposure is linear in weight, total integrated exposure over any horizon is identical whether you publish 12 posts in January or 3 a month all year. Integration is linear; rearranging when the same area starts does not change the area. Every "consistency compounds" argument that stops at a decay curve is arguing for nothing.

Cadence only starts to matter once you introduce a nonlinearity. The honest one is competition between your own pages: for a given query, one of your URLs gets cited, not five. Exposure on a topic is the max over your pages on that topic rather than the sum. Five posts on Perplexity freshness earn you roughly what one good one earns.

That single correction flips the publish-versus-refresh question, because once a topic is covered, a sixth post on it adds almost nothing while a refresh of the incumbent adds real weight. It also explains why seasonality work pays off separately — timing matters when the query volume itself moves, which is a different mechanism worth forecasting properly.

Refresh versus new: the break-even age

Set ρ = the fraction of original weight a refresh restores, c_r/c_n = refresh cost as a share of a new post, and A = the incumbent's authority relative to a brand-new page. Refresh beats new when:

q_i·(ρ − e^(−λa)) / c_r > q_n / c_n

Solve for the age a* where they tie:

a* = −(1/λ) · ln(ρ − (c_r/c_n)/A)

The time horizon cancels out of both sides, which is why this rule does not need you to guess how long you will keep the page.

The decision table

Break-even age in months, at a 12-month half-life and ρ = 0.90. Read down for how much authority the old page has accumulated, across for what the refresh costs you.

Incumbent authorityRefresh @ 15% cost@ 30%@ 50%@ 70%
1.0× (no edge)5.0 mo8.8 mo15.9 mo27.9 mo
1.25×4.3 mo7.2 mo12.0 mo18.7 mo
1.5×3.9 mo6.2 mo9.8 mo14.5 mo
2.0×3.3 mo5.0 mo7.5 mo10.3 mo
3.0×2.8 mo3.9 mo5.4 mo7.0 mo

Worked read: a page with 1.5× the authority of a new post, refreshable for 30% of the cost of writing one, is worth refreshing once it passes 6.2 months old. A page with no authority edge that costs 70% as much to refresh as to rewrite is worth refreshing only past 27.9 months — by which point you should probably just delete it.

Halve the assumed half-life and every number in that table halves. That is the dial. If you think AI freshness decay is a six-month affair, run the code below with HALF_LIFE_M = 6.0 and the 1.5×/30% cell becomes 3.1 months.

Working out which of your pages actually have the authority edge is the part people skip, and it is the part a content audit exists to answer. You cannot apply this rule without a per-page score for q_i.

The model, runnable

Python 3, standard library only. The simulation scores exposure per topic as the best page you hold on it, which is the nonlinearity described above. Note that it runs a budget of 3 new posts a month, not the 6 used in the N* table further up; the comparison it makes is between two ways of spending one budget, so the level of that budget does not change the direction.

import math

HALF_LIFE_M  = 12.0   # ASSUMPTION, not a finding. Turn this dial.
LAM          = math.log(2) / HALF_LIFE_M
RHO          = 0.90   # a refresh restores 90% of the page's original weight
COST_NEW     = 1.0
COST_REFRESH = 0.30
AUTHORITY    = 1.5    # established page vs brand-new page
RESTORED     = RHO * AUTHORITY   # 1.35: what a refreshed incumbent carries

def breakeven_age(rho=RHO, cost_ratio=COST_REFRESH / COST_NEW,
                  authority=AUTHORITY, lam=LAM):
    """Age in months past which refreshing beats writing a new page."""
    inner = rho - cost_ratio / authority
    if inner <= 0:
        return float("inf")   # refresh never wins, at any age
    if inner >= 1:
        return 0.0            # refresh wins from day zero
    return -math.log(inner) / lam

TOPICS, MONTHS, BUDGET = 20, 24, 3.0   # 3 new posts a month, not the 6 above

def run(strategy):
    # page = (topic, weight at age zero, months since last update)
    pages, total = [], 0.0
    for _ in range(MONTHS):
        pages = [(t, w0, a + 1) for (t, w0, a) in pages]
        budget = BUDGET
        while budget >= COST_REFRESH:
            covered = {t for (t, _, _) in pages}
            gain_new = 1.0 / COST_NEW if len(covered) < TOPICS else 0.0
            best_ref, best_gain = None, 0.0
            if strategy == "rule":
                for i, (t, w0, a) in enumerate(pages):
                    gain = (RESTORED - w0 * math.exp(-LAM * a)) / COST_REFRESH
                    if gain > best_gain:
                        best_ref, best_gain = i, gain
            if gain_new >= best_gain and budget >= COST_NEW:
                topic = (min(set(range(TOPICS)) - covered)
                         if len(covered) < TOPICS else len(pages) % TOPICS)
                pages.append((topic, 1.0, 0.0))
                budget -= COST_NEW
            elif best_ref is not None:
                t, _, _ = pages[best_ref]
                pages[best_ref] = (t, RESTORED, 0.0)
                budget -= COST_REFRESH
            elif budget >= COST_NEW:
                pages.append((len(pages) % TOPICS, 1.0, 0.0))
                budget -= COST_NEW
            else:
                break
        best = {}
        for (t, w0, a) in pages:
            best[t] = max(best.get(t, 0.0), w0 * math.exp(-LAM * a))
        total += sum(best.values())
    return total, len(pages)

if __name__ == "__main__":
    print(f"break-even refresh age: {breakeven_age():.1f} months")
    a, na = run("new-only")
    b, nb = run("rule")
    print(f"new-only: {a:.1f} exposure, {na} pages held")
    print(f"rule    : {b:.1f} exposure, {nb} pages held")
    print(f"delta   : {(b / a - 1):+.1%} on the same budget")

Output on my machine:

break-even refresh age: 6.2 months
new-only: 364.7 exposure, 72 pages held
rule    : 499.3 exposure, 20 pages held
delta   : +36.9% on the same budget

Same work, 20 pages instead of 72, 36.9% more exposure. That is a model result, not a measurement. The +36.9% is what falls out of these assumptions, and most of it is not the freshness reset the section is about. A refreshed page comes back at RHO * AUTHORITY = 1.35, so it outweighs a brand-new post by 35% before any decay maths applies. Set AUTHORITY to 1.0, which strips the incumbency edge and leaves the refresh restoring 0.9 of a new page, and the same run yields +2.2%. At 2.0 it is +80.8%, at 3.0 it is +163.6%. The direction held across every setting I tried; the magnitude is mostly a claim about incumbency, not about recency.

What Perplexity actually gives you to work with

One thing on this page is documented, and I did not have to infer it. Perplexity's Sonar API exposes search_recency_filter with values hour, day, week, month, year, plus search_after_date_filter, search_before_date_filter, last_updated_after_filter and last_updated_before_filter in MM/DD/YYYY form.

That is a product fact, and it carries one operational implication worth acting on: the system reads a publish date and a last-updated date as separate fields. Emit both, in your JSON-LD and your HTTP layer, and make the modified date honest. Bumping a date with no substantive edit is the kind of thing that works until it is the thing you get caught doing.

Whether the consumer-facing Perplexity product weights those fields the same way the API filter does, I do not know, and I have not seen anyone demonstrate it.

What I am doing about it here

My own numbers say freshness is not my binding constraint. Over the 85 days to 3 September 2026 this site took 22 clicks from 4,553 impressions — a 0.48% CTR — across roughly 390 indexed URLs. United States traffic sat at 970 impressions and average position 38.8, with zero clicks. Position 38 is not a freshness problem.

The signal that does replicate: my build-log and worked-arithmetic posts rank between positions 2.8 and 15.5, while generic "[industry] content marketing" posts sit at 46 to 81. Same author, same domain, same quarter, so the two cohorts are the same age. Freshness is held constant across that gap and therefore explains none of it. Specificity explains the whole thing.

So my cadence rule is deliberately unsophisticated. Cover a topic once, properly. When a covered topic passes its break-even age and I have new first-hand material, refresh the incumbent rather than writing post number two. When I have neither, I write nothing. I sample what gets cited using the visibility monitor I published, and I keep expectations calibrated against the honest answer on SEO timelines. If you are a small brand wondering whether any of this reaches you, I wrote separately about visibility at that scale.

FAQ

Does Perplexity prefer recently published content?

Yes, mildly. Ahrefs' 16.975 million-URL dataset puts Perplexity's average cited page at 1,166 days old against a 1,416-1,432 day organic baseline — newer, but still over three years. No published study isolates publish date as a causal variable, so treat this as a correlation with a plausible mechanism, not a lever with a known gain.

Do not pick an interval; compute a break-even age. At a 12-month half-life assumption, a page with 1.5× an average new post's authority that costs 30% as much to refresh crosses break-even at 6.2 months. Cheaper refreshes and stronger incumbent pages both pull that number down.

Is it better to write a new post or refresh an old one?

Refresh when the topic is already covered by a page of yours. Only one of your URLs gets cited per query, so a second post on a covered topic competes with your own incumbent instead of adding to it. Write new only for genuinely uncovered topics.

Does changing the date on a page improve AI citations?

There is no published evidence that a date change alone does anything, and Ahrefs relays Google's John Mueller warning against updating publish dates with no corresponding change to the page content. The engines read publish date and last-modified date as separate fields; make both accurate, and change the content when you change the date.

Publishing constantly and still invisible? The fix is usually knowing which pages carry authority worth refreshing and which should be deleted. Get a content audit or get in touch.

Free resource

Get the AI-SEO Content Checklist

A practical checklist for getting your own content cited by Google AI Overviews, ChatGPT, and Perplexity — not just ranked.

No spam. Unsubscribe anytime.

Browse all free guides →

Run this on your own numbers

Keyword Seasonality Forecaster — free, no signup, runs in your browser.

Open the calculator →

Want to implement this with guidance?

Santosh helps founders turn insights like this into real systems.

SEO Content Strategy

External Resources

Further Reading & Tools

Related Posts

01
12 min
SEO StrategySEO
TodayProgrammatic SEO

Programmatic SEO After AI Overviews: Moat or Doorway

I shipped 60 industry pages and 20 persona pages programmatically. The word counts were fine and the pages still failed, for two unrelated reasons. Here is the test I use now.

Read article
02
13 min
SEOContent Strategy
TodayAnalytics & Data Marketing

Zero-Click Search ROI: My Content Payback Math

My site earned 22 clicks from 4,553 impressions in 85 days, a 0.48% CTR. I put that number through a content payback model. At my real impression yield the programme would need a 42.5% CTR to break even.

Read article
03
14 min
SEOSEO Strategy
TodayAnalytics & Data Marketing

Which Keywords Have You Already Lost to AI Overviews?

Impressions holding while CTR collapses is the AI Overview footprint. Here is the BigQuery query, a standard-library Python triage script, and what happened when I ran the same test against my own 4,553 impressions and 22 clicks.

Read article