diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp
index 93641b71020c8a286576ff7baa1927e422b12c24..1a657fd07f906a997a58f9bc7a691b5a078da563 100644
--- a/Marlin/src/module/motion.cpp
+++ b/Marlin/src/module/motion.cpp
@@ -988,6 +988,9 @@ void prepare_move_to_destination() {
  * The homing feedrate may vary
  */
 inline float get_homing_bump_feedrate(const AxisEnum axis) {
+  #if HOMING_Z_WITH_PROBE
+    if (axis == Z_AXIS) return Z_PROBE_SPEED_SLOW;
+  #endif
   static const uint8_t homing_bump_divisor[] PROGMEM = HOMING_BUMP_DIVISOR;
   uint8_t hbd = pgm_read_byte(&homing_bump_divisor[axis]);
   if (hbd < 1) {