why Cache-tags is different if i am logged?
You don't need to render a node to bubble up its cache tag. There are other reasons, for example access checks, which heavily depend on the current user. A negative access check still could bubble up the node cache tag when the result depends on field values. So the tags of not rendered nodes could be unpublished nodes in views or menus. When you publish one of those nodes you want that the page gets refreshed to include the now published node.



Edit

You can replace the core menu block with a custom menu block, see 


  Rendering menus
  
  Once you have created menus (that contain menu links),
  you want to render them. Drupal provides a block
  (Drupal\system\Plugin\Block\SystemMenuBlock) to do so.
  
  However, perhaps you have more advanced needs and you're not satisfied
  with what the menu blocks offer you. If that's the case, you'll want
  to:
  
  ...


https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Menu%21menu.api.php/group/menu/8.8.x

By doing so you have the options to not use access checks at all, add your own version of an access check tree manipulator or use the core one and remove the cache tags from the tree access objects afterwards with AccessResult::resetCacheTags