diff --git a/src/Plugin/FitCheck/QueueBacklogCheck.php b/src/Plugin/FitCheck/QueueBacklogCheck.php
new file mode 100644
index 0000000..10c55bc
--- /dev/null
+++ b/src/Plugin/FitCheck/QueueBacklogCheck.php
@@ -0,0 +1,407 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Drupal\drupalfit\Plugin\FitCheck;
+
+use Drupal\Core\Queue\QueueFactory;
+use Drupal\Core\Queue\QueueWorkerManagerInterface;
+use Drupal\Core\StringTranslation\TranslatableMarkup;
+use Drupal\drupalfit\Attribute\FitCheck;
+use Drupal\drupalfit\Enum\FitWeight;
+use Drupal\drupalfit\FitCheckPluginBase;
+use Drupal\drupalfit\FitResult;
+use Drupal\drupalfit\Plugin\FitCheckGroup\PerformanceGroup;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Plugin implementation of the fit_check.
+ */
+#[FitCheck(
+  id: 'queue_backlog',
+  fitGroup: PerformanceGroup::GROUP_ID,
+  label: new TranslatableMarkup('Queue Backlog'),
+  description: new TranslatableMarkup('Checks for excessive queue backlogs that may indicate processing issues.'),
+  successMessage: new TranslatableMarkup('Queue backlogs are within acceptable limits.'),
+  failureMessage: new TranslatableMarkup('Excessive queue backlogs detected.'),
+)]
+class QueueBacklogCheck extends FitCheckPluginBase {
+
+  /**
+   * Threshold for high severity (10000+ items).
+   */
+  private const HIGH_THRESHOLD = 10000;
+
+  /**
+   * Threshold for medium severity (1000+ items).
+   */
+  private const MEDIUM_THRESHOLD = 1000;
+
+  /**
+   * Threshold for low severity (500+ items).
+   */
+  private const LOW_THRESHOLD = 500;
+
+  /**
+   * {@inheritDoc}
+   */
+  public function __construct(
+    array $configuration,
+    string $plugin_id,
+    mixed $plugin_definition,
+    protected readonly QueueWorkerManagerInterface $queueWorkerManager,
+    protected readonly QueueFactory $queueFactory,
+  ) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+  }
+
+  /**
+   * Inject the required services.
+   */
+  public static function create(
+    ContainerInterface $container,
+    array $configuration,
+    $plugin_id,
+    mixed $plugin_definition,
+  ): static {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('plugin.manager.queue_worker'),
+      $container->get('queue'),
+    );
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  public function execute(): FitResult {
+    $result = FitResult::create(
+      $this->getPluginId(),
+      $this->label(),
+      $this->fitGroup(),
+      FitWeight::Ok
+    );
+
+    try {
+      // Get all queue worker definitions.
+      $queueDefinitions = $this->queueWorkerManager->getDefinitions();
+
+      if (empty($queueDefinitions)) {
+        $result
+          ->setWeight(FitWeight::Info)
+          ->setInfoMessage($this->t('No queues are defined.'));
+        return $result;
+      }
+
+      // Check each queue for backlog.
+      $queueStats = $this->analyzeQueues($queueDefinitions);
+
+      if (empty($queueStats['problematic_queues'])) {
+        $result->setSuccessMessage($this->t('All @count queue(s) are within acceptable limits.', [
+          '@count' => $queueStats['total_queues'],
+        ]));
+        return $result;
+      }
+
+      // Build result based on severity.
+      $this->buildResult($result, $queueStats);
+    }
+    catch (\Exception $e) {
+      $result
+        ->setWeight(FitWeight::Info)
+        ->setInfoMessage($this->t('Unable to check queue backlogs: @error', [
+          '@error' => $e->getMessage(),
+        ]));
+    }
+
+    return $result;
+  }
+
+  /**
+   * Analyzes all queues and categorizes by backlog size.
+   *
+   * @param array $queueDefinitions
+   *   Queue worker definitions.
+   *
+   * @return array
+   *   Analysis results with categorized queues.
+   */
+  private function analyzeQueues(array $queueDefinitions): array {
+    $stats = [
+      'total_queues' => count($queueDefinitions),
+      'total_items' => 0,
+      'problematic_queues' => [],
+      'high_backlog' => [],
+      'medium_backlog' => [],
+      'low_backlog' => [],
+      'highest_severity' => FitWeight::Ok,
+    ];
+
+    foreach ($queueDefinitions as $queueName => $definition) {
+      try {
+        $queue = $this->queueFactory->get($queueName);
+        $itemCount = $queue->numberOfItems();
+
+        $stats['total_items'] += $itemCount;
+
+        if ($itemCount >= self::HIGH_THRESHOLD) {
+          $stats['high_backlog'][$queueName] = $itemCount;
+          $stats['problematic_queues'][$queueName] = [
+            'count' => $itemCount,
+            'severity' => 'High',
+          ];
+          $stats['highest_severity'] = FitWeight::High;
+        }
+        elseif ($itemCount >= self::MEDIUM_THRESHOLD) {
+          $stats['medium_backlog'][$queueName] = $itemCount;
+          $stats['problematic_queues'][$queueName] = [
+            'count' => $itemCount,
+            'severity' => 'Medium',
+          ];
+          if ($stats['highest_severity'] === FitWeight::Ok) {
+            $stats['highest_severity'] = FitWeight::Medium;
+          }
+        }
+        elseif ($itemCount >= self::LOW_THRESHOLD) {
+          $stats['low_backlog'][$queueName] = $itemCount;
+          $stats['problematic_queues'][$queueName] = [
+            'count' => $itemCount,
+            'severity' => 'Low',
+          ];
+          if ($stats['highest_severity'] === FitWeight::Ok) {
+            $stats['highest_severity'] = FitWeight::Low;
+          }
+        }
+      }
+      catch (\Exception $e) {
+        // Skip queues that can't be accessed.
+        continue;
+      }
+    }
+
+    return $stats;
+  }
+
+  /**
+   * Builds the result based on queue analysis.
+   *
+   * @param \Drupal\drupalfit\FitResult $result
+   *   The result object.
+   * @param array $stats
+   *   Queue statistics.
+   */
+  private function buildResult(FitResult $result, array $stats): void {
+    $result
+      ->setWeight($stats['highest_severity'])
+      ->setFailureMessage($this->failureMessage())
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('Queue backlog detected: @total items across @queues queue(s)', [
+            '@total' => number_format($stats['total_items']),
+            '@queues' => count($stats['problematic_queues']),
+          ]),
+        ],
+      ]);
+
+    // Report high severity queues.
+    if (!empty($stats['high_backlog'])) {
+      $result->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<br><strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('High severity backlogs (10,000+ items):'),
+        ],
+      ]);
+
+      foreach ($stats['high_backlog'] as $queueName => $count) {
+        $result->setHelpMessage([
+          '#type' => 'inline_template',
+          '#template' => '{{ text }}',
+          '#context' => [
+            'text' => $this->t('• @queue: @count items', [
+              '@queue' => $queueName,
+              '@count' => number_format($count),
+            ]),
+          ],
+        ]);
+      }
+    }
+
+    // Report medium severity queues.
+    if (!empty($stats['medium_backlog'])) {
+      $result->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<br><strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('Medium severity backlogs (1,000-9,999 items):'),
+        ],
+      ]);
+
+      foreach ($stats['medium_backlog'] as $queueName => $count) {
+        $result->setHelpMessage([
+          '#type' => 'inline_template',
+          '#template' => '{{ text }}',
+          '#context' => [
+            'text' => $this->t('• @queue: @count items', [
+              '@queue' => $queueName,
+              '@count' => number_format($count),
+            ]),
+          ],
+        ]);
+      }
+    }
+
+    // Report low severity queues.
+    if (!empty($stats['low_backlog'])) {
+      $result->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<br><strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('Low severity backlogs (500-999 items):'),
+        ],
+      ]);
+
+      foreach ($stats['low_backlog'] as $queueName => $count) {
+        $result->setHelpMessage([
+          '#type' => 'inline_template',
+          '#template' => '{{ text }}',
+          '#context' => [
+            'text' => $this->t('• @queue: @count items', [
+              '@queue' => $queueName,
+              '@count' => number_format($count),
+            ]),
+          ],
+        ]);
+      }
+    }
+
+    $this->addRemediationGuidance($result, $stats);
+  }
+
+  /**
+   * Adds remediation guidance to the result.
+   *
+   * @param \Drupal\drupalfit\FitResult $result
+   *   The result object.
+   * @param array $stats
+   *   Queue statistics.
+   */
+  private function addRemediationGuidance(FitResult $result, array $stats): void {
+    $result
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<br><strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('Recommended actions:'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('1. Verify cron is running regularly (check /admin/reports/status)'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('2. Check for stuck or failing queue workers in logs'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('3. Increase cron frequency or queue processing time'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('4. Consider running queue workers separately from cron'),
+        ],
+      ]);
+
+    if ($stats['highest_severity'] === FitWeight::High) {
+      $result->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('5. URGENT: Investigate and clear stuck queues immediately'),
+        ],
+      ]);
+    }
+
+    $result
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<br><strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('Queue processing options:'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Manual processing: drush queue:run [queue_name]'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Process all queues: drush cron'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Check queue status: drush queue:list'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '<br><strong>{{ text }}</strong>',
+        '#context' => [
+          'text' => $this->t('Advanced solutions:'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Install Queue UI module for better queue management'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Use Advanced Queue module for parallel processing'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Configure dedicated queue workers with supervisord'),
+        ],
+      ])
+      ->setHelpMessage([
+        '#type' => 'inline_template',
+        '#template' => '{{ text }}',
+        '#context' => [
+          'text' => $this->t('• Consider external queue systems (RabbitMQ, Redis, etc.)'),
+        ],
+      ]);
+  }
+
+}
