I have a custom CMS powering a niche website. Most of the time there's no content or just one item relevant and therefore shown.
If there's no content, then don't try to have it indexed on search engines. If the same URL presents different content very frequently without different browser configurations (for example when a cookie is set), then I'd suggest creating a static page for everyone so it can be indexed.
Currently I have an index page at the root URL. I consider redirecting the root URL to the most relevant item URL if there's content to show.
What I suggest for the root URL is your home page. I don't understand why you require a redirect. Redirects cause latency and increases Time to First byte. You may want to make use of webpagetest.org on your site to understand what I mean.
Item pages will include links to other items if available. If there's no content to show, I want to display a blank state page at the root URL as I currently do.
So you're saying you want http://example.com to show nothing if http://example.com/items/whatever has nothing? I think that's a bad idea. I'd just leave the root page as the home page (if I understand correctly) and I'd make each individual product page return a 410 error page or have it redirect to a non-indexable page that is a duplicate of the category page along with a message stating the item isn't available.
For example, if your URL structure is:
http://example.com <-- home page
http://example.com/products/fruit <-- category
http://example.com/products/fruit/apple <-- item
is inaccessible and you want to do a redirect, then redirect users to:
and include a message in that page stating the specified item is not available, or you could create a special listing page at:
so that you have these two static pages serving the exact same items but the only difference is one contains a message indicating the item is not available:
http://example.com/products/fruit <-- normal item listing page
http://example.com/products/fruit/otherfruit <-- item listing page with error (mark as non-indexable)
I want to do this as I see no point in having an index page like I currently do.
If you want users to be happy with your site, you have to somehow have some kind of index to help them get to what they need. Otherwise, accessing the desired page on your site might be harder than choosing the winning numbers for a jackpot.
What are possible concerns of implementing this? For some reasons I feel redirecting the root URL at times to changing sub folders is a bad idea. Especially SEO concerns come to my mind.
Playing tricks is bad. Redirecting URLs to random URLs is bad since people expect one thing and suddenly land on something different.
Just keep in mind that any pages that are not original or that are not normal pages (with HTTP code 200) should not be indexed in search engines. If you need to display duplicate pages like in my example, declare it as canonical using the link tag like this:
<link rel="canonical" href="http://originaldomain.com/path/to/originalfile">