diff --git a/db/docs/pages_domain_acme_orders.yml b/db/docs/pages_domain_acme_orders.yml
index c285f638f3f567dba2550e3ccaae0c1bf42d945d..889b76a53b191f555c26b99d28b2940e86e2892a 100644
--- a/db/docs/pages_domain_acme_orders.yml
+++ b/db/docs/pages_domain_acme_orders.yml
@@ -8,3 +8,12 @@ description: Stores ACME order information used in obtaining Let's Encrypt certi
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14014
 milestone: '12.0'
 gitlab_schema: gitlab_main
+desired_sharding_key:
+  project_id:
+    references: projects
+    backfill_via:
+      parent:
+        foreign_key: pages_domain_id
+        table: pages_domains
+        sharding_key: project_id
+        belongs_to: pages_domain
diff --git a/db/docs/pages_domains.yml b/db/docs/pages_domains.yml
index ca4bde86f8815370537ceb5f4688c78c9deaac1c..b9c3af66a60d8840ab67907b49737f37a805f412 100644
--- a/db/docs/pages_domains.yml
+++ b/db/docs/pages_domains.yml
@@ -8,3 +8,5 @@ description: Store Pages domain, certificate and encryption meta data.
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173
 milestone: '8.5'
 gitlab_schema: gitlab_main
+sharding_key:
+  project_id: projects
diff --git a/spec/lib/gitlab/database/sharding_key_spec.rb b/spec/lib/gitlab/database/sharding_key_spec.rb
index f65da7733c2fc2ffd79357212f88159db6c75701..ac77bac0b8a9ba1508ee3f4e723334f8e412a6c5 100644
--- a/spec/lib/gitlab/database/sharding_key_spec.rb
+++ b/spec/lib/gitlab/database/sharding_key_spec.rb
@@ -21,7 +21,8 @@
     [
       *tables_with_alternative_not_null_constraint,
       'labels.project_id', # https://gitlab.com/gitlab-org/gitlab/-/issues/434356
-      'labels.group_id' # https://gitlab.com/gitlab-org/gitlab/-/issues/434356
+      'labels.group_id', # https://gitlab.com/gitlab-org/gitlab/-/issues/434356
+      'pages_domains.project_id' # https://gitlab.com/gitlab-org/gitlab/-/issues/442178
     ]
   end