diff --git a/lib/modules/datasource/go/releases-goproxy.spec.ts b/lib/modules/datasource/go/releases-goproxy.spec.ts
index 20a1cefbde28adea9e4bf983b40c65806319e419..bcbb07221e7add28065040f4f594f3a55f5ca189 100644
--- a/lib/modules/datasource/go/releases-goproxy.spec.ts
+++ b/lib/modules/datasource/go/releases-goproxy.spec.ts
@@ -754,5 +754,28 @@ describe('modules/datasource/go/releases-goproxy', () => {
 
       expect(res).toBeNull();
     });
+
+    it('returns latest even if package has no releases', async () => {
+      process.env.GOPROXY = baseUrl;
+
+      httpMock
+        .scope(`${baseUrl}/github.com/google/btree`)
+        .get('/@v/list')
+        .reply(200)
+        .get('/@latest')
+        .reply(200, { Version: 'v0.0.0-20230905200255-921286631fa9' })
+        .get('/v2/@v/list')
+        .reply(404);
+
+      const res = await datasource.getReleases({
+        packageName: 'github.com/google/btree',
+      });
+
+      expect(res).toEqual({
+        releases: [],
+        sourceUrl: 'https://github.com/google/btree',
+        tags: { latest: 'v0.0.0-20230905200255-921286631fa9' },
+      });
+    });
   });
 });
diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts
index 09b4a91e6676a526ca6b8202b1920baf18ae6912..bec01647ce2660eab54ebe879a6abf4373ce551c 100644
--- a/lib/modules/datasource/go/releases-goproxy.ts
+++ b/lib/modules/datasource/go/releases-goproxy.ts
@@ -61,19 +61,11 @@ export class GoProxyDatasource extends Datasource {
         const res = await this.getVersionsWithInfo(url, packageName);
         if (res.releases.length) {
           result = res;
-          try {
-            const datasource = await BaseGoDatasource.getDatasource(
-              packageName
-            );
-            const sourceUrl = getSourceUrl(datasource);
-            if (sourceUrl) {
-              result.sourceUrl = sourceUrl;
-            }
-          } catch (err) {
-            logger.trace({ err }, `Can't get datasource for ${packageName}`);
-          }
           break;
         }
+        if (res.tags?.latest) {
+          result = res;
+        }
       } catch (err) {
         const statusCode = err?.response?.statusCode;
         const canFallback =
@@ -88,6 +80,18 @@ export class GoProxyDatasource extends Datasource {
       }
     }
 
+    if (result && !result.sourceUrl) {
+      try {
+        const datasource = await BaseGoDatasource.getDatasource(packageName);
+        const sourceUrl = getSourceUrl(datasource);
+        if (sourceUrl) {
+          result.sourceUrl = sourceUrl;
+        }
+      } catch (err) {
+        logger.trace({ err }, `Can't get datasource for ${packageName}`);
+      }
+    }
+
     return result;
   }