Why is Menu Page an option when I want to publish a page?

I want to publish pages but I don’t want them to be placed in the menu. The only Option that I get is Menu Page and Not published. What is the deciding factor for this behavior?

Have you tried “unlisted”?

Edit: I believe it’s called “in review” in the panel. This should “publish” your page, but don’t add it to menu’s. But it depends on how you built your site really…

The naming of these status is defined in /site/blueprints/default.yml

status:
  draft: true
  unlisted:
    label: Hidden Page
    text: The page is not listed in the main menu
  listed:
    label: Menu Page
    text: The page is listed in the main menu

It’s just another name for listed pages. While Hidden is just another name for listed.

Listed pages get a prepended number, unlisted pages don’t. If you want to prepend a number to a page but not include it in the menu, you have to manually exclude it from the menu.

But it all depends on your structure and how you create your menus.

By default, listed first level pages are included in the menu in the StarterKit.

Edit: Any page that is not a draft is a “published” page; it is accessible for anyone who knows/guesses the URL, while draft pages can only ever be accessed by logged-in users.

But this offers clients the possibility to move the position of pages/ menu items in the menu. I don’t want clients to do that. The order of menu items should be considered differently than by daily feelings of clients or accident. The control over the information architecture should not be automatically offered by the CMS.

I think it would be really nice to have the possibility to choose if the position of pages/ menu items stays fixed or is up to the client.

Can I somehow switch this behavior off?

You can disable sorting in your blueprints before you hand the project over to your clients by setting sortable: false in your pages sections. Note that this is only relevant for manually sorted pages, pages sorted alphabetically or by date are sorted automatically anyway.

Another option is to disallow page sorting based on user role permissions in a user role blueprint:

permissions:
  pages:
    create: true
    changeTemplate: false
    changeTitle: true
    changeSlug: true
    delete: false
    hide: true
    sort: false
    update: true

Also, you don’t have to rely on manual sorting for menus at all, you can build all menus via a pages or a structure field (see Menu builders | Kirby CMS).