Also have the same problem currently. It sounds like the most efficient approach in 13 is to use IPuslishedContentQuery.
https://docs.umbraco.com/umbraco-cms/13.latest/reference/querying/ipublishedcontentquery