diff --git a/core/modules/comment/config/install/system.action.comment_delete_action.yml b/core/modules/comment/config/install/system.action.comment_delete_action.yml
index 08f7966..547ddd3 100644
--- a/core/modules/comment/config/install/system.action.comment_delete_action.yml
+++ b/core/modules/comment/config/install/system.action.comment_delete_action.yml
@@ -7,4 +7,5 @@ id: comment_delete_action
 label: 'Delete comment'
 type: comment
 plugin: entity:delete_action:comment
+weight: 0
 configuration: {  }
diff --git a/core/modules/comment/config/install/system.action.comment_publish_action.yml b/core/modules/comment/config/install/system.action.comment_publish_action.yml
index 7a47b2d..35d6103 100644
--- a/core/modules/comment/config/install/system.action.comment_publish_action.yml
+++ b/core/modules/comment/config/install/system.action.comment_publish_action.yml
@@ -7,4 +7,5 @@ id: comment_publish_action
 label: 'Publish comment'
 type: comment
 plugin: entity:publish_action:comment
+weight: 0
 configuration: {  }
diff --git a/core/modules/comment/config/install/system.action.comment_save_action.yml b/core/modules/comment/config/install/system.action.comment_save_action.yml
index 614cf4b..09cc927 100644
--- a/core/modules/comment/config/install/system.action.comment_save_action.yml
+++ b/core/modules/comment/config/install/system.action.comment_save_action.yml
@@ -7,4 +7,5 @@ id: comment_save_action
 label: 'Save comment'
 type: comment
 plugin: entity:save_action:comment
+weight: 0
 configuration: {  }
diff --git a/core/modules/comment/config/install/system.action.comment_unpublish_action.yml b/core/modules/comment/config/install/system.action.comment_unpublish_action.yml
index a1800b4..fa251ee 100644
--- a/core/modules/comment/config/install/system.action.comment_unpublish_action.yml
+++ b/core/modules/comment/config/install/system.action.comment_unpublish_action.yml
@@ -7,4 +7,5 @@ id: comment_unpublish_action
 label: 'Unpublish comment'
 type: comment
 plugin: entity:unpublish_action:comment
+weight: 0
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_delete_action.yml b/core/modules/node/config/install/system.action.node_delete_action.yml
index da2d886..7e30e5f 100644
--- a/core/modules/node/config/install/system.action.node_delete_action.yml
+++ b/core/modules/node/config/install/system.action.node_delete_action.yml
@@ -7,4 +7,5 @@ id: node_delete_action
 label: 'Delete content'
 type: node
 plugin: entity:delete_action:node
+weight: -1
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_make_sticky_action.yml b/core/modules/node/config/install/system.action.node_make_sticky_action.yml
index 94a81bf..39fd746 100644
--- a/core/modules/node/config/install/system.action.node_make_sticky_action.yml
+++ b/core/modules/node/config/install/system.action.node_make_sticky_action.yml
@@ -7,4 +7,5 @@ id: node_make_sticky_action
 label: 'Make content sticky'
 type: node
 plugin: node_make_sticky_action
+weight: -7
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_make_unsticky_action.yml b/core/modules/node/config/install/system.action.node_make_unsticky_action.yml
index 6572963..6b28163 100644
--- a/core/modules/node/config/install/system.action.node_make_unsticky_action.yml
+++ b/core/modules/node/config/install/system.action.node_make_unsticky_action.yml
@@ -7,4 +7,5 @@ id: node_make_unsticky_action
 label: 'Make content unsticky'
 type: node
 plugin: node_make_unsticky_action
+weight: -6
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_promote_action.yml b/core/modules/node/config/install/system.action.node_promote_action.yml
index 7c45a42..019e430 100644
--- a/core/modules/node/config/install/system.action.node_promote_action.yml
+++ b/core/modules/node/config/install/system.action.node_promote_action.yml
@@ -7,4 +7,5 @@ id: node_promote_action
 label: 'Promote content to front page'
 type: node
 plugin: node_promote_action
+weight: -5
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_publish_action.yml b/core/modules/node/config/install/system.action.node_publish_action.yml
index 3e139bb..80f34b5 100644
--- a/core/modules/node/config/install/system.action.node_publish_action.yml
+++ b/core/modules/node/config/install/system.action.node_publish_action.yml
@@ -7,4 +7,5 @@ id: node_publish_action
 label: 'Publish content'
 type: node
 plugin: entity:publish_action:node
