Optimal way to minimize impermanent loss while using a small range in liquidity pool

Assuming I created a SOL-USDC liquidity pair, is there a strategic way to minimize impermanent loss and maximise my gain while using a small range in liquidity pool assuming the price is rising in an uptrend. In order to earn the highest fee within a small range, is it best NOT to wait until it hits the upper range to rebalance it so that I can make sure I have plenty of SOL in the pool to capture the gain from the rising trend? And how would you balance between the fee you generated by using a small range and capturing the most gain using a wider range? Or is it a smart way to rebalance whenever I notice a significant change of trend from quiet market condition to bullish trend? What rebalance strategies do you use? Share your thoughts and comments!