Firstly, when comparing tags you should use gameObject.CompareTag as it’s more efficient (I forget the details). The bonus of using layers is that you can prevent the physics simulation even running the checks on objects you don’t want to collide with each other in the first place by using the physics matrix. I think it does depend on the implementation, but we setup the matrix to only trigger collisions we want/expect. We then use Tag or even check for expected components.