diff --git a/lib/modules/datasource/go/index.spec.ts b/lib/modules/datasource/go/index.spec.ts
index 170c1774e6a69780df9169f39cf18ab1f4365f8a..ab23fe6909d00b8e1a1f8cead6b2db043a8ac7de 100644
--- a/lib/modules/datasource/go/index.spec.ts
+++ b/lib/modules/datasource/go/index.spec.ts
@@ -53,25 +53,10 @@ describe('modules/datasource/go/index', () => {
       delete process.env.GOPROXY;
     });
 
-    it('fetches release info directly from VCS', async () => {
-      const expected = { releases: [{ version: '0.0.1' }] };
-      getReleasesProxyMock.mockResolvedValue(null);
-      getReleasesDirectMock.mockResolvedValue(expected);
-
-      const res = await datasource.getReleases({
-        packageName: 'golang.org/foo/bar',
-      });
-
-      expect(res).toBe(expected);
-      expect(getReleasesProxyMock).not.toHaveBeenCalled();
-      expect(getReleasesDirectMock).toHaveBeenCalled();
-    });
-
-    it('supports GOPROXY', async () => {
+    it('fetches releases', async () => {
       const expected = { releases: [{ version: '0.0.1' }] };
       getReleasesProxyMock.mockResolvedValue(expected);
       getReleasesDirectMock.mockResolvedValue(null);
-      process.env.GOPROXY = 'https://proxy.golang.org,direct';
 
       const res = await datasource.getReleases({
         packageName: 'golang.org/foo/bar',
diff --git a/lib/modules/datasource/go/index.ts b/lib/modules/datasource/go/index.ts
index 6bd4934a63d1e06ae1ed705708569ddb5505e644..89fcff28f1802cd8048a0d7b573b91948802f5cd 100644
--- a/lib/modules/datasource/go/index.ts
+++ b/lib/modules/datasource/go/index.ts
@@ -36,9 +36,7 @@ export class GoDatasource extends Datasource {
     key: ({ packageName }: Partial<DigestConfig>) => `${packageName}-digest`,
   })
   getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {
-    return process.env.GOPROXY
-      ? this.goproxy.getReleases(config)
-      : this.direct.getReleases(config);
+    return this.goproxy.getReleases(config);
   }
 
   /**
diff --git a/lib/modules/datasource/go/readme.md b/lib/modules/datasource/go/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..1546b270d1796c7ec87e4c9b3feb3f6f16693b80
--- /dev/null
+++ b/lib/modules/datasource/go/readme.md
@@ -0,0 +1,5 @@
+This datasource will default to using the `GOPROXY` settings `https://proxy.golang.org,direct` if there is no value defined in environment variables.
+
+To override this default and use a different proxy, simply configure `GOPROXY` to an alternative setting in env.
+
+To override this default and stop using any proxy at all, set `GOPROXY` to the value `direct`.
diff --git a/lib/modules/datasource/go/releases-goproxy.spec.ts b/lib/modules/datasource/go/releases-goproxy.spec.ts
index 4cbc7aa852300cf24112cba871cf5bb085158996..55250e597fadb4cbe117933b2c6e16f50105c4d1 100644
--- a/lib/modules/datasource/go/releases-goproxy.spec.ts
+++ b/lib/modules/datasource/go/releases-goproxy.spec.ts
@@ -285,6 +285,30 @@ describe('modules/datasource/go/releases-goproxy', () => {
       delete process.env.GOINSECURE;
     });
 
+    it('handles direct', async () => {
+      process.env.GOPROXY = 'direct';
+
+      githubGetTags.mockResolvedValueOnce({
+        releases: [
+          { gitRef: 'v1.0.0', version: 'v1.0.0' },
+          { gitRef: 'v1.0.1', version: 'v1.0.1' },
+        ],
+      });
+      githubGetReleases.mockResolvedValueOnce({ releases: [] });
+
+      const res = await datasource.getReleases({
+        packageName: 'github.com/google/btree',
+      });
+
+      expect(res).toEqual({
+        releases: [
+          { gitRef: 'v1.0.0', version: 'v1.0.0' },
+          { gitRef: 'v1.0.1', version: 'v1.0.1' },
+        ],
+        sourceUrl: 'https://github.com/google/btree',
+      });
+    });
+
     it('skips GONOPROXY and GOPRIVATE packages', async () => {
       process.env.GOPROXY = baseUrl;
       process.env.GOPRIVATE = 'github.com/google/*';
@@ -311,8 +335,6 @@ describe('modules/datasource/go/releases-goproxy', () => {
     });
 
     it('fetches release data from goproxy', async () => {
-      process.env.GOPROXY = baseUrl;
-
       httpMock
         .scope(`${baseUrl}/github.com/google/btree`)
         .get('/@v/list')
diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts
index 000d2473e4ffbd3dfaddb184a9a30a3cb3e30bad..c3dd78d1608cbfed71bb7ac97122012d2a02a304 100644
--- a/lib/modules/datasource/go/releases-goproxy.ts
+++ b/lib/modules/datasource/go/releases-goproxy.ts
@@ -32,8 +32,10 @@ export class GoProxyDatasource extends Datasource {
   async getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {
     const { packageName } = config;
     logger.trace(`goproxy.getReleases(${packageName})`);
-
-    const goproxy = process.env.GOPROXY;
+    const goproxy = process.env.GOPROXY ?? 'https://proxy.golang.org,direct';
+    if (goproxy === 'direct') {
+      return this.direct.getReleases(config);
+    }
     const proxyList = this.parseGoproxy(goproxy);
     const noproxy = GoProxyDatasource.parseNoproxy();