diff --git a/modules/graphql_compose_metatags/graphql_compose_metatags.module b/modules/graphql_compose_metatags/graphql_compose_metatags.module
index 75aefc0dd570c23679a81603c16d8576263dbfc9..da18602b9ab3d3c8293cc69f54c086b196be3bca 100644
--- a/modules/graphql_compose_metatags/graphql_compose_metatags.module
+++ b/modules/graphql_compose_metatags/graphql_compose_metatags.module
@@ -7,6 +7,7 @@
 
 declare(strict_types=1);
 
+use Drupal\Core\Entity\EntityFieldManagerInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\graphql_compose\Plugin\GraphQLCompose\GraphQLComposeEntityTypeInterface;
@@ -16,15 +17,27 @@ use Drupal\metatag\Form\MetatagDefaultsForm;
  * Implements hook_graphql_compose_entity_base_fields_alter().
  */
 function graphql_compose_metatags_graphql_compose_entity_base_fields_alter(array &$fields, string $entity_type_id): void {
-  static $supported_types;
+  static $enabled_types;
+
+  if (!isset($enabled_types)) {
+    $enabled_types = [];
+
+    /** @var EntityFieldManagerInterface $manager */
+    $manager = \Drupal::service('entity_field.manager');
 
-  if (!isset($supported_types)) {
     $supported_types = MetatagDefaultsForm::getSupportedEntityTypes();
+    foreach (array_keys($supported_types) as $entity_type_id) {
+      $base_fields = $manager->getBaseFieldDefinitions($entity_type_id);
+
+      // Check the entity has a meta tag field.
+      if (array_key_exists('metatag', $base_fields)) {
+        $enabled_types[$entity_type_id] = $entity_type_id;
+      }
+    }
   }
 
-  if (array_key_exists($entity_type_id, $supported_types)) {
-    // Metatag field on the entity type is not multiple, force multiple.
-    // 'metatag' field is a computed metatag_computed field type.
+  // Enable and force multiple.
+  if (array_key_exists($entity_type_id, $enabled_types)) {
     $fields['metatag'] = [
       'multiple' => TRUE,
     ];