diff --git a/internal/frontend/server_test.go b/internal/frontend/server_test.go
index 6e8c390..c9f1895 100644
--- a/internal/frontend/server_test.go
+++ b/internal/frontend/server_test.go
@@ -353,6 +353,7 @@
 		LicenseFilePath:        sample.LicenseFilePath,
 		UnitURLFormat:          "/" + sample.ModulePath + "%s/" + sample.Suffix,
 		ModuleURL:              "/" + sample.ModulePath,
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	v2pkgV100 := &pagecheck.Page{
@@ -370,6 +371,7 @@
 		LicenseFilePath:        sample.LicenseFilePath,
 		UnitURLFormat:          "/github.com/v2major/module_name%s/bar",
 		ModuleURL:              "/github.com/v2major/module_name",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	v2pkgV1Buz := *v2pkgV100
@@ -396,6 +398,7 @@
 		LicenseFilePath:        sample.LicenseFilePath,
 		UnitURLFormat:          "/github.com/v2major/module_name/v2%s/bar",
 		ModuleURL:              "/github.com/v2major/module_name/v2",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	p9 := *pkgV100
@@ -426,6 +429,7 @@
 		LicenseFilePath:        "LICENSE",
 		UnitURLFormat:          "/github.com/incompatible%s/dir/inc",
 		ModuleURL:              "/github.com/incompatible",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	pkgNonRedist := &pagecheck.Page{
@@ -441,6 +445,7 @@
 		LicenseType:            "",
 		UnitURLFormat:          "/github.com/non_redistributable%s/bar",
 		ModuleURL:              "/github.com/non_redistributable",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	dir := &pagecheck.Page{
@@ -457,6 +462,7 @@
 		UnitURLFormat:          "/" + sample.ModulePath + "%s/foo/directory",
 		LatestMajorVersionLink: "/github.com/valid/module_name/foo/directory",
 		LatestLink:             "/github.com/valid/module_name/foo/directory",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	mod := &pagecheck.Page{
@@ -471,6 +477,7 @@
 		IsLatestMajor:          true,
 		LatestLink:             "/" + sample.ModulePath + "@v1.0.0",
 		LatestMajorVersionLink: "/" + sample.ModulePath,
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 	mp := *mod
 	mp.Version = pseudoVersion
@@ -492,6 +499,7 @@
 		IsLatestMinor:          true,
 		IsLatestMajor:          true,
 		UnitURLFormat:          "/github.com/pseudo%s/dir",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	dirCmd := &pagecheck.Page{
@@ -508,6 +516,7 @@
 		LatestLink:             "/cmd",
 		UnitURLFormat:          "/cmd%s",
 		LatestMajorVersionLink: "/cmd",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	netHttp := &pagecheck.Page{
@@ -523,6 +532,7 @@
 		IsLatestMajor:          true,
 		LatestLink:             "/net/http",
 		LatestMajorVersionLink: "/net/http",
+		CommitTime:             absoluteTime(sample.NowTruncated()),
 	}
 
 	pubsubliteDir := &pagecheck.Page{
diff --git a/internal/frontend/versions_test.go b/internal/frontend/versions_test.go
index d4b0fd2..4d10686 100644
--- a/internal/frontend/versions_test.go
+++ b/internal/frontend/versions_test.go
@@ -181,6 +181,16 @@
 			if err != nil {
 				t.Fatalf("fetchVersionsDetails(ctx, db, %q, %q): %v", tc.pkg.Path, tc.pkg.ModulePath, err)
 			}
+			for _, vl := range tc.wantDetails.ThisModule {
+				for _, v := range vl.Versions {
+					v.CommitTime = absoluteTime(tc.modules[0].CommitTime)
+				}
+			}
+			for _, vl := range tc.wantDetails.OtherModules {
+				for _, v := range vl.Versions {
+					v.CommitTime = absoluteTime(tc.modules[0].CommitTime)
+				}
+			}
 			if diff := cmp.Diff(tc.wantDetails, got); diff != "" {
 				t.Errorf("mismatch (-want +got):\n%s", diff)
 			}
diff --git a/internal/postgres/unit_test.go b/internal/postgres/unit_test.go
index 72255e7..3ac4539 100644
--- a/internal/postgres/unit_test.go
+++ b/internal/postgres/unit_test.go
@@ -160,6 +160,7 @@
 				test.want.Name,
 				test.want.IsRedistributable,
 			)
+			test.want.CommitTime = um.CommitTime
 			checkUnit(ctx, t, um, test.want)
 		})
 	}
@@ -180,8 +181,7 @@
 	want.SourceInfo = um.SourceInfo
 	want.NumImports = len(want.Imports)
 	opts = append(opts,
-		cmpopts.IgnoreFields(internal.Unit{}, "Imports"),
-		cmpopts.IgnoreFields(internal.Unit{}, "LicenseContents"),
+		cmpopts.IgnoreFields(internal.Unit{}, "Imports", "LicenseContents"),
 	)
 	if diff := cmp.Diff(want, got, opts...); diff != "" {
 		t.Errorf("mismatch (-want, +got):\n%s", diff)
@@ -252,14 +252,14 @@
 		},
 	} {
 		t.Run(test.name, func(t *testing.T) {
-			pathInfo := sample.UnitMeta(
+			um := sample.UnitMeta(
 				test.want.Path,
 				test.want.ModulePath,
 				test.want.Version,
 				test.want.Name,
 				test.want.IsRedistributable,
 			)
-			got, err := testDB.GetUnit(ctx, pathInfo, test.fields)
+			got, err := testDB.GetUnit(ctx, um, test.fields)
 			if err != nil {
 				t.Fatal(err)
 			}
@@ -268,7 +268,8 @@
 				// The packages table only includes partial license information; it omits the Coverage field.
 				cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
 			}
-			test.want.SourceInfo = pathInfo.SourceInfo
+			test.want.CommitTime = um.CommitTime
+			test.want.SourceInfo = um.SourceInfo
 			cleanFields(test.want, test.fields)
 			if diff := cmp.Diff(test.want, got, opts...); diff != "" {
 				t.Errorf("mismatch (-want, +got):\n%s", diff)
diff --git a/internal/testing/pagecheck/pagecheck.go b/internal/testing/pagecheck/pagecheck.go
index a9a26e3..2225e05 100644
--- a/internal/testing/pagecheck/pagecheck.go
+++ b/internal/testing/pagecheck/pagecheck.go
@@ -11,7 +11,6 @@
 	"fmt"
 	"path"
 	"regexp"
-	"time"
 
 	"golang.org/x/pkgsite/internal/testing/htmlcheck"
 )
@@ -104,11 +103,6 @@
 		importsDetails = nil
 	}
 
-	commitTime := p.CommitTime
-	if commitTime == "" {
-		commitTime = time.Now().In(time.UTC).Format("Jan _2, 2006")
-	}
-
 	majorVersionBannerClass := "UnitHeader-majorVersionBanner"
 	if p.IsLatestMajor {
 		majorVersionBannerClass += "  DetailsHeader-banner--latest"
@@ -133,7 +127,7 @@
 				href("?tab=versions"),
 				exactText("Version "+p.FormattedVersion))),
 		in(`[data-test-id="UnitHeader-commitTime"]`,
-			text(commitTime)),
+			text(p.CommitTime)),
 		in(`[data-test-id="UnitHeader-licenses"]`,
 			in("a",
 				href(licenseLink),
diff --git a/internal/testing/sample/sample.go b/internal/testing/sample/sample.go
index 1a0f3ca..d39eb60 100644
--- a/internal/testing/sample/sample.go
+++ b/internal/testing/sample/sample.go
@@ -243,6 +243,7 @@
 		Version:           version,
 		Path:              path,
 		Name:              name,
+		CommitTime:        NowTruncated(),
 		IsRedistributable: isRedistributable,
 		Licenses:          LicenseMetadata,
 		SourceInfo:        source.NewGitHubInfo("https://"+modulePath, "", version),
