diff --git a/app/models/communication/website/menu/item.rb b/app/models/communication/website/menu/item.rb
index 59e88b4c343a399e044d25b59420e58e94692a73..f397cd49e6507600f5fa9c23334d68163789b672 100644
--- a/app/models/communication/website/menu/item.rb
+++ b/app/models/communication/website/menu/item.rb
@@ -32,6 +32,9 @@
 #  fk_rails_...  (website_id => communication_websites.id)
 #
 class Communication::Website::Menu::Item < ApplicationRecord
+  KINDS_FOR_SCHOOL = ['programs', 'program', 'administrators', 'teachers']
+  KINDS_FOR_JOURNAL = ['researchers', 'research_volumes', 'research_volume', 'research_articles', 'research_article']
+
   include WithTree
   include WithPosition
 
@@ -72,6 +75,19 @@ class Communication::Website::Menu::Item < ApplicationRecord
 
   after_commit :sync_menu
 
+  def self.kinds_for_website(website)
+    whitelisted_kinds = self.kinds.dup
+
+    KINDS_FOR_SCHOOL.each { |school_kind|
+      whitelisted_kinds.delete(school_kind)
+    } unless website.about_school?
+    KINDS_FOR_JOURNAL.each { |journal_kind|
+      whitelisted_kinds.delete(journal_kind)
+    } unless website.about_journal?
+
+    whitelisted_kinds
+  end
+
   def to_s
     "#{title}"
   end
diff --git a/app/views/admin/communication/website/menu/items/_form.html.erb b/app/views/admin/communication/website/menu/items/_form.html.erb
index 0e9e61ee6e563fee968cc1150fd0802e5785b929..1527fd04a5f7bd6fa7bf78c5c79de30551480546 100644
--- a/app/views/admin/communication/website/menu/items/_form.html.erb
+++ b/app/views/admin/communication/website/menu/items/_form.html.erb
@@ -9,6 +9,7 @@
         <div class="card-body">
           <%= f.input :title %>
           <%= f.input :kind,
+                      collection: Communication::Website::Menu::Item.kinds_for_website(@website),
                       include_blank: false,
                       input_html: {
                         class: 'js-kind-input',