ServicesWorkJournalAboutContact
Start a project
AI Agents/Jul 19, 2026

Chunking strategies for RAG: what actually improves retrieval in 2026

Content TeamArchitectural Insights
Chunking strategies for RAG: what actually improves retrieval in 2026
15 min read

A practical comparison of RAG chunking methods, fixed-size, recursive, semantic, hierarchical, late chunking, and Anthropic's Contextual Retrieval, with real benchmark data.

Most teams spend real time tuning prompts and almost none picking a chunker. They reach for the default text splitter, ship it, and then spend the next quarter chasing what looks like hallucination but is actually retrieval failure in disguise, the model answering confidently from a fragment that was never coherent to begin with. Chunking choice can swing recall by up to 9 percentage points on the same corpus using the same embedding model, which makes it one of the highest-leverage, least-examined decisions in a RAG pipeline.

This isn't a call to over-engineer chunking, though. The honest finding across current research is that chunk size and method usually aren't the binding constraint on RAG quality, stale, ungoverned, or genuinely thin source content breaks more production systems than suboptimal boundary placement does. Get chunking right as a foundation, but don't mistake it for the whole problem.

1784564334563 6waystochunkadocument

The 30-second version

MethodWhat it doesBest forReal cost
Fixed-sizeCuts every N characters or tokens, no awareness of structureNothing, really, it's the naive baselineCheapest, but weakest quality
Recursive character splittingSplits on paragraph, then sentence, then word boundaries as neededStrong general-purpose defaultFast, cheap, handles mixed content well
Semantic chunkingGroups sentences by embedding similarity, splits at topic shiftsWhen retrieval precision is the actual bottleneckMeaningfully higher, embeds every sentence first
Hierarchical (parent-child)Retrieves on small chunks, returns larger parent context to the modelBalancing precision and generation qualityTwo index layers to maintain
Late chunkingEmbeds the full document first, then splits at the token-embedding levelDocuments with heavy cross-referencesRequires long-context embedding models
Contextual RetrievalPrepends generated context to each chunk before embeddingFixing "orphaned fragment" failures cheaplyExtra generation cost per chunk at indexing time

I default to recursive character splitting at 400 to 512 tokens as the starting point for nearly everything, and upgrade a specific piece of the pipeline only once a concrete failure shows up in testing, not preemptively.

Why chunking breaks quietly

A chunk that reads "revenue grew 3 percent last quarter" is a fine sentence and a useless retrieval unit. The embedding model faithfully encodes exactly what's there, with no signal for which company or which quarter it refers to. When someone later asks "what was Acme's Q2 revenue growth," the retriever has no way to connect that query to a chunk that never mentioned Acme or Q2 in the first place. This is the core chunking failure mode, and it doesn't throw an error or a warning. It just silently returns the wrong chunk, or no relevant chunk at all, and the LLM either declines to answer or, worse, answers fluently from something adjacent and wrong.

Fixed-size splitting: the method almost nobody should ship

Pick a number, 500 characters or 256 tokens, and cut at regular intervals with no sentence detection, no structural awareness. It's the simplest method to implement and close to the worst-performing one in every current benchmark, since it routinely cuts mid-sentence or mid-idea. The only real justification for using it is extreme simplicity requirements on content where structure genuinely doesn't matter, which describes almost nothing in a real business knowledge base.

Recursive character splitting: the right default

This method tries paragraph breaks first, then sentence boundaries, then word boundaries, only falling back to a harder cut when nothing more natural is available. In current benchmarks it posts the strongest end-to-end accuracy among general-purpose methods, roughly 69 percent in one widely cited comparison, while staying fast and cheap enough to run against large corpora without a heavy indexing bill. Industry practice has converged on 400 to 512 tokens per chunk as the sweet spot: small enough that the embedding stays focused on one idea, large enough that the LLM has enough surrounding context to generate a useful answer.

One assumption worth revisiting: the long-standing advice to add 10 to 20 percent overlap between chunks isn't as universal as it used to be. A January 2026 analysis using sparse (SPLADE) retrieval found overlap provided no measurable benefit and only added indexing cost. Overlap still helps in many dense-retrieval setups, but it's a parameter worth testing against your specific retrieval method rather than applying automatically.

Semantic chunking: precision at a real cost

