When should I withdraw my staking rewards?
Staking rewards left in the rewards section of your wallet count towards your total balance staked. They therefore automatically compound without the need to withdraw them to the main part of your wallet. Each time you withdraw your staking rewards you will pay a transaction fee, which at the time of writing this is around 0.17 ada. This might not seem like a lot but it could add up over time. So it's best to leave your rewards in your rewards address until you need them.
As your staking rewards are held in the rewards address of your wallet, and not by the stake pool, you do not need to withdraw your staking rewards when delegating from one stake pool to another. You also do not need to withdraw your rewards when switching to a new wallet interface.
Some wallets offer an option to withdraw rewards at the same time as making a transaction. This reduces the withdrawal fee to a fraction of what you would normally pay to withdraw your rewards.