+weight: -3
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_save_action.yml b/core/modules/node/config/install/system.action.node_save_action.yml
index 1759c35..8cf0eaa 100644
--- a/core/modules/node/config/install/system.action.node_save_action.yml
+++ b/core/modules/node/config/install/system.action.node_save_action.yml
@@ -7,4 +7,5 @@ id: node_save_action
 label: 'Save content'
 type: node
 plugin: entity:save_action:node
+weight: 0
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_unpromote_action.yml b/core/modules/node/config/install/system.action.node_unpromote_action.yml
index cb290dd..20e4d2a 100644
--- a/core/modules/node/config/install/system.action.node_unpromote_action.yml
+++ b/core/modules/node/config/install/system.action.node_unpromote_action.yml
@@ -7,4 +7,5 @@ id: node_unpromote_action
 label: 'Remove content from front page'
 type: node
 plugin: node_unpromote_action
+weight: -4
 configuration: {  }
diff --git a/core/modules/node/config/install/system.action.node_unpublish_action.yml b/core/modules/node/config/install/system.action.node_unpublish_action.yml
index 0d5e35e..28f34f4 100644
--- a/core/modules/node/config/install/system.action.node_unpublish_action.yml
+++ b/core/modules/node/config/install/system.action.node_unpublish_action.yml
@@ -7,4 +7,5 @@ id: node_unpublish_action
 label: 'Unpublish content'
 type: node
 plugin: entity:unpublish_action:node
+weight: -2
 configuration: {  }
diff --git a/core/modules/node/tests/src/Functional/Views/BulkFormTest.php b/core/modules/node/tests/src/Functional/Views/BulkFormTest.php
index 894a460..f12b05c 100644
--- a/core/modules/node/tests/src/Functional/Views/BulkFormTest.php
+++ b/core/modules/node/tests/src/Functional/Views/BulkFormTest.php
@@ -90,6 +90,18 @@ protected function setUp($import_test_views = TRUE) {
     $this->drupalGet('test-node-bulk-form');
     $elements = $this->xpath('//select[@id="edit-action"]//option');
     $this->assertIdentical(count($elements), 8, 'All node operations are found.');
+
+    // Check the node operations order.
+    $order = TRUE;
+    $order &= $elements[0]->getValue() == 'node_make_sticky_action';
+    $order &= $elements[1]->getValue() == 'node_make_unsticky_action';
+    $order &= $elements[2]->getValue() == 'node_promote_action';
+    $order &= $elements[3]->getValue() == 'node_unpromote_action';
+    $order &= $elements[4]->getValue() == 'node_publish_action';
+    $order &= $elements[5]->getValue() == 'node_unpublish_action';
+    $order &= $elements[6]->getValue() == 'node_delete_action';
+    $order &= $elements[7]->getValue() == 'node_save_action';
+    $this->assertTrue($order, 'All node operations are in proper order.');
   }
 
   /**
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/Action/ActionResourceTestBase.php b/core/modules/rest/tests/src/Functional/EntityResource/Action/ActionResourceTestBase.php
index 76aff4b..fa3190f 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/Action/ActionResourceTestBase.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/Action/ActionResourceTestBase.php
@@ -67,6 +67,7 @@ protected function getExpectedNormalizedEntity() {
       'status' => TRUE,
       'type' => 'user',
       'uuid' => $this->entity->uuid(),
+      'weight' => null,
     ];
   }
 
diff --git a/core/modules/system/config/schema/system.schema.yml b/core/modules/system/config/schema/system.schema.yml
index a6f61b6..636b19f 100644
--- a/core/modules/system/config/schema/system.schema.yml
+++ b/core/modules/system/config/schema/system.schema.yml
@@ -258,6 +258,9 @@ system.action.*:
     plugin:
       type: string
       label: 'Plugin'
+    weight:
+      type: integer
+      label: 'Weight'
     configuration:
       type: action.configuration.[%parent.plugin]
 
diff --git a/core/modules/system/src/Entity/Action.php b/core/modules/system/src/Entity/Action.php
index a412838..81276d4 100644
--- a/core/modules/system/src/Entity/Action.php
+++ b/core/modules/system/src/Entity/Action.php
@@ -25,6 +25,7 @@
  *     "label",
  *     "type",
  *     "plugin",
+ *     "weight",
  *     "configuration",
  *   }
  * )
@@ -67,6 +68,13 @@ class Action extends ConfigEntityBase implements ActionConfigEntityInterface, En
   protected $plugin;
 
   /**
+  +   * The weight of the action.
+  +   *
+  +   * @var int
+  +   */
+  protected $weight;
+
+  /**
    * The plugin collection that stores action plugins.
    *
    * @var \Drupal\Core\Action\ActionPluginCollection
@@ -137,6 +145,15 @@ public function getType() {
   }
 
   /**
+   * Returns the weight of operation.
+   *
+   * @return int
+   */
+  public function getWeight() {
+    return $this->weight;
+  }
+
+  /**
    * {@inheritdoc}
    */
   public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) {
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 143fed8..e8e4bb0 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -2112,3 +2112,39 @@ function system_update_8501() {
     }
   }
 }
