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

# On-Page Audit

> Configure a workflow step that audits the on-page SEO of one web page

Use **On-Page Audit** when you want a technical SEO check of one page: its title, meta description, headings, canonical link, status code, word count, links, loading times, and an overall on-page score. The step returns one object for the page you give it.

## Configuration

| Option | Required | Description |
| - | - | - |
| Name | No | Label for the step in the workflow canvas. |
| Page URL | Yes | The full URL of one page, starting with `https://`. This field supports workflow variables through **Insert Variable**. |
| Render in a browser | No | When on, the page is loaded in a real browser, which fills in page timing such as largest contentful paint. It costs a little more. On by default. |
| Run JavaScript | No | When on, the page's JavaScript runs before the audit, so content added by scripts is counted. On by default. |
| Device | No | **Desktop** or **Mobile**. The screen the page is rendered on. It applies only when **Render in a browser** is on. Defaults to **Desktop**. |
| When the step fails | No | Controls whether the workflow should **Terminate Workflow** or **Continue** if this step fails. |

Add this step from the **Research** group in **Search steps...**.

A value with no scheme, such as `example.com/pricing`, is treated as an `https://` URL. Only web pages (`http://` or `https://`) can be audited. To audit several pages, put this step inside a loop and pass each page URL to **Page URL**.

## Output

Click **Run** in the step header to test the step. Fetch Hive shows the audit in **Output** after the run completes.

Use the variable picker in a later step to insert the exact output path available for that run. The base reference is:

```text theme={null}
{{STEP_IDENTIFIER.output}}
```

The output is one object. It includes:

* `url`, `status_code`, and `onpage_score`, the overall on-page score for the page.
* `title`, `title_length`, `meta_description`, `description_length`, and `canonical`.
* `headings`, an object with a list of headings for each level, such as `headings.h1` and `headings.h2`.
* `word_count`, `internal_links_count`, `external_links_count`, `images_count`, and `has_images_missing_alt`.
* `page_timing`, with load times such as `largest_contentful_paint`, `dom_complete`, and `time_to_interactive`.
* `checks`, a set of true or false flags for the page, and `issues`, a list of the problem checks that were found.

To use the score and the first heading:

```text theme={null}
{{step_2.output.onpage_score}}
{{step_2.output.headings.h1.0}}
```

There is no `items` or `results` list on this step. Some fields can be empty when the page does not provide them, or when **Render in a browser** is off.

## Example

Add **On-Page Audit** from the **Research** group in **Search steps...**.

Set **Name** to something like `Pricing page audit`.

Enter `https://example.com/pricing` in **Page URL**, or insert a variable that resolves to a page URL. Click **Run** and review the result in **Output** before using fields in a later step, for example to ask a **Prompt** step to write the three most important fixes from `{{step_2.output.issues}}`.

## Cost

Hosted runs convert the recorded service cost plus a 6% service fee into task credits. The charge is per page. Turning on **Render in a browser** or **Run JavaScript** raises the service cost a little. See [Task costs](https://docs.fetchhive.com/resources/task-costs.md).

## Notes

* If the page cannot be reached, the step fails or returns the status code the page gave, and the error message is the provider's message. **When the step fails** then decides whether the workflow stops or continues.
* Personal model keys are not used. This step always runs as a hosted provider call.


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