Drift happens when your quad gradually moves in one direction without stick input, and I've dealt with this countless times building and tuning racing drones. The most common culprit is sensor calibration. Your flight controller uses an accelerometer and gyroscope to maintain position, and if these sensors weren't calibrated on a perfectly level surface, your drone thinks it's level when it's actually tilted. Place your drone on a flat table, ensure nothing is underneath causing tilt, and run the accelerometer calibration in your configurator software like Betaflight or INAV. Let it sit completely still during calibration.
Physical damage causes drift more often than people realize. Inspect each propeller carefully for chips, cracks, or bent tips. Even a small nick creates uneven thrust. I once chased drift for an hour before noticing a tiny crack in one blade. Replace any damaged props as a complete set to maintain balance. Check that props are mounted in the correct rotation pattern and tightened properly.
Motor issues are another frequent cause. Spin up each motor individually in your configurator and listen for grinding or unusual sounds. A bearing going bad or a bent motor shaft creates inconsistent thrust. Check that motor mounting screws are tight and motors aren't wobbling. Debris like grass or dirt stuck in motors can also cause problems.
If you've ruled out hardware issues, look at your environment. Wind affects smaller drones significantly, especially micros under 250 grams. What feels like drift might actually be wind compensation struggling to keep up. GPS-enabled drones can drift if they have poor satellite lock, usually from flying near buildings or under trees.
For persistent drift after checking everything above, adjust your PID settings. Higher P gains help the drone resist drift better, but too high causes oscillations. In Betaflight, small increases to the P value on pitch and roll can tighten things up. Some pilots also enable angle mode and check if drift persists there versus acro mode, which helps isolate whether it's a sensor issue or tuning problem.
One overlooked cause is an improperly mounted flight controller. If your FC is crooked or the soft mounting grommets have deteriorated, sensor readings will be off. Verify the arrow on your FC points forward and matches your configuration settings. Temperature can also affect drift since gyros are temperature-sensitive, so let your drone warm up for 30 seconds before flying.