Instead of splitting on character or token counts, semantic chunking embeds sentences individually and groups them by similarity, cutting a new chunk where the topic genuinely shifts. This can improve recall by up to 9 percent over simpler methods on the same corpus, a real, measurable gain. The cost is real too: every sentence needs its own embedding pass before chunks can even be formed, which meaningfully raises indexing time and cost compared to a single splitting pass. Reach for this specifically when retrieval precision, not generation quality, is the demonstrated bottleneck in testing.

Hierarchical chunking: the production default for balancing both sides

This is now the most widely adopted production pattern for good reason: it resolves the fundamental tension between precision and context directly. Small child chunks get embedded and retrieved for precision, matching a specific query closely, while the system returns a larger parent chunk, or a window of surrounding sentences, to the LLM for actual generation. This gives the model enough context to avoid the "isolated fragment" failure mode without diluting the embedding signal used for matching. It consistently ranks at the top of retrieval quality benchmarks, at the cost of maintaining two linked index layers instead of one.

Late chunking: solving cross-references differently

Standard chunking splits text first, then embeds each piece in isolation, which means a chunk near the end of a document has no awareness of something defined at the beginning. Late chunking inverts the order: the full document (or a long section) passes through the embedding model first, so every token attends to every other token via self-attention, and only after that does splitting happen, at the token-embedding level rather than the raw-text level. This preserves document-level coherence in a way standard chunking structurally cannot, and it's specifically worth reaching for when cross-references, a term defined early in a document and used later without redefinition, are causing retrieval misses. It requires an embedding model that supports long context, which isn't universal across providers.

Contextual Retrieval: fixing orphaned fragments cheaply

Anthropic's own published research addresses the "revenue grew 3 percent" problem directly: before embedding each chunk, generate a short piece of context, which document it's from, what section, what it's about, and prepend it to the chunk before that chunk gets embedded and indexed. The chunk that was previously an orphaned sentence now carries its own context wherever it goes. This adds a generation cost per chunk at indexing time, a real but one-time cost, and it's one of the more directly measured fixes for the specific failure mode most chunking discussions are actually trying to solve.

Contextual retrieval before and after

When to skip chunking entirely

Anthropic's own guidance is worth taking seriously here: for a knowledge base under roughly 200,000 tokens, about 500 pages, the simplest and often best approach is to skip RAG's retrieval step entirely and inject the full document into the prompt directly, using prompt caching to keep the repeated cost down. Chunking exists to solve a context-window and cost problem at scale. Below a certain corpus size, that problem doesn't exist yet, and adding a full RAG pipeline is solving a problem you don't have.

Decision framework

  • Start here for almost everything: recursive character splitting, 400 to 512 tokens, test overlap rather than assuming it helps.

  • Retrieval precision is the demonstrated bottleneck: add semantic chunking, and measure the recall improvement against the added indexing cost before committing.

  • The LLM's answers feel thin or context-starved: move to hierarchical chunking so generation gets a wider window than retrieval matched on.

  • Cross-references between distant parts of a document are causing misses: late chunking, if your embedding model supports the long context it requires.

  • Chunks read fine individually but retrieval keeps missing them for query terms not present in the chunk itself: Contextual Retrieval, prepending generated context before embedding.

  • Corpus is under roughly 500 pages total: skip chunking and RAG retrieval altogether, inject the full document with prompt caching instead.

Frequently asked questions

400 to 512 tokens for most general business content. Go smaller, around 256 tokens, for short Q&A-style content where precision matters more than surrounding context. Go larger, around 1,000 tokens, for long-form legal or technical documents where losing surrounding context costs more than losing some precision.

Ready to Build?

Let's create something together

Get in touch with us today.

The bottom line

There's no universal best chunking strategy, only the right method for the specific failure mode showing up in your retrieval testing. Recursive character splitting at 400 to 512 tokens is the right default for nearly everyone starting out. Move to semantic chunking, hierarchical chunking, late chunking, or Contextual Retrieval only once a specific, measured problem points there, and remember that for a genuinely small knowledge base, skipping chunking and RAG retrieval entirely is sometimes the most correct answer of all.

If your RAG system's answers feel inconsistent or context-starved, Flowagenz can benchmark your actual chunking and retrieval setup against your real corpus before recommending a fix, not guess at it. Happy to walk through your specific pipeline on a short call.

Share Article