> ## Documentation Index
> Fetch the complete documentation index at: https://docs.perquery.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Content analysis

> Find the prompts that no page on your site answers, the pages that answer them weakly, and the pages that need work.

**Content Analysis** compares the pages of your site with the prompts that you track. It shows the prompts that no page answers and the pages that answer only weakly. It also shows how ready each page is for citation by an AI engine.

Open it from the **Analysis** group in the menu: **Content Analysis**.

## How the analysis works

Perquery crawls your site and keeps an inventory of its pages. Then it analyses each tracked prompt:

* When the prompt has a target page, Perquery checks that page.
* When the prompt has no target page, Perquery finds the pages on your site that are closest to the prompt and checks them.

Each prompt gets one match state. The analysis runs again after each successful crawl.

> [!NOTE]
>
> The crawler obeys your `robots.txt`. A page that your `robots.txt` blocks is not read.

## Run a crawl

Perquery crawls your site when you add it, and again on a schedule. You can also start a crawl yourself.

**1. Open the page**

Open **Content Analysis**.

**2. Start the crawl**

Click **Run crawl**. The button shows **Crawling…** while the crawl runs.

**3. Read the result**

When the crawl is done, the page shows the date of the last crawl and the number of pages read.

There is one crawl at a time for each site. The number of pages that one crawl reads depends on your plan. When a crawl stops at that limit, the page tells you so. See [pricing](https://perquery.ai/en/pricing).

### When a crawl fails

The page shows why the last crawl failed:

* **The site is not reachable.** Check that the site is online, then run the crawl again.
* **`robots.txt` answered a server error.** The crawler read no page. Fix the `robots.txt` file, then run the crawl again.
* **`robots.txt` blocks every page** for `User-agent: *`. Allow the pages that you want analysed, then run the crawl again.
* **The site slowed down the crawler.** The crawl stopped before it read every page.

## Re-analyse the prompts

Click **Re-analyse** to analyse every tracked prompt again. The analysis runs in the background. Refresh the page after a few minutes to see the new results.

Use **Re-analyse** after you change a page on your site or after you change the prompts.

## Coverage figures

The row at the top shows five figures:

| Figure | Meaning |
| - | - |
| **Pages crawled** | The pages in the inventory of your site. |
| **Prompts tracked** | The prompts that you track on this site. |
| **Prompts analysed** | The tracked prompts that have a match state. |
| **Content gaps** | The prompts that no page answers. |
| **Weak matches** | The prompts that a page answers only weakly. |

When some prompts are not analysed yet, a note below the figures gives their number. The figures do not include them.

## Content ↔ Prompt Matching

This table shows one row for each tracked prompt. Gaps come first, then weak matches, then the rest. The **Match** column shows the state:

| State | Meaning |
| - | - |
| **Strong** | A page answers the prompt directly. |
| **Weak** | A page touches on the topic but does not answer the question directly. |
| **Content gap** | No page on your site answers the prompt. |
| **Not analysed** | The prompt has no analysis yet. |
| **Target page not crawled yet** | The prompt has a target page, and the crawler has not read it yet. |
| **Target page unreadable** | The crawler could not read the target page. The row tells you why, for example an HTTP error or a `robots.txt` block. |

The mark **(outdated)** means that Perquery crawled the page again after its last analysis. Click **Re-analyse** to update it.

To set a target page for a prompt, see [Prompts](https://docs.perquery.ai/en/monitor/prompts.md).

### Fix a gap or a weak match

**1. Open the fix dialog**

Click **Fix** on a row with the state **Weak** or **Content gap**.

**2. Read the assessment**

The dialog tells you what is missing. For a weak match, it names the page to update.

**3. Go to the brief**

Click **Go to the content brief**. The [Content Brief Generator](https://docs.perquery.ai/en/tools/content-brief.md) opens with the prompt selected.

## Page AI-readiness

This list gives each crawled page a score from 0 to 100. The pages with the lowest score come first. The score uses these parts when Perquery has data for them:

* The technical score of the page from the last [technical audit](https://docs.perquery.ai/en/analyze/technical-analysis.md).
* How well the page matches its prompt.
* How recent the page is.
* Whether the page has a question-and-answer (FAQ) section.
* How well the page format fits AI answers. List and FAQ pages score highest.

When no technical audit has run, the page tells you that the technical part is not in the score.

Below each page, Perquery lists the actions to take. For example:

* Expand thin content.
* Add a question-and-answer (FAQ) section.
* Add structured data (JSON-LD).
* Complete the image alt text.
* Refresh content that is old.
* Put the terms of the prompt in the H1.

## Format Distribution

This bar shows the share of each content format on your site: **Blog**, **Listicle**, **FAQ**, **Product** and **Other**. AI engines prefer list and FAQ formats. When their share is below the target, the panel shows a warning with the target share.

> [!TIP]
>
> Use the export menu on the **Content ↔ Prompt Matching** and **Page AI-readiness** panels to download the data as CSV or Excel.

## Related pages

> [card] [Technical analysis](https://docs.perquery.ai/en/analyze/technical-analysis.md)
>
> Check how AI crawlers read your site.

> [card] [Growth opportunities](https://docs.perquery.ai/en/act/opportunities.md)
>
> See content gaps and weak matches as ranked actions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.