diff --git a/lib/modules/datasource/go/releases-goproxy.spec.ts b/lib/modules/datasource/go/releases-goproxy.spec.ts
index b7c1138d6428a47806db3e2c5903aac987997959..708c8e39ab41b2c8b597569f5e289f0fe815ca40 100644
--- a/lib/modules/datasource/go/releases-goproxy.spec.ts
+++ b/lib/modules/datasource/go/releases-goproxy.spec.ts
@@ -343,7 +343,7 @@ describe('modules/datasource/go/releases-goproxy', () => {
           200,
           codeBlock`
             v1.0.0 2018-08-13T15:31:12Z
-            v1.0.1
+            v1.0.1   \n
             v1.28.1-20230721020619-4464c06fa399.4
           `,
         )
@@ -360,12 +360,18 @@ describe('modules/datasource/go/releases-goproxy', () => {
 
       expect(res).toEqual({
         releases: [
-          { releaseTimestamp: '2018-08-13T15:31:12Z', version: 'v1.0.0' },
-          { releaseTimestamp: '2019-10-16T16:15:28Z', version: 'v1.0.1' },
           {
-            newDigest: '4464c06fa399',
-            releaseTimestamp: '20230721020619',
+            version: 'v1.0.0',
+            releaseTimestamp: '2018-08-13T15:31:12Z',
+          },
+          {
+            version: 'v1.0.1',
+            releaseTimestamp: '2019-10-16T16:15:28Z',
+          },
+          {
             version: 'v1.28.1-20230721020619-4464c06fa399.4',
+            releaseTimestamp: '2023-07-21T02:06:19Z',
+            newDigest: '4464c06fa399',
           },
         ],
         sourceUrl: 'https://github.com/google/btree',
diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts
index db6db3d94b27e03ebb52f57396bdda8b2c511241..fc98b95b23a71487c4e66b03f703654c39031ee0 100644
--- a/lib/modules/datasource/go/releases-goproxy.ts
+++ b/lib/modules/datasource/go/releases-goproxy.ts
@@ -3,6 +3,7 @@ import { DateTime } from 'luxon';
 import moo from 'moo';
 import { logger } from '../../../logger';
 import { cache } from '../../../util/cache/package/decorator';
+import { filterMap } from '../../../util/filter-map';
 import { HttpError } from '../../../util/http';
 import * as p from '../../../util/promises';
 import { newlineRegex, regEx } from '../../../util/regex';
@@ -18,8 +19,11 @@ const parsedGoproxy: Record<string, GoproxyItem[]> = {};
 
 const modRegex = regEx(/^(?<baseMod>.*?)(?:[./]v(?<majorVersion>\d+))?$/);
 
-const pversionRegexp = regEx(
-  /v\d+\.\d+\.\d+-(?:"\w+\.)?(?:0\.)?(?<releaseTimestamp>\d{14})-(?<digest>[a-f0-9]{12})/,
+/**
+ * @see https://go.dev/ref/mod#pseudo-versions
+ */
+const pseudoVersionRegex = regEx(
+  /v\d+\.\d+\.\d+-(?:\w+\.)?(?:0\.)?(?<timestamp>\d{14})-(?<digest>[a-f0-9]{12})/i,
 );
 
 export class GoProxyDatasource extends Datasource {
@@ -211,29 +215,38 @@ export class GoProxyDatasource extends Datasource {
   async listVersions(baseUrl: string, packageName: string): Promise<Release[]> {
     const url = `${baseUrl}/${this.encodeCase(packageName)}/@v/list`;
     const { body } = await this.http.get(url);
-    return body
-      .split(newlineRegex)
-      .filter(is.nonEmptyStringAndNotWhitespace)
-      .map((str) => {
-        let version: string | undefined;
-        let newDigest: string | undefined;
-        let releaseTimestamp: string | undefined;
-        [version, releaseTimestamp] = str.split(regEx(/\s+/));
-
-        if (!DateTime.fromISO(releaseTimestamp).isValid) {
-          version = str;
-          releaseTimestamp = undefined;
-        }
-        const digestMatch = pversionRegexp.exec(version);
+    return filterMap(body.split(newlineRegex), (str) => {
+      if (!is.nonEmptyStringAndNotWhitespace(str)) {
+        return null;
+      }
+
+      const [version, releaseTimestamp] = str.trim().split(regEx(/\s+/));
+      const release: Release = { version };
+
+      if (releaseTimestamp) {
+        release.releaseTimestamp = releaseTimestamp;
+      }
 
-        if (!releaseTimestamp && digestMatch?.groups?.releaseTimestamp) {
-          releaseTimestamp = digestMatch.groups.releaseTimestamp;
+      const pseudoVersionMatch = version.match(pseudoVersionRegex)?.groups;
+      if (pseudoVersionMatch) {
+        const { digest: newDigest, timestamp } = pseudoVersionMatch;
+
+        if (newDigest) {
+          release.newDigest = newDigest;
         }
-        if (digestMatch?.groups?.digest) {
-          newDigest = digestMatch.groups.digest;
+
+        const pseudoVersionReleaseTimestamp = DateTime.fromFormat(
+          timestamp,
+          'yyyyMMddHHmmss',
+          { zone: 'UTC' },
+        ).toISO({ suppressMilliseconds: true });
+        if (pseudoVersionReleaseTimestamp) {
+          release.releaseTimestamp = pseudoVersionReleaseTimestamp;
         }
-        return { version, newDigest, releaseTimestamp };
-      });
+      }
+
+      return release;
+    });
   }
 
   async versionInfo(