What we should have is an open, freely accessible meta-information database of things like, whether user X liked/disliked, what other page/sites linked to this site, what their admins ranked this site as, if they did, etc., etc.
Then we have individual engines that take this data and choose for the user what to display for that user only. So if the user is unhappy with what they are seeing, they simply plug in another engine.
Probably a block chain would be good to store such a thing.