Written by: Ryan Jones

On September 24, 2026, Perplexity's engineering team published Photon: Building a Retrieval and Ranking Engine From Scratch. Most news coverage focused on the speed: p99 retrieval-and-ranking latency fell from about 800 ms to about 65 ms. That's impressive, but there's a lot more in here that SEOs and GEOs should really pay attention to.
The biggest revelation for SEOs and GEOs is buried in the middle. To explain how Photon got fast, Perplexity described how it decides which pages to retrieve and rank before its model writes an answer. . If you want visibility in Perplexity, this is the closest thing to a published playbook you can get. It's bigger than the Google leak because it not only tells us what they measure, but how they use those metrics.
That's right, they told us in excruciating detail how their search algorithm works! (Google, you're up...)
TLDR: Perplexity's first pass looks a lot more like a classic search engine than like "AI magic." In plain english it rewards pages that use the right words, in the right fields, without stuffing, and it orders candidates by a page-level usefulness signal. That's exactly how a search engine works, and exactly the territory SERPrecon was built to measure.
If you know me though, I think plain english is a terrible way to describe a search engine - so let's dive into the specifics.
Photon isn't a single model that "reads the web." Each index shard retrieves candidates, runs an initial ranking, then a second-stage ranking, and merges the best results into the short list the answer model sees. Just like a search engine, if your page doesn't survive the first cut, nothing downstream can cite it.

