diff --git a/cmd/frontend/main.go b/cmd/frontend/main.go
index 1530c9d..38def44 100644
--- a/cmd/frontend/main.go
+++ b/cmd/frontend/main.go
@@ -182,7 +182,6 @@
 		postgres.SearchResponseCount,
 		fetchserver.FetchLatencyDistribution,
 		fetchserver.FetchResponseCount,
-		frontend.VersionTypeCount,
 		middleware.CacheResultCount,
 		middleware.CacheErrorCount,
 		middleware.CacheLatency,
diff --git a/internal/frontend/details.go b/internal/frontend/details.go
index 7870b98..4746e36 100644
--- a/internal/frontend/details.go
+++ b/internal/frontend/details.go
@@ -15,10 +15,6 @@
 	"golang.org/x/pkgsite/internal/frontend/urlinfo"
 	mstats "golang.org/x/pkgsite/internal/middleware/stats"
 
-	"go.opencensus.io/stats"
-	"go.opencensus.io/stats/view"
-	"go.opencensus.io/tag"
-	"golang.org/x/mod/semver"
 	"golang.org/x/pkgsite/internal"
 	"golang.org/x/pkgsite/internal/stdlib"
 )
@@ -90,33 +86,6 @@
 	return "/" + urlPath2
 }
 
-var (
-	keyVersionType     = tag.MustNewKey("frontend.version_type")
-	versionTypeResults = stats.Int64(
-		"go-discovery/frontend_version_type_count",
-		"The version type of a request to package, module, or directory page.",
-		stats.UnitDimensionless,
-	)
-	VersionTypeCount = &view.View{
-		Name:        "go-discovery/frontend_version_type/result_count",
-		Measure:     versionTypeResults,
-		Aggregation: view.Count(),
-		Description: "version type results, by latest, master, or semver",
-		TagKeys:     []tag.Key{keyVersionType},
-	}
-)
-
-func recordVersionTypeMetric(ctx context.Context, requestedVersion string) {
-	// Tag versions based on latest, master and semver.
-	v := requestedVersion
-	if semver.IsValid(v) {
-		v = "semver"
-	}
-	stats.RecordWithTags(ctx, []tag.Mutator{
-		tag.Upsert(keyVersionType, v),
-	}, versionTypeResults.M(1))
-}
-
 func checkExcluded(ctx context.Context, ds internal.DataSource, fullPath string) error {
 	db, ok := ds.(internal.PostgresDB)
 	if !ok {
diff --git a/internal/frontend/unit.go b/internal/frontend/unit.go
index f8f4ba8..2e3bd81 100644
--- a/internal/frontend/unit.go
+++ b/internal/frontend/unit.go
@@ -152,7 +152,6 @@
 		return s.serveJSONPage(w, r, d)
 	}
 
-	recordVersionTypeMetric(ctx, info.RequestedVersion)
 	if _, ok := internal.DefaultBranches[info.RequestedVersion]; ok {
 		// Since path@master is a moving target, we don't want it to be stale.
 		// As a result, we enqueue every request of path@master to the frontend