+
+/**
+ * Set weights to actions.
+ */
+function system_update_8601() {
+  // List of node actions.
+  $node_actions_default_weight = [
+    'system.action.node_make_sticky_action' => -7,
+    'system.action.node_make_unsticky_action' => -6,
+    'system.action.node_promote_action' => -5,
+    'system.action.node_unpromote_action' => -4,
+    'system.action.node_publish_action' => -3,
+    'system.action.node_unpublish_action' => -2,
+    'system.action.node_delete_action' => -1,
+    'system.action.node_save_action' => 0,
+  ];
+
+  $config_factory = \Drupal::configFactory();
+
+  // Find all system action configs.
+  foreach ($config_factory->listAll('system.action.') as $action_name) {
+    $action = $config_factory->getEditable($action_name);
+    $data = $action->getRawData();
+
+    // Set appropriate weights to node actions, otherwise set 0 as default
+    // weight for other actions.
+    if (array_key_exists($action_name, $node_actions_default_weight)) {
+      $data['weight'] = $node_actions_default_weight[$action_name];
+    }
+    else {
+      $data['weight'] = 0;
+    }
+    $action->setData($data);
+    $action->save();
+  }
+}
diff --git a/core/modules/user/config/install/system.action.user_block_user_action.yml b/core/modules/user/config/install/system.action.user_block_user_action.yml
index d9753bc..1ef190f 100644
--- a/core/modules/user/config/install/system.action.user_block_user_action.yml
+++ b/core/modules/user/config/install/system.action.user_block_user_action.yml
@@ -7,4 +7,5 @@ id: user_block_user_action
 label: 'Block the selected user(s)'
 type: user
 plugin: user_block_user_action
+weight: 0
 configuration: {  }
diff --git a/core/modules/user/config/install/system.action.user_cancel_user_action.yml b/core/modules/user/config/install/system.action.user_cancel_user_action.yml
index cd90ff2..fd4c4a2 100644
--- a/core/modules/user/config/install/system.action.user_cancel_user_action.yml
+++ b/core/modules/user/config/install/system.action.user_cancel_user_action.yml
@@ -7,4 +7,5 @@ id: user_cancel_user_action
 label: 'Cancel the selected user account(s)'
 type: user
 plugin: user_cancel_user_action
+weight: 0
 configuration: {  }
diff --git a/core/modules/user/config/install/system.action.user_unblock_user_action.yml b/core/modules/user/config/install/system.action.user_unblock_user_action.yml
index 406edb2..1d11dd7 100644
--- a/core/modules/user/config/install/system.action.user_unblock_user_action.yml
+++ b/core/modules/user/config/install/system.action.user_unblock_user_action.yml
@@ -7,4 +7,5 @@ id: user_unblock_user_action
 label: 'Unblock the selected user(s)'
 type: user
 plugin: user_unblock_user_action
+weight: 0
 configuration: {  }
diff --git a/core/profiles/testing_config_overrides/config/install/system.action.user_block_user_action.yml b/core/profiles/testing_config_overrides/config/install/system.action.user_block_user_action.yml
index f902ff1..99b35e1 100644
--- a/core/profiles/testing_config_overrides/config/install/system.action.user_block_user_action.yml
+++ b/core/profiles/testing_config_overrides/config/install/system.action.user_block_user_action.yml
@@ -4,6 +4,7 @@ status: true
 langcode: en
 type: user
 plugin: user_block_user_action
+weight: 0
 dependencies:
   module:
     - user