A page has to clear every stage on the left to be cited; the right column is what SERPrecon checks at each one.
Because the first cut is what matters the MOST, I'm going to focus heavily on that in this post.
Candidates are scored on weighted query-term coverage plus a term-frequency contribution. It starts out very strict against the query and relaxes only if too few pages qualify. In plain English: pages that contain the terms of the query (especially the important ones) get looked at before pages that don't. (SERPrecon measures all of this in your content! we call it "coverage.")
TLDR: if your page doesn't use the words the query (and its fan-out) uses, it may never become a candidate.
The term-frequency contribution is length-normalized and capped for repeated terms. Traditional search engines, Perplexity AND SERPrecon use BM25 for this. With BM25, saying the keyword 37 times doesn't score much better than saying it a handful of times, and long pages don't win just by being long.
TLDR: keyword density is dead here too. Coverage of the right terms beats repetition of one term.
Each field gets its own retrieval pass, and results are merged using field weights. Photon also stores which fields each term appears in. The post doesn't list the specific fields, but the design means a term in one field (think title or headings) can count differently than the same term in body text. I would guess that lists, tables, etc all play a role here too.
TLDR: where a term appears matters, not just whether it appears. Titles and headings that match the query's framing are doing real work.
Photon keeps term positions per document and decodes them for matched terms. Positions are what a ranker needs to reward phrases and terms that appear close together.
TLDR: exact phrases and tight co-occurrence ("standing desk weight capacity" vs. those words scattered across a page) likely matter.
Within each posting list documents are ordered by a separate usefulness signal, so "better" pages are evaluated first. Perplexity doesn't define how they calculate usefulness. In search engines quality is usually defined by links, clicks, and navigational searches. My guess is for perplexity it's based on an internal knowledge graph.
TLDR: two pages with identical content won't be treated identically. Authority still matters, and no rewrite fixes it.
Photon stores about 2.5x more data per document than the old system, and Perplexity says it used that room to improve ranking. It includes text, metadata, fragments, features and precomputed embeddings. That's right we're gonna talk about Cosine Similarity!
Notice that word in the build tables: fragments. Photon prepares fragments of each page alongside its text and precomputed embeddings. The goal is to hand the answer model text it can ground an answer in. Perplexity doesn't quote your page. It quotes a passage from it.
Perplexity doesn't spell out exactly how fragments are scored. The basic process used by search engines is to split a page into passages (chunking,) embed each one, and judge the page by its best matching passage for the query (Cosine Similarity.) Google has ranked individual passages since 2021.
TLDR: one passage that directly and fully answers the query can carry a long page. A "better" or "deeper" or "more complete" page whose answer is spread thinly across multiple paragraphs can lose to a shorter page with one tight, quotable answer.
This is exactly how SERPrecon scores semantic relevance. We chunk your page into passages, embed each one, then we show you your top matching passage: the text a search engine or AI answer is most likely to pull. Read it and ask, "Would I cite this? Does it match what the searcher wants?" If the answer is no, you know exactly which paragraph to rewrite - and our check relevance tool let's you keep re-scoring in the tool until you dial it in. (See how we calculate it.)
To be clear about the limits: the post doesn't describe chunking, how embeddings are used in retrieval, what the second-stage ranker is, how queries are rewritten, or what goes into "usefulness."
When we built SERPrecon, we made a deliberate bet: measure pages the way a search engine actually processes them (BM25-style lexical scoring, semantic vectors, entity extraction, intent classification and query fan-out) instead of proxies like domain authority or keyword density. Photon's design validates that bet. Nearly every mechanism Perplexity described maps to something SERPrecon already measures.
Photon scores weighted query-term coverage, strict coverage first. Missing terms can keep you out of the candidate set. SERPrecon measures this with keyword relevance in Check Relevance, and competitor keyword and entity extraction shows which terms ranking pages share.
Photon caps repeated-term gains and normalizes for length. Stuffing and padding don't help. SERPrecon uses BM25-style scoring instead of keyword density, so its score saturates the same way.
Photon weights fields separately. Titles and headings carry extra weight. SERPrecon gives you a title coverage score, plus title tag rewrite tracking.
Photon orders candidates by a usefulness prior. Trust determines who's evaluated first. SERPrecon's "not enough trust" verdict tells you when you already win on content and intent, and authority is the blocker. (We use links.)
Photon stores precomputed embeddings and per-page features for ranking. Semantic match matters after the lexical cut. SERPrecon's semantic relevance score uses vector similarity against what ranks.
Photon prepares page fragments to ground its answers. AI answers quote passages, not pages. SERPrecon scores your page by its best-matching passage and shows you that top matching passage, so you can see exactly what an engine would quote.
Photon grounds answers in the pages that survive ranking. Citation is the outcome to track. SERPrecon's Share of Voice tracks Perplexity (Pro and Agency plans), alongside Google, AI Overviews and ChatGPT.
We diagnose every invisible page as one of three problems. Photon gives each one a concrete mechanism:
Wrong words = failing query-term coverage. The page isn't retrieved as a strong candidate, so it can't be cited.
Wrong framing = the page matches the words but answers a different question, so it loses in field-weighted and semantic ranking to pages whose titles and structure match the intent.
Not enough trust = the content is fine, but a lower usefulness prior means stronger pages are evaluated first within a limited work budget.
The first two you can fix in an afternoon. The third takes links, mentions, entity strength and time. Knowing which one you have is the whole game, and that's what a SERPrecon report tells you.
Here's how I've been using SERPrecon to win Perplexity (and other LLM) citations, step by step.
Find out who Perplexity cites today. Add your priority keywords to a Share of Voice report with Perplexity tracking turned on. Note which domains own the citations and where you rank on Google but Perplexity skips you. Those are your fastest wins.
Expand the query before you write. Run Query Fanout on each priority keyword. Fan-out shows the subtopics and phrasings AI answers pull in. Every one is a set of terms Photon's coverage check may look for.
Close the coverage gap without stuffing. In Check Relevance, compare your page against the cited and ranking pages. Add the missing entities and phrases once or twice in natural context. Photon caps repeated-term gains, so a third mention of the head term is worth less than one mention of a missing subtopic.
Put the important terms in the fields that count. Rewrite titles and H2s so they match the question being asked, then check the title coverage score. Field weights mean a well-framed title does work that body copy can't.
Keep phrases intact. Use the exact phrasings searchers and competitors use ("replacement window crank" rather than "crank for replacing windows"). Positions are stored for a reason.
Write one quotable passage. Check your top matching passage in SERPrecon. If it isn't the paragraph you'd want an AI answer to quote, rewrite one passage so it directly and fully answers the query in the searcher's own language.
Score before you publish. Re-run Check Relevance on the draft. Look at semantic and keyword relevance together: the lexical score gets you retrieved, the semantic score helps you survive the second stage.
Diagnose trust honestly. If SERPrecon says you already beat the SERP on content and intent, stop rewriting. Your blocker is authority, and Photon's usefulness ordering means more content won't fix it. Shift effort to links, mentions, 3rd party validation, and entity signals.
Prove it worked. Because Perplexity ingests fresh content quickly, schedule a re-run a week or two after publishing and use Compare Runs to see which citations you gained or lost and why.
This isn't theory. In our award-winning case study, a specialty ecommerce retailer went from a 0% to 37% AI citation rate on priority queries across Google AI Overviews, ChatGPT and Perplexity in 90 days, with a 41% increase in share of voice. The fix started with 83 semantic gaps SERPrecon found that competitors covered and the retailer didn't. That's exactly the kind of term-coverage problem Photon's first stage punishes. The campaign won two 2026 US Search Awards.
You don't need a separate "GEO tool" that only reports whether you were cited. You need to know why you weren't (wrong words, wrong framing or not enough trust), and you need to prove the fix worked across Google and AI answers alike.
See how your pages look to Perplexity. Start a 7-day free trial of SERPrecon (no payment method required) and run your first diagnosis in minutes.
Source: Perplexity Engineering, “Photon: Building a Retrieval and Ranking Engine From Scratch,” September 24, 2026. All Photon figures above are as reported by Perplexity.