diff --git a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
index 28b6df0..7288af9 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
@@ -9,9 +9,50 @@
 use Drupal\migrate\MigrateSkipRowException;
 
 /**
- * If the source evaluates to empty, we skip processing or the whole row.
+ * Skips processing the current row when the input value is empty.
  *
- * @link https://www.drupal.org/node/2228793 Online handbook documentation for skip_on_empty process plugin @endlink
+ * The skip_on_empty process plugin checks to see if the current input value
+ * is empty (empty string, NULL, FALSE, 0, '0', or an empty array). If so, the
+ * further processing of the property or the entire row (depending on the chosen
+ * method) is skipped and will not be migrated.
+ *
+ * Available configuration keys:
+ *   - method: (optional) level of skip.
+ *     - row: Skips the entire row when an empty value is encountered. Useful
+ *        when combined with a migration process plugin to check if a related
+ *        item was previously migrated.
+ *     - process: Skips the processing of the property when an empty value is
+ *        encountered.
+ *
+ * Examples:
+ *
+ * @code
+ * process:
+ *   field_type_exists:
+ *     plugin: skip_on_empty
+ *     method: row
+ *     source: field_name
+ * @endcode
+ *
+ * If field_name is empty, skips the entire row.
+ *
+ * @code
+ * process:
+ *   parent:
+ *   -
+ *     plugin: skip_on_empty
+ *     method: process
+ *     source: parent
+ *   -
+ *     plugin: migration
+ *     migration: d6_taxonomy_term
+ * @endcode
+ *
+ * If parent is empty, any further processing of the property is skipped. In
+ * this example, if parent is empty, the next plugin (migration) will not be
+ * run.
+ *
+ * @see \Drupal\migrate\Plugin\MigrateProcessInterface
  *
  * @MigrateProcessPlugin(
  *   id = "skip_on_empty"
@@ -20,7 +61,24 @@
 class SkipOnEmpty extends ProcessPluginBase {
 
   /**
-   * {@inheritdoc}
+   * Skips the current row when value is not set.
+   *
+   * @param mixed $value
+   *   The input value.
+   * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable
+   *   The migration in which this process is being executed.
+   * @param \Drupal\migrate\Row $row
+   *   The row from the source to process.
+   * @param string $destination_property
+   *   The destination property currently worked on. This is only used together
+   *   with the $row above.
+   *
+   * @return mixed
+   *   The input value, $value, if it is not empty.
+   *
+   * @throws \Drupal\migrate\MigrateSkipRowException
+   *   Thrown if the source property is not set and the row should be skipped,
+   *   records with STATUS_IGNORED status in the map.
    */
   public function row($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (!$value) {
@@ -30,7 +88,24 @@ public function row($value, MigrateExecutableInterface $migrate_executable, Row
   }
 
   /**
-   * {@inheritdoc}
+   * Stops processing the current property when value is not set.
+   *
+   * @param mixed $value
+   *   The input value.
+   * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable
+   *   The migration in which this process is being executed.
+   * @param \Drupal\migrate\Row $row
+   *   The row from the source to process.
+   * @param string $destination_property
+   *   The destination property currently worked on. This is only used together
+   *   with the $row above.
+   *
+   * @return mixed
+   *   The input value, $value, if it is not empty.
+   *
+   * @throws \Drupal\migrate\MigrateSkipProcessException
+   *   Thrown if the source property is not set and rest of the process should be
+   *   skipped.
    */
   public function process($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (!$value) {
