diff --git a/lib/datasource/npm/get.js b/lib/datasource/npm/get.js
index 4a6ae3630941f78536722a889d5a8e49e9a0a85a..dfa8317f0af95a2cea8fdb41d2660cde0e0c92e0 100644
--- a/lib/datasource/npm/get.js
+++ b/lib/datasource/npm/get.js
@@ -36,13 +36,6 @@ async function getDependency(name) {
     return JSON.parse(memcache[name]);
   }
 
-  // Now check the persistent cache
-  const cacheNamespace = 'datasource-npm';
-  const cachedResult = await renovateCache.get(cacheNamespace, name);
-  if (cachedResult) {
-    return cachedResult;
-  }
-
   const scope = name.split('/')[0];
   let regUrl;
   const npmrc = getNpmrc();
@@ -55,6 +48,12 @@ async function getDependency(name) {
     regUrl,
     encodeURIComponent(name).replace(/^%40/, '@')
   );
+  // Now check the persistent cache
+  const cacheNamespace = 'datasource-npm';
+  const cachedResult = await renovateCache.get(cacheNamespace, pkgUrl);
+  if (cachedResult) {
+    return cachedResult;
+  }
   const authInfo = registryAuthToken(regUrl, { npmrc });
   const headers = {};
 
@@ -197,7 +196,7 @@ async function getDependency(name) {
       ? parseInt(process.env.RENOVATE_CACHE_NPM_MINUTES, 10)
       : 5;
     if (!name.startsWith('@')) {
-      await renovateCache.set(cacheNamespace, name, dep, cacheMinutes);
+      await renovateCache.set(cacheNamespace, pkgUrl, dep, cacheMinutes);
     }
     return dep;
   } catch (err) {
diff --git a/test/datasource/npm/index.spec.js b/test/datasource/npm/index.spec.js
index 2169e92c2278a1b2f0294c5b43118f0fe6027ee0..d0d7ebf3a1c8b1b4ebb950fa098ca140f6509908 100644
--- a/test/datasource/npm/index.spec.js
+++ b/test/datasource/npm/index.spec.js
@@ -366,8 +366,13 @@ describe('api/npm', () => {
     const dep = {
       name: 'abc123',
     };
-    await global.renovateCache.set('datasource-npm', 'foobar', dep, 10);
-    const res = await npm.getPkgReleases({ lookupName: 'foobar' });
+    await global.renovateCache.set(
+      'datasource-npm',
+      'https://registry.npmjs.org/abc123',
+      dep,
+      10
+    );
+    const res = await npm.getPkgReleases({ lookupName: 'abc123' });
     expect(res).toEqual(dep);
   });
   it('should fetch package info from custom registry', async () => {