Bigger chunks average the signal away. One 1500-token chunk covers six topics, so its vector sits near the middle of everything, which makes it a decent match for every query and a good match for none. The bunched distance range is the fingerprint of exactly that, your scores have stopped carrying information.
What I would do:
- Embed small, return big. Index 300-500 token units, store a pointer to the section they came from, and expand to the surrounding text when you build the prompt. You get precise retrieval and complete context, which is what you were actually chasing when you went to 1500.
- Strip boilerplate before embedding. Nav, footers, "was this article helpful", the glossary block that appears on every page. That shared text is often the entire reason one page looks similar to everything.