diff --git a/internal/frontend/versions.go b/internal/frontend/versions.go
index 161ab78..454e242 100644
--- a/internal/frontend/versions.go
+++ b/internal/frontend/versions.go
@@ -114,7 +114,7 @@
 		}
 		return constructUnitURL(versionPath, mi.ModulePath, linkVersion(mi.ModulePath, mi.Version, mi.Version))
 	}
-	return buildVersionDetails(ctx, um.ModulePath, um.Path, versions, sh, linkify, vc), nil
+	return buildVersionDetails(ctx, um.ModulePath, um.Path, versions, sh, linkify, vc)
 }
 
 // pathInVersion constructs the full import path of the package corresponding
@@ -147,7 +147,7 @@
 	sh *internal.SymbolHistory,
 	linkify func(v *internal.ModuleInfo) string,
 	vc *vuln.Client,
-) *VersionsDetails {
+) (*VersionsDetails, error) {
 	// lists organizes versions by VersionListKey.
 	lists := make(map[VersionListKey]*VersionList)
 	// seenLists tracks the order in which we encounter entries of each version
@@ -162,7 +162,7 @@
 			var err error
 			major, err = stdlib.MajorVersionForVersion(mi.Version)
 			if err != nil {
-				panic(err)
+				return nil, err
 			}
 		}
 		// We prefer the path major version except for v1 import paths where the
@@ -234,7 +234,18 @@
 	}
 	// Sort for testing.
 	sort.Strings(details.OtherModules)
-	return &details
+
+	// Pkgsite will not display psuedoversions for the standard library. If the
+	// version details contain master then this package exists only at master.
+	// Show only the first entry. The additional entries will all be duplicate
+	// links to package@master.
+	if len(details.ThisModule) > 0 &&
+		len(details.ThisModule[0].Versions) > 0 &&
+		currentModulePath == stdlib.ModulePath &&
+		details.ThisModule[0].Versions[0].Version == "master" {
+		details.ThisModule[0].Versions = details.ThisModule[0].Versions[:1]
+	}
+	return &details, nil
 }
 
 // isMinor reports whether v is a release version where the patch version is 0.
diff --git a/internal/stdlib/stdlib.go b/internal/stdlib/stdlib.go
index cf0d155..b7fa93b 100644
--- a/internal/stdlib/stdlib.go
+++ b/internal/stdlib/stdlib.go
@@ -152,8 +152,8 @@
 	if err != nil {
 		return "", err
 	}
-	if tag == "go1" {
-		return tag, nil
+	if tag == "go1" || tag == "master" {
+		return "go1", nil
 	}
 	i := strings.IndexRune(tag, '.')
 	if i < 0 {
diff --git a/internal/stdlib/stdlib_test.go b/internal/stdlib/stdlib_test.go
index 7cd43aa..7297582 100644
--- a/internal/stdlib/stdlib_test.go
+++ b/internal/stdlib/stdlib_test.go
@@ -112,6 +112,8 @@
 		{"v1.13.3", "go1"},
 		{"v1.9.0-rc.2", "go1"},
 		{"v2.1.3", "go2"},
+		{"v2.1.3", "go2"},
+		{"v0.0.0-20230307225218-457fd1d52d17", "go1"},
 	} {
 		got, err := MajorVersionForVersion(test.in)
 		if (err != nil) != (test.want == "") {
