> For the complete documentation index, see [llms.txt](https://help.seoutils.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.seoutils.app/guide/dataforseo-task-monitor.md).

# DataForSEO Task Monitor

See what your paid DataForSEO tasks are doing, and whether anything actually needs your attention

Every SERP report you run creates paid tasks at DataForSEO. Most of the time they complete quietly in the background. The DataForSEO Task Monitor is where you look when you want to check on them — whether they're still with DataForSEO, already collected and waiting to be saved, recovering on their own, or genuinely stuck.

This is a monitoring page. You read it to understand what's happening; the app handles the fixing.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2FebAbFG9XxQOTTo38ccYS%2FXnapper-2026-08-10-15.58.31.png?alt=media&amp;token=4fe74812-a877-4079-98eb-594fa863aaa1" alt=""><figcaption><p>The DataForSEO Task Monitor showing summary counters, collector health and the active tasks table</p></figcaption></figure>

## Opening the monitor

Go to **Settings → DataForSEO Monitor**.

You can also reach it from the Dashboard. When something needs looking at, a **DataForSEO Needs Attention** card appears there with a link to this page. When everything is healthy, that card stays hidden — so if you don't see it, there's nothing to check.

## The four counters

| Counter                   | What it counts                                                                                                                                                                                                   |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Waiting on DataForSEO** | Tasks being prepared, submitted, or still with DataForSEO — their result has not reached your computer yet. Also shows the age of the oldest one.                                                                |
| **Ready to import**       | Results already downloaded to your computer, waiting to be saved into the report that asked for them. A result counts here as soon as it arrives.                                                                |
| **Automatic recovery**    | Organic SERP, Google Maps, ChatGPT and Google AI Mode tasks older than 24 hours whose result has not arrived yet. The app has their DataForSEO task ID and keeps fetching them on its own.                       |
| **Needs attention**       | Tasks that failed, were rejected or expired; submissions DataForSEO never confirmed that have no result yet; results not saved into their report within 15 minutes; and submissions or imports stuck for longer. |

{% hint style="info" %}
A task is either **Waiting on DataForSEO** or **Ready to import**, never both. A task under **Automatic recovery** is also still **Waiting on DataForSEO**.
{% endhint %}

{% hint style="warning" %}
**A high "Waiting on DataForSEO" number is usually normal.** Standard-queue tasks can legitimately take hours. Look at **Needs attention** to decide whether anything is actually wrong.
{% endhint %}

## Late results are imported automatically

DataForSEO results can arrive after a report stopped waiting for them — for example when you closed the app during a run, or when a large run took longer than expected. The app saves these results into their report on its own. You don't need to run the report again.

{% stepper %}
{% step %}

#### The result is downloaded

A collector downloads the result to your computer. The task moves to **Ready to import**.
{% endstep %}

{% step %}

#### The result is saved into its report

Within a minute or two, the app saves the result into the report that asked for it. Closing the app pauses this; it continues the next time you open SEO Utils.
{% endstep %}

{% step %}

#### The report finishes

When all its results are in, the report finishes on its own — a SERP Clustering report, for example, is clustered at this point — and its page updates.
{% endstep %}
{% endstepper %}

This covers the Organic Rank Tracker, GMB Rank Tracker, Business Reviews, LLM Rank Tracker, SERP Clustering, SERP Extractor, Bulk Google PAA and N.A.P Finder. **Content Struct** is the exception: run a Content Struct report again if its run stopped before it finished.

* While results are still arriving, the report shows as running.
* A **SERP Clustering** or **LLM Rank Tracker** report can't be run again until its results are in.
* If a result never arrives, the app stops waiting once DataForSEO can no longer deliver it, and the report finishes with the results that did arrive.
* SERP Clustering and LLM Rank Tracker stop waiting after about 3 days of SEO Utils running.
* If SEO Utils was closed for longer, it first asks DataForSEO again for every missing result. DataForSEO keeps results for 30 days, so results you paid for are still imported.

## Collector Health

A collector is the background worker that asks DataForSEO whether results are ready. The monitor tracks five of them:

* Organic SERP
* Google Maps
* Google AI Mode
* ChatGPT
* Business Reviews

Each one shows whether it's running, when it last checked in, and how many results DataForSEO had waiting during that check. There's also a button to open that collector's log.

A collector counts as running if it checked in within the last three minutes. A collector working through a large batch of results keeps checking in every minute, so a busy collector is never shown as stopped. Collectors download several results at a time, so a large backlog clears much faster than before.

{% hint style="info" %}
**"Ready on last check" is not your backlog.** It's the number of results DataForSEO showed on the last page it looked at. A low number doesn't mean few tasks are outstanding.
{% endhint %}

A stopped collector only raises a warning at the top of the page when it currently owns active tasks. A collector for a tool you don't use sits idle without raising a false alarm.

## Active Tasks table

The table opens in **Needs attention** mode, so you see the problems first. Switch to **All active** to see every task currently in flight.

<figure><img src="https://1176579443-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DwV6sJBiKjUHMDggb4d%2Fuploads%2Fp8FD4eXqeQwlPj4f3et7%2FXnapper-2026-08-10-16.06.54.png?alt=media&amp;token=775fb001-06fc-42bb-80a8-fb677a8fd51f" alt=""><figcaption><p>Active tasks table filtered to tasks that need attention</p></figcaption></figure>

Each row shows the task's current state, its collector, the keyword, its DataForSEO task ID, whether it belongs to a durable run or is a legacy task, the date the data is for, and how old it is. Two more columns — the last provider check, and which report owns the task — can be switched on when you need them.

You can search by keyword, task ID, provider status, endpoint or owner, and filter by state, collector, owner type and age.

### Task states

| State                     | What it means                                                                                                                                      |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Preparing**             | The task is being created and has not been sent yet.                                                                                               |
| **Submitting**            | The task is being sent to DataForSEO.                                                                                                              |
| **Waiting on DataForSEO** | DataForSEO accepted the task and is still working on it, or its result has not been downloaded yet.                                                |
| **Needs confirmation**    | The task was sent, but DataForSEO's reply didn't confirm it. It is matched automatically if DataForSEO lists it as ready.                          |
| **Ready to import**       | The result is on your computer, waiting to be saved into its report. A waiting or unconfirmed task shows this state as soon as its result arrives. |
| **Importing**             | The result is being saved into its report.                                                                                                         |
| **Rejected**              | DataForSEO refused the task.                                                                                                                       |
| **Failed**                | The task could not be completed.                                                                                                                   |
| **Expired**               | DataForSEO can no longer return the result.                                                                                                        |
| **Pending (legacy)**      | A task created without run tracking (by Content Struct, or by an older version of the app) that has not received its result.                       |

## Alerts

| Alert                                   | What it means                                                                                                                                       |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Disk is full**                        | Collection is paused until you free up space. Results stay at DataForSEO in the meantime.                                                           |
| **A collector has stopped checking in** | A collector that currently owns tasks is no longer running, which may be holding up paid results. Restarting SEO Utils starts the collectors again. |

Task problems don't get their own banner — that's what the **Needs attention** counter and the filtered table are for.

## Staying up to date

The page refreshes itself every 15 seconds. The **Refresh** button reloads the counters, collector health and the task table immediately, and confirms when it's done.

## Logs and diagnostics

* Open any collector's log from the **Collector Health** section. Logs can be refreshed, copied, or opened in your default editor.
* **Export retired tasks** saves a file of tasks the app has finished with. This is for sending to support when you're investigating something.

## Automatic cleanup

The app removes tasks that nothing can use any more, together with their downloaded result files:

* Tasks of reports you deleted.
* Tasks no report can import any more — for example tasks left by an older version of the app — once they are 7 days old.

Recently removed tasks appear in **Export retired tasks**, with the reason they were removed.

## Why you can't delete tasks here

Earlier versions let you delete task records by hand. That option has been removed, and the app now refuses those requests even if an older screen still offers the button.

The reason is that deleting a task row throws away the DataForSEO task ID and the downloaded result file. Those are exactly what the app needs to recover a result **you have already paid for**. Deleting the row doesn't cancel anything at DataForSEO — it only destroys your own copy of how to fetch it.

{% hint style="danger" %}
**Don't re-run a report just because a task looks slow.** The app still has the task and saves its result into the report as soon as it arrives. Running the report again pays for the same keywords a second time.
{% endhint %}

<details>

<summary>What to do when tasks need attention</summary>

1. **Check Collector Health first.** If a collector has stopped checking in, results can't be collected no matter what the tasks say. Restarting SEO Utils starts the collectors again.
2. **Check for the disk-full alert.** Collection pauses when there's no room to save results safely.
3. **Look at the age column.** A task a few minutes past the 15-minute mark is often just slow, not broken.
4. **Look at Ready to import tasks.** They are saved into their report within a minute or two while SEO Utils is open. If they stay, open the collector's log for details.
5. **Open the collector's log** for the tasks in question. The log shows what the collector saw on its most recent checks.
6. **Export retired tasks** if you need to send the history to support.

Wait before re-running a report. A paid result that is still recoverable is worth more than a fast retry.

</details>

<details>

<summary>Re-running a SERP Clustering report from an older version</summary>

Older versions could leave a SERP Clustering run's results downloaded but not saved into the report, for example when the app closed during the run. To use those results without paying for them again:

1. Open the **same** report — not a new one with the same keywords.
2. Click **Re-cluster**.
3. Set **Use Saved SERP Data For X Days** above 0, for example 7.
4. Run it.

The report saves the results that were already downloaded first, then only fetches the keywords that are still missing.

</details>

{% content-ref url="/pages/D1TDLflLs8kfQXbkpdvI" %}
[Manage SERP Data](/guide/manage-serp-data.md)
{% endcontent-ref %}
