What you can do is instance a collection to a scene by right-clicking on it in the Outliner and choose Instance to Scene:

You then have basically an empty containing a collection instance with which you can move, rotate and scale the complete collection inside the viewport.
The original collection can de deactivated now so it will not show up in the viewport or render. The instanced collection is marked with an orange collection icon:

The thing is now, this instance is a single object which can be keyframed like a normal object, i.e. you can animate its visibility and only have to do it once for all objects contained in the collection. Of course you should only place those objects in the collection that you want to hide.
The original collection you only need to activate again if you want to change something in it. The good thing is, changes made to the original collection will automatically change the instanced collection. And since it is an instance, it does not affect the performance much additionally to the original collection.
By the way, you can even do this collection instancing "manually": add an empty to the scene, go to the Object Properties and under Instancing switch from None to Collection and pick a collection in the dropdown menu:
