diff --git a/internal/postgres/delete.go b/internal/postgres/delete.go
index e447076..ed25317 100644
--- a/internal/postgres/delete.go
+++ b/internal/postgres/delete.go
@@ -10,7 +10,6 @@
 
 	"github.com/Masterminds/squirrel"
 	"github.com/lib/pq"
-	"golang.org/x/pkgsite/internal"
 	"golang.org/x/pkgsite/internal/database"
 	"golang.org/x/pkgsite/internal/derrors"
 	"golang.org/x/pkgsite/internal/log"
@@ -50,16 +49,16 @@
 
 // deleteOtherModulePackagesFromSearchDocuments deletes all packages from search
 // documents with the given module that are not in m.
-func deleteOtherModulePackagesFromSearchDocuments(ctx context.Context, tx *database.DB, m *internal.Module) error {
+func deleteOtherModulePackagesFromSearchDocuments(ctx context.Context, tx *database.DB, modulePath string, pkgPaths []string) error {
 	dbPkgs, err := tx.CollectStrings(ctx, `
 		SELECT package_path FROM search_documents WHERE module_path = $1
-	`, m.ModulePath)
+	`, modulePath)
 	if err != nil {
 		return err
 	}
 	pkgInModule := map[string]bool{}
-	for _, u := range m.Packages() {
-		pkgInModule[u.Path] = true
+	for _, p := range pkgPaths {
+		pkgInModule[p] = true
 	}
 	var otherPkgs []string
 	for _, p := range dbPkgs {
diff --git a/internal/postgres/insert_module.go b/internal/postgres/insert_module.go
index 542354f..c253e99 100644
--- a/internal/postgres/insert_module.go
+++ b/internal/postgres/insert_module.go
@@ -144,12 +144,15 @@
 		}
 
 		// Here, this module is the latest good version.
-
 		if err := insertImportsUnique(ctx, tx, m); err != nil {
 			return err
 		}
 
-		if err := deleteOtherModulePackagesFromSearchDocuments(ctx, tx, m); err != nil {
+		var pkgPaths []string
+		for _, u := range m.Packages() {
+			pkgPaths = append(pkgPaths, u.Path)
+		}
+		if err := deleteOtherModulePackagesFromSearchDocuments(ctx, tx, m.ModulePath, pkgPaths); err != nil {
 			return err
 		}
 
@@ -718,6 +721,15 @@
 			return err
 		}
 
+		// Delete packages not in this version.
+		var pkgPaths []string
+		for _, pkg := range pkgMetas {
+			pkgPaths = append(pkgPaths, pkg.Path)
+		}
+		if err := deleteOtherModulePackagesFromSearchDocuments(ctx, tx, modulePath, pkgPaths); err != nil {
+			return err
+		}
+
 		// Insert into search_documents.
 		for _, pkg := range pkgMetas {
 			if isInternalPackage(pkg.Path) {
