diff --git a/lib/manager/npm/extract/locked-versions.ts b/lib/manager/npm/extract/locked-versions.ts
index 6d3f7975549eb1d8db01f9f3fd42b2e64280480d..1c1c4cab439a9e41beb09045d14d0757870ac562 100644
--- a/lib/manager/npm/extract/locked-versions.ts
+++ b/lib/manager/npm/extract/locked-versions.ts
@@ -55,7 +55,10 @@ export async function getLockedVersions(
       const { lockfileVersion } = lockFileCache[npmLock];
       if (lockfileVersion === 1) {
         if (packageFile.constraints.npm) {
-          packageFile.constraints.npm += ' <7';
+          // Add a <7 constraint if it's not already a fixed version
+          if (!valid(packageFile.constraints.npm)) {
+            packageFile.constraints.npm += ' <7';
+          }
         } else {
           packageFile.constraints.npm = '<7';
         }