diff --git a/src/Form/UwContentModerationForm.php b/src/Form/UwContentModerationForm.php
index b6613f17ee84e993b042d0f9e1c9ecdd34fea2cd..d7b8876cf890ab8883ea8ea067afa85f0a08c304 100644
--- a/src/Form/UwContentModerationForm.php
+++ b/src/Form/UwContentModerationForm.php
@@ -2,10 +2,13 @@
 
 namespace Drupal\uw_cfg_common\Form;
 
+use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Form\ConfirmFormBase;
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Url;
+use Drupal\uw_cfg_common\Service\UWService;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -54,6 +57,19 @@ class UwContentModerationForm extends ConfirmFormBase {
     );
   }
 
+  /**
+   * Access callback. No access for the home page, except by admin.
+   *
+   * @return object
+   *   A AccessResult object.
+   */
+  public function access(int $nid, AccountInterface $account): AccessResult {
+    if (UWService::nodeIsHomePage($nid) && !$account->hasPermission('bypass home page protection')) {
+      return AccessResult::forbidden();
+    }
+    return AccessResult::allowed();
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/uw_cfg_common.routing.yml b/uw_cfg_common.routing.yml
index cd86dba516fdd844199f59060c7fa1140128fc75..fe107ffc729639d3662c62f5f477297db57ff194 100644
--- a/uw_cfg_common.routing.yml
+++ b/uw_cfg_common.routing.yml
@@ -11,4 +11,5 @@ uw_content_moderation.form:
     _title: 'Content moderation'
     _form: '\Drupal\uw_cfg_common\Form\UwContentModerationForm'
   requirements:
+    _custom_access: '\Drupal\uw_cfg_common\Form\UwContentModerationForm::access'
     _permission: 'access content'