How to control the optimization step size in Gaussian?
Gaussian by default uses a dynamic trust radius for optimizations to a minimum (you also ensured this by including the trustupdate option). When you specify a maxstep this is only guaranteed to be the initial trust radius. In fact, the second step will ensure the trust radius is at least 0.05.
You can see the trust radius for a given step (if you have #p in the route section) by searching for &quot;Trust test&quot;. In that same line, it will say &quot;DXMaxT set to 5.00D-2&quot;, with the value printed being the trust radius used for this step.
To prevent these updates, simply replace TrustUpdate with NoTrustUpdate. Keep in mind that they likely force the radius up to 0.05 for a reason and your optimizations may fail or take much longer without these updates. You should only use a step this small if you think you have a geometry very close to the minimum or a very messy potential energy surface that you want to step through cautiously.