diff --git a/lib/datasource/go.js b/lib/datasource/go.js
index 54123d4a239054cf8f27f9429f6fea7592c0bc74..9782da6db83093034d168e338bc08515cad9ae24 100644
--- a/lib/datasource/go.js
+++ b/lib/datasource/go.js
@@ -6,8 +6,25 @@ module.exports = {
   getDigest,
 };
 
+function getGithubPurl(repo) {
+  return {
+    fullname: repo.replace(/\/$/, ''),
+    qualifiers: {},
+  };
+}
+
 async function getSourcePurl(name) {
-  const pkgUrl = 'https://' + name + '?go-get=1';
+  if (name.startsWith('gopkg.in/')) {
+    const [pkg] = name.replace('gopkg.in/', '').split('.');
+    if (pkg.includes('/')) {
+      return getGithubPurl(pkg);
+    }
+    return getGithubPurl(`go-${pkg}/${pkg}`);
+  }
+  if (name.startsWith('github.com/')) {
+    return getGithubPurl(name.replace('github.com/', ''));
+  }
+  const pkgUrl = `https://${name}?go-get=1`;
   try {
     const res = (await got(pkgUrl, {
       retries: 5,
@@ -19,13 +36,7 @@ async function getSourcePurl(name) {
       const [, sourceUrl] = sourceMatch;
       logger.debug({ depName: name, sourceUrl }, 'Go lookup sourceUrl');
       if (sourceUrl && sourceUrl.startsWith('https://github.com/')) {
-        const githubPurl = {
-          fullname: sourceUrl
-            .replace('https://github.com/', '')
-            .replace(/\/$/, ''),
-          qualifiers: {},
-        };
-        return githubPurl;
+        return getGithubPurl(sourceUrl.replace('https://github.com/', ''));
       }
     } else {
       logger.trace({ depName: name }, 'No go-source header found');
diff --git a/lib/manager/gomod/extract.js b/lib/manager/gomod/extract.js
index 549b1cd180d9ec23960c342ca3ead04c740e65a5..2d9b66adc2f09a9deb7b89281ebdb4a664acdedc 100644
--- a/lib/manager/gomod/extract.js
+++ b/lib/manager/gomod/extract.js
@@ -19,20 +19,16 @@ function getDep(lineNumber, match) {
   };
   if (!isVersion(currentValue)) {
     dep.skipReason = 'unsupported-version';
-  } else if (depName.startsWith('gopkg.in/')) {
-    const [pkg] = depName.replace('gopkg.in/', '').split('.');
-    dep.depNameShort = pkg;
-    if (pkg.includes('/')) {
-      dep.purl = `pkg:github/${pkg}`;
+  } else {
+    if (depName.startsWith('gopkg.in/')) {
+      const [pkg] = depName.replace('gopkg.in/', '').split('.');
+      dep.depNameShort = pkg;
+    } else if (depName.startsWith('github.com/')) {
+      dep.depNameShort = depName.replace('github.com/', '');
     } else {
-      dep.purl = `pkg:github/go-${pkg}/${pkg}`;
+      dep.depNameShort = depName;
     }
-  } else if (depName.startsWith('github.com/')) {
-    dep.depNameShort = depName.replace('github.com/', '');
-    dep.purl = 'pkg:' + depName.replace('github.com', 'github');
-  } else {
     dep.purl = `pkg:go/${depName}`;
-    dep.depNameShort = depName;
   }
   const digestMatch = currentValue.match(/v0\.0.0-\d{14}-([a-f0-9]{12})/);
   if (digestMatch) {
diff --git a/test/datasource/__snapshots__/go.spec.js.snap b/test/datasource/__snapshots__/go.spec.js.snap
index cc080147296a796471aa230e3a956f777ef943d4..603e65b9d7888711bbb303250af9f15a4d10dc20 100644
--- a/test/datasource/__snapshots__/go.spec.js.snap
+++ b/test/datasource/__snapshots__/go.spec.js.snap
@@ -8,3 +8,29 @@ Object {
   ],
 }
 `;
+
+exports[`datasource/go getPkgReleases works for known servers 1`] = `
+Array [
+  Array [
+    Object {
+      "fullname": "x/text",
+      "qualifiers": Object {},
+    },
+    undefined,
+  ],
+  Array [
+    Object {
+      "fullname": "x/text",
+      "qualifiers": Object {},
+    },
+    undefined,
+  ],
+  Array [
+    Object {
+      "fullname": "go-x/x",
+      "qualifiers": Object {},
+    },
+    undefined,
+  ],
+]
+`;
diff --git a/test/datasource/go.spec.js b/test/datasource/go.spec.js
index bd2723e4ce5efc666a71761fb6694c5df325ac3d..17137d9b26cea1bd4ab561657352f77f929c4b99 100644
--- a/test/datasource/go.spec.js
+++ b/test/datasource/go.spec.js
@@ -90,5 +90,21 @@ describe('datasource/go', () => {
       const res = await datasource.getPkgReleases('pkg:go/golang.org/x/text');
       expect(res).toBeNull();
     });
+    it('works for known servers', async () => {
+      got.mockClear();
+      github.getPkgReleases.mockClear();
+      const packages = [
+        'pkg:go/github.com/x/text',
+        'pkg:go/gopkg.in/x/text',
+        'pkg:go/gopkg.in/x',
+      ];
+      const githubRes = { releases: [1, 2] };
+      for (const pkg of packages) {
+        github.getPkgReleases.mockReturnValueOnce(githubRes);
+        expect(await datasource.getPkgReleases(pkg)).toEqual(githubRes);
+      }
+      expect(got.mock.calls).toHaveLength(0);
+      expect(github.getPkgReleases.mock.calls).toMatchSnapshot();
+    });
   });
 });
diff --git a/test/manager/gomod/__snapshots__/extract.spec.js.snap b/test/manager/gomod/__snapshots__/extract.spec.js.snap
index c5e108aeff9b9b8e06810cd2ff7d37b775a7ca30..67ee028b6199eb166148a99bf8c85a2acf498020 100644
--- a/test/manager/gomod/__snapshots__/extract.spec.js.snap
+++ b/test/manager/gomod/__snapshots__/extract.spec.js.snap
@@ -9,7 +9,7 @@ Array [
     "depType": "require",
     "lineNumber": 3,
     "multiLine": true,
-    "purl": "pkg:github/aws/aws-sdk-go",
+    "purl": "pkg:go/github.com/aws/aws-sdk-go",
     "versionScheme": "semver",
   },
   Object {
@@ -21,7 +21,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 4,
     "multiLine": true,
-    "purl": "pkg:github/bgentry/go-netrc",
+    "purl": "pkg:go/github.com/bgentry/go-netrc",
     "versionScheme": "semver",
   },
   Object {
@@ -33,7 +33,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 5,
     "multiLine": true,
-    "purl": "pkg:github/cloudfoundry/jibber_jabber",
+    "purl": "pkg:go/github.com/cloudfoundry/jibber_jabber",
     "versionScheme": "semver",
   },
   Object {
@@ -43,7 +43,7 @@ Array [
     "depType": "require",
     "lineNumber": 6,
     "multiLine": true,
-    "purl": "pkg:github/davecgh/go-spew",
+    "purl": "pkg:go/github.com/davecgh/go-spew",
     "versionScheme": "semver",
   },
   Object {
@@ -53,7 +53,7 @@ Array [
     "depType": "require",
     "lineNumber": 7,
     "multiLine": true,
-    "purl": "pkg:github/emirpasic/gods",
+    "purl": "pkg:go/github.com/emirpasic/gods",
     "versionScheme": "semver",
   },
   Object {
@@ -63,7 +63,7 @@ Array [
     "depType": "require",
     "lineNumber": 8,
     "multiLine": true,
-    "purl": "pkg:github/fatih/color",
+    "purl": "pkg:go/github.com/fatih/color",
     "versionScheme": "semver",
   },
   Object {
@@ -73,7 +73,7 @@ Array [
     "depType": "require",
     "lineNumber": 9,
     "multiLine": true,
-    "purl": "pkg:github/fsnotify/fsnotify",
+    "purl": "pkg:go/github.com/fsnotify/fsnotify",
     "versionScheme": "semver",
   },
   Object {
@@ -83,7 +83,7 @@ Array [
     "depType": "require",
     "lineNumber": 10,
     "multiLine": true,
-    "purl": "pkg:github/go-ini/ini",
+    "purl": "pkg:go/github.com/go-ini/ini",
     "versionScheme": "semver",
   },
   Object {
@@ -95,7 +95,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 11,
     "multiLine": true,
-    "purl": "pkg:github/golang-collections/collections",
+    "purl": "pkg:go/github.com/golang-collections/collections",
     "versionScheme": "semver",
   },
   Object {
@@ -107,7 +107,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 12,
     "multiLine": true,
-    "purl": "pkg:github/hashicorp/go-cleanhttp",
+    "purl": "pkg:go/github.com/hashicorp/go-cleanhttp",
     "versionScheme": "semver",
   },
   Object {
@@ -119,7 +119,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 13,
     "multiLine": true,
-    "purl": "pkg:github/hashicorp/go-getter",
+    "purl": "pkg:go/github.com/hashicorp/go-getter",
     "versionScheme": "semver",
   },
   Object {
@@ -131,7 +131,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 14,
     "multiLine": true,
-    "purl": "pkg:github/hashicorp/go-safetemp",
+    "purl": "pkg:go/github.com/hashicorp/go-safetemp",
     "versionScheme": "semver",
   },
   Object {
@@ -141,7 +141,7 @@ Array [
     "depType": "require",
     "lineNumber": 15,
     "multiLine": true,
-    "purl": "pkg:github/hashicorp/go-version",
+    "purl": "pkg:go/github.com/hashicorp/go-version",
     "versionScheme": "semver",
   },
   Object {
@@ -153,7 +153,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 16,
     "multiLine": true,
-    "purl": "pkg:github/hashicorp/hcl",
+    "purl": "pkg:go/github.com/hashicorp/hcl",
     "versionScheme": "semver",
   },
   Object {
@@ -165,7 +165,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 17,
     "multiLine": true,
-    "purl": "pkg:github/heroku/rollrus",
+    "purl": "pkg:go/github.com/heroku/rollrus",
     "versionScheme": "semver",
   },
   Object {
@@ -177,7 +177,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 18,
     "multiLine": true,
-    "purl": "pkg:github/jbenet/go-context",
+    "purl": "pkg:go/github.com/jbenet/go-context",
     "versionScheme": "semver",
   },
   Object {
@@ -189,7 +189,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 19,
     "multiLine": true,
-    "purl": "pkg:github/jesseduffield/go-getter",
+    "purl": "pkg:go/github.com/jesseduffield/go-getter",
     "versionScheme": "semver",
   },
   Object {
@@ -201,7 +201,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 20,
     "multiLine": true,
-    "purl": "pkg:github/jesseduffield/gocui",
+    "purl": "pkg:go/github.com/jesseduffield/gocui",
     "versionScheme": "semver",
   },
   Object {
@@ -213,7 +213,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 21,
     "multiLine": true,
-    "purl": "pkg:github/jesseduffield/termbox-go",
+    "purl": "pkg:go/github.com/jesseduffield/termbox-go",
     "versionScheme": "semver",
   },
   Object {
@@ -225,7 +225,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 22,
     "multiLine": true,
-    "purl": "pkg:github/jmespath/go-jmespath",
+    "purl": "pkg:go/github.com/jmespath/go-jmespath",
     "versionScheme": "semver",
   },
   Object {
@@ -237,7 +237,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 23,
     "multiLine": true,
-    "purl": "pkg:github/kardianos/osext",
+    "purl": "pkg:go/github.com/kardianos/osext",
     "versionScheme": "semver",
   },
   Object {
@@ -249,7 +249,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 24,
     "multiLine": true,
-    "purl": "pkg:github/kevinburke/ssh_config",
+    "purl": "pkg:go/github.com/kevinburke/ssh_config",
     "versionScheme": "semver",
   },
   Object {
@@ -259,7 +259,7 @@ Array [
     "depType": "require",
     "lineNumber": 25,
     "multiLine": true,
-    "purl": "pkg:github/magiconair/properties",
+    "purl": "pkg:go/github.com/magiconair/properties",
     "versionScheme": "semver",
   },
   Object {
@@ -269,7 +269,7 @@ Array [
     "depType": "require",
     "lineNumber": 26,
     "multiLine": true,
-    "purl": "pkg:github/mattn/go-colorable",
+    "purl": "pkg:go/github.com/mattn/go-colorable",
     "versionScheme": "semver",
   },
   Object {
@@ -279,7 +279,7 @@ Array [
     "depType": "require",
     "lineNumber": 27,
     "multiLine": true,
-    "purl": "pkg:github/mattn/go-isatty",
+    "purl": "pkg:go/github.com/mattn/go-isatty",
     "versionScheme": "semver",
   },
   Object {
@@ -289,7 +289,7 @@ Array [
     "depType": "require",
     "lineNumber": 28,
     "multiLine": true,
-    "purl": "pkg:github/mattn/go-runewidth",
+    "purl": "pkg:go/github.com/mattn/go-runewidth",
     "versionScheme": "semver",
   },
   Object {
@@ -299,7 +299,7 @@ Array [
     "depType": "require",
     "lineNumber": 29,
     "multiLine": true,
-    "purl": "pkg:github/mgutz/str",
+    "purl": "pkg:go/github.com/mgutz/str",
     "versionScheme": "semver",
   },
   Object {
@@ -311,7 +311,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 30,
     "multiLine": true,
-    "purl": "pkg:github/mitchellh/go-homedir",
+    "purl": "pkg:go/github.com/mitchellh/go-homedir",
     "versionScheme": "semver",
   },
   Object {
@@ -323,7 +323,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 31,
     "multiLine": true,
-    "purl": "pkg:github/mitchellh/go-testing-interface",
+    "purl": "pkg:go/github.com/mitchellh/go-testing-interface",
     "versionScheme": "semver",
   },
   Object {
@@ -335,7 +335,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 32,
     "multiLine": true,
-    "purl": "pkg:github/mitchellh/mapstructure",
+    "purl": "pkg:go/github.com/mitchellh/mapstructure",
     "versionScheme": "semver",
   },
   Object {
@@ -347,7 +347,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 33,
     "multiLine": true,
-    "purl": "pkg:github/nicksnyder/go-i18n",
+    "purl": "pkg:go/github.com/nicksnyder/go-i18n",
     "versionScheme": "semver",
   },
   Object {
@@ -357,7 +357,7 @@ Array [
     "depType": "require",
     "lineNumber": 34,
     "multiLine": true,
-    "purl": "pkg:github/pelletier/go-buffruneio",
+    "purl": "pkg:go/github.com/pelletier/go-buffruneio",
     "versionScheme": "semver",
   },
   Object {
@@ -367,7 +367,7 @@ Array [
     "depType": "require",
     "lineNumber": 35,
     "multiLine": true,
-    "purl": "pkg:github/pelletier/go-toml",
+    "purl": "pkg:go/github.com/pelletier/go-toml",
     "versionScheme": "semver",
   },
   Object {
@@ -377,7 +377,7 @@ Array [
     "depType": "require",
     "lineNumber": 36,
     "multiLine": true,
-    "purl": "pkg:github/pkg/errors",
+    "purl": "pkg:go/github.com/pkg/errors",
     "versionScheme": "semver",
   },
   Object {
@@ -387,7 +387,7 @@ Array [
     "depType": "require",
     "lineNumber": 37,
     "multiLine": true,
-    "purl": "pkg:github/pmezard/go-difflib",
+    "purl": "pkg:go/github.com/pmezard/go-difflib",
     "versionScheme": "semver",
   },
   Object {
@@ -397,7 +397,7 @@ Array [
     "depType": "require",
     "lineNumber": 38,
     "multiLine": true,
-    "purl": "pkg:github/sergi/go-diff",
+    "purl": "pkg:go/github.com/sergi/go-diff",
     "versionScheme": "semver",
   },
   Object {
@@ -409,7 +409,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 39,
     "multiLine": true,
-    "purl": "pkg:github/shibukawa/configdir",
+    "purl": "pkg:go/github.com/shibukawa/configdir",
     "versionScheme": "semver",
   },
   Object {
@@ -419,7 +419,7 @@ Array [
     "depType": "require",
     "lineNumber": 40,
     "multiLine": true,
-    "purl": "pkg:github/sirupsen/logrus",
+    "purl": "pkg:go/github.com/sirupsen/logrus",
     "versionScheme": "semver",
   },
   Object {
@@ -429,7 +429,7 @@ Array [
     "depType": "require",
     "lineNumber": 41,
     "multiLine": true,
-    "purl": "pkg:github/spf13/afero",
+    "purl": "pkg:go/github.com/spf13/afero",
     "versionScheme": "semver",
   },
   Object {
@@ -439,7 +439,7 @@ Array [
     "depType": "require",
     "lineNumber": 42,
     "multiLine": true,
-    "purl": "pkg:github/spf13/cast",
+    "purl": "pkg:go/github.com/spf13/cast",
     "versionScheme": "semver",
   },
   Object {
@@ -451,7 +451,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 43,
     "multiLine": true,
-    "purl": "pkg:github/spf13/jwalterweatherman",
+    "purl": "pkg:go/github.com/spf13/jwalterweatherman",
     "versionScheme": "semver",
   },
   Object {
@@ -461,7 +461,7 @@ Array [
     "depType": "require",
     "lineNumber": 44,
     "multiLine": true,
-    "purl": "pkg:github/spf13/pflag",
+    "purl": "pkg:go/github.com/spf13/pflag",
     "versionScheme": "semver",
   },
   Object {
@@ -471,7 +471,7 @@ Array [
     "depType": "require",
     "lineNumber": 45,
     "multiLine": true,
-    "purl": "pkg:github/spf13/viper",
+    "purl": "pkg:go/github.com/spf13/viper",
     "versionScheme": "semver",
   },
   Object {
@@ -483,7 +483,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 46,
     "multiLine": true,
-    "purl": "pkg:github/spkg/bom",
+    "purl": "pkg:go/github.com/spkg/bom",
     "versionScheme": "semver",
   },
   Object {
@@ -493,7 +493,7 @@ Array [
     "depType": "require",
     "lineNumber": 47,
     "multiLine": true,
-    "purl": "pkg:github/src-d/gcfg/v2",
+    "purl": "pkg:go/github.com/src-d/gcfg/v2",
     "versionScheme": "semver",
   },
   Object {
@@ -503,7 +503,7 @@ Array [
     "depType": "require",
     "lineNumber": 48,
     "multiLine": true,
-    "purl": "pkg:github/stretchr/testify",
+    "purl": "pkg:go/github.com/stretchr/testify",
     "versionScheme": "semver",
   },
   Object {
@@ -515,7 +515,7 @@ Array [
     "digestOneAndOnly": true,
     "lineNumber": 49,
     "multiLine": true,
-    "purl": "pkg:github/stvp/roll",
+    "purl": "pkg:go/github.com/stvp/roll",
     "versionScheme": "semver",
   },
   Object {
@@ -525,7 +525,7 @@ Array [
     "depType": "require",
     "lineNumber": 50,
     "multiLine": true,
-    "purl": "pkg:github/tcnksm/go-gitconfig",
+    "purl": "pkg:go/github.com/tcnksm/go-gitconfig",
     "versionScheme": "semver",
   },
   Object {
@@ -535,7 +535,7 @@ Array [
     "depType": "require",
     "lineNumber": 51,
     "multiLine": true,
-    "purl": "pkg:github/ulikunitz/xz",
+    "purl": "pkg:go/github.com/ulikunitz/xz",
     "versionScheme": "semver",
   },
   Object {
@@ -545,7 +545,7 @@ Array [
     "depType": "require",
     "lineNumber": 52,
     "multiLine": true,
-    "purl": "pkg:github/xanzy/ssh-agent",
+    "purl": "pkg:go/github.com/xanzy/ssh-agent",
     "versionScheme": "semver",
   },
   Object {
@@ -601,7 +601,7 @@ Array [
     "depType": "require",
     "lineNumber": 57,
     "multiLine": true,
-    "purl": "pkg:github/src-d/go-billy",
+    "purl": "pkg:go/gopkg.in/src-d/go-billy.v4",
     "versionScheme": "semver",
   },
   Object {
@@ -611,7 +611,7 @@ Array [
     "depType": "require",
     "lineNumber": 58,
     "multiLine": true,
-    "purl": "pkg:github/src-d/go-git",
+    "purl": "pkg:go/gopkg.in/src-d/go-git.v4",
     "versionScheme": "semver",
   },
   Object {
@@ -621,7 +621,7 @@ Array [
     "depType": "require",
     "lineNumber": 59,
     "multiLine": true,
-    "purl": "pkg:github/go-warnings/warnings",
+    "purl": "pkg:go/gopkg.in/warnings.v0",
     "versionScheme": "semver",
   },
   Object {
@@ -631,7 +631,7 @@ Array [
     "depType": "require",
     "lineNumber": 60,
     "multiLine": true,
-    "purl": "pkg:github/go-yaml/yaml",
+    "purl": "pkg:go/gopkg.in/yaml.v2",
     "versionScheme": "semver",
   },
 ]
@@ -645,7 +645,7 @@ Array [
     "depNameShort": "pkg/errors",
     "depType": "require",
     "lineNumber": 2,
-    "purl": "pkg:github/pkg/errors",
+    "purl": "pkg:go/github.com/pkg/errors",
     "versionScheme": "semver",
   },
   Object {
@@ -654,7 +654,7 @@ Array [
     "depNameShort": "aws/aws-sdk-go",
     "depType": "require",
     "lineNumber": 3,
-    "purl": "pkg:github/aws/aws-sdk-go",
+    "purl": "pkg:go/github.com/aws/aws-sdk-go",
     "versionScheme": "semver",
   },
   Object {
@@ -663,7 +663,7 @@ Array [
     "depNameShort": "davecgh/go-spew",
     "depType": "require",
     "lineNumber": 4,
-    "purl": "pkg:github/davecgh/go-spew",
+    "purl": "pkg:go/github.com/davecgh/go-spew",
     "versionScheme": "semver",
   },
   Object {
@@ -689,7 +689,7 @@ Array [
     "depNameShort": "russross/blackfriday",
     "depType": "require",
     "lineNumber": 7,
-    "purl": "pkg:github/russross/blackfriday",
+    "purl": "pkg:go/gopkg.in/russross/blackfriday.v1",
     "versionScheme": "semver",
   },
 ]