diff --git a/modules/schemadotorg_taxonomy/schemadotorg_taxonomy.module b/modules/schemadotorg_taxonomy/schemadotorg_taxonomy.module
index e23d0fd1194637fd2b3e2e33432c414899e7b460..b9720728942e058ff7c89a2481509ac32567beef 100644
--- a/modules/schemadotorg_taxonomy/schemadotorg_taxonomy.module
+++ b/modules/schemadotorg_taxonomy/schemadotorg_taxonomy.module
@@ -121,7 +121,7 @@ function schemadotorg_taxonomy_form_schemadotorg_types_settings_form_alter(array
     '#type' => 'schemadotorg_settings',
     '#title' => t('Default vocabularies'),
     '#description' => t('Enter default vocabularies that will be added to every Schema.org content type.'),
-    '#example' => '
+    '#example' => "
 unique_name:
   id: vocabulary_id
   label: Vocabulary name
@@ -136,8 +136,14 @@ unique_name:
   formatter_id: formatter_id
   formatter_settings: {  }
   schema_types:
-   - Article
-',
+   - SchemaType
+   - entity_type_id--bundle
+   - bundle
+   - '-SchemaType'
+   - '-entity_type_id--bundle'
+   - '-bundle'
+
+",
   ];
 
   $form['schemadotorg_taxonomy']['apply'] = [];
diff --git a/modules/schemadotorg_taxonomy/src/SchemaDotOrgTaxonomyDefaultVocabularyManager.php b/modules/schemadotorg_taxonomy/src/SchemaDotOrgTaxonomyDefaultVocabularyManager.php
index 09150970bdf710aa4ef5b00da18d123d658fec36..653d0b71ee259ba24dbb7d3c61b88262cd5b2f6d 100644
--- a/modules/schemadotorg_taxonomy/src/SchemaDotOrgTaxonomyDefaultVocabularyManager.php
+++ b/modules/schemadotorg_taxonomy/src/SchemaDotOrgTaxonomyDefaultVocabularyManager.php
@@ -74,7 +74,7 @@ class SchemaDotOrgTaxonomyDefaultVocabularyManager implements SchemaDotOrgTaxono
       $schema_types = $vocabulary_settings['schema_types'] ?? NULL;
       // Check if the default vocabulary is for a specific Schema.org type.
       if ($schema_types
-        && !$this->schemaTypeManager->getSetting($schema_types, $mapping)) {
+        && !$this->schemaTypeManager->getSetting($schema_types, $mapping, ['negate' => TRUE])) {
         continue;
       }
 
diff --git a/src/SchemaDotOrgSchemaTypeManager.php b/src/SchemaDotOrgSchemaTypeManager.php
index 4c058f10bf20ed2d58a854af66377851aa19da45..60f8cade1701198302a2623f38fc9ff58cc6dedf 100644
--- a/src/SchemaDotOrgSchemaTypeManager.php
+++ b/src/SchemaDotOrgSchemaTypeManager.php
@@ -730,6 +730,7 @@ class SchemaDotOrgSchemaTypeManager implements SchemaDotOrgSchemaTypeManagerInte
     $options += [
       'multiple' => FALSE,
       'parents' => TRUE,
+      'negate' => FALSE,
     ];
 
     // Get the parts from a Schema.org mapping.
@@ -753,6 +754,20 @@ class SchemaDotOrgSchemaTypeManager implements SchemaDotOrgSchemaTypeManagerInte
       $settings = array_fill_keys(array_keys($settings), TRUE);
     }
 
+    // If negate settings are passed we need to find them and return NULL.
+    if (!empty($options['negate'])) {
+      $negate_settings = [];
+      foreach ($settings as $key => $value) {
+        if (str_starts_with($key, '-')) {
+          // Change the value to TRUE because we are ignoring that settings.
+          $negate_settings[ltrim($key, '-')] = TRUE;
+        }
+      }
+      if ($this->getSetting($negate_settings, $parts, ['negate' => FALSE] + $options, $patterns)) {
+        return NULL;
+      }
+    }
+
     // Filter the patterns to only applicable patterns by part name.
     $part_names = array_flip($parts);
     foreach ($patterns as $index => $pattern) {
diff --git a/src/SchemaDotOrgSchemaTypeManagerInterface.php b/src/SchemaDotOrgSchemaTypeManagerInterface.php
index d63127fd4202355b25c4fc498dc92bcb0bfd1608..9acedb4171ec42dc8c922e40c21adbc0711f87b7 100644
--- a/src/SchemaDotOrgSchemaTypeManagerInterface.php
+++ b/src/SchemaDotOrgSchemaTypeManagerInterface.php
@@ -496,6 +496,9 @@ interface SchemaDotOrgSchemaTypeManagerInterface {
    *     Return multiple matches. Defaults to FALSE and returns the first match.
    *   - parents (bool)
    *     Checks parent Schema.org types. Defaults to TRUE.
+   *   - negate (bool)
+   *     Checks for settings that should not being applied.
+   *     (i.e., starts with a minus (-))
    * @param array|null $patterns
    *   Optional. The patterns to match against the settings array.
    *   Defaults to NULL.
diff --git a/tests/src/Kernel/SchemaDotOrgSchemaTypeManagerKernelTest.php b/tests/src/Kernel/SchemaDotOrgSchemaTypeManagerKernelTest.php
index 474dc5c0aa2cf52fc5fe036867789598209898c8..bcaee14d4c6ed0a63572bb7413656fe4bdc08d8d 100644
--- a/tests/src/Kernel/SchemaDotOrgSchemaTypeManagerKernelTest.php
+++ b/tests/src/Kernel/SchemaDotOrgSchemaTypeManagerKernelTest.php
@@ -440,6 +440,7 @@ class SchemaDotOrgSchemaTypeManagerKernelTest extends SchemaDotOrgKernelTestBase
       'Place' => 'This is a place.',
       'Thing' => 'This is thing',
       'name' => 'A name',
+      '-Recipe' => 'Negated recipe (not returned)',
     ];
 
     $parts = [
@@ -462,6 +463,9 @@ class SchemaDotOrgSchemaTypeManagerKernelTest extends SchemaDotOrgKernelTestBase
     $this->assertNull(
       $this->schemaTypeManager->getSetting($settings, $parts, ['parents' => FALSE])
     );
+    $this->assertNull(
+      $this->schemaTypeManager->getSetting($settings, $parts, ['negate' => TRUE])
+    );
 
     $parts = [
       'schema_type' => 'Recipe',