This paper describes a topology optimization approach that applies the common fatigue analysis practices of rainflow cycle counting and critical plane searches to cover both proportional and non-proportional fatigue loading conditions of metals. The existing literature on topology optimization has so far mainly considered fatigue damage under proportional loading conditions and typically uses continuous damage models to avoid the discontinuous nature of fatigue rainflow cycle counting and critical plane searches. Furthermore, previous publications often introduced heuristic schemes to scale the fatigue damage and set the move limits for the design variables rather low to avoid oscillations in the design variables and damage responses during the optimization iterations, because fatigue damage is typically highly localized. Therefore, these approaches cause many optimization iterations. Contrarily, our present approach applies the fatigue reserve factor (FRF) directly in the optimization formulation instead of the fatigue damage where FRF is a fatigue reserve factor for infinite fatigue life. The inverse FRF scales nearly linearly with the stresses. Therefore, the present approach needs no heuristic scaling for the fatigue topology optimization. The numerical implementation applies the semi-analytic adjoint sensitivity method for multiple load cases. Numerically, FRF shows more stable optimization convergence using less optimization iterations. Different FRF topology-optimized designs for a variety of fatigue damage types are validated and compared. Additionally, the optimized FRF designs are compared to both strictly stiffness optimized designs and stress strength optimized designs.