Perplexity doesn't cache answers, and the same query twice returns a different source set
Two identical queries run minutes apart both fired a fresh search and produced a regenerated answer. On a long-tail query the retrieved set went from 30 sources to 15, with only 14 in common.
Why it matters for AI visibility
One run isn't a measurement. If you track whether you get cited in Perplexity, a single check tells you almost nothing on a long-tail query, because half the candidate set can change between two runs a minute apart. Run it several times and take the distribution. The same goes for anyone quoting you a Perplexity "position", since even on a stable head term the order moved between runs.
read the detail
Someone pushed back on the claim that Perplexity always searches, so I went and tested the obvious hole in it. If answers were cached, the search step would be theatre.
They aren’t. I ran two queries twice each, minutes apart, same logged-in Pro account, and caught all four on the wire.
Every run fired SEARCH_WEB with skip_search false. Nothing was served from a cache, and the answer prose was rewritten each time rather than replayed. On “what is technical seo” the two answers came back at 2,132 and 2,126 characters, opening “crawl, understand, and index” the first time and “crawl, understand, index, and rank” the second.
The interesting part is what happened underneath.
Head term, same set, different order. Both runs on “what is technical seo” pulled the same 10 domains. The order moved though, with Backlinko going from sixth to third between runs a couple of minutes apart.
Long tail, different set entirely. “best kettlebell weight for a third floor flat with thin floors and noisy neighbours” returned 30 sources on the first run and 15 on the second, with only 14 in common. The first run pulled 5 YouTube videos, an Instagram post and a handful of retailers that the second run never saw.
So the retrieval isn’t cached and it isn’t deterministic either. On a head term the candidate set is stable and only the ordering wobbles. Out on the long tail, half of it can turn over between two runs a minute apart.
Worth knowing before you trust any single Perplexity check, your own or a tool’s.
One schema note for anyone replicating this. Sources have moved since the July capture. They now sit at blocks[].web_result_block.web_results rather than at the top level, so an older extraction path returns nothing.