> fast retrieval
This is best done with a dedicated backend. Fetching from a dozen nodes on client-side is poor ux. Backend has to persist events and server side render everything. Anything less than that is a 2017 web app.
> good ranking
Yes I agree with this. I assume that's a tough cookie to crack. Hoping you can do it 🛐