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

# Audit existing URLs

> Check the links you already have, and URLs pasted from anywhere, against the workspace's rules; accept the findings that are deliberate and apply the spellings that should win.

The rules refuse a bad value at the moment a link is created. They say nothing about the links
that already exist, or about three years of campaign URLs sitting in a spreadsheet. An **audit**
answers that. It walks the workspace's links, checks every UTM value against the
[convention](/en/rules/the-convention), the [approved values](/en/rules/approved-values), the
[dependency rules](/en/rules/dependency-rules) and the
[Google Analytics 4 channel check](/en/rules/the-convention#what-happens-to-a-link-that-breaks-it),
and groups the different spellings of one thing — `fb`, `Facebook`, `FB` — into one proposal
naming the spelling that should win.

Audits live at [https://app.utmkit.co/audits](https://app.utmkit.co/audits). They are included in some plans; your own
plans page, [https://app.utmkit.co/billing/plans](https://app.utmkit.co/billing/plans), says whether yours has them.

## Bringing in URLs from outside

Under "Imported URLs", paste a list of URLs — one per line, copied from a spreadsheet column, an
analytics export or your previous shortener — and choose **Import**. Their UTM values are extracted
and stored as audit-only records. They are audited alongside the workspace's own links and
**never become links**: nothing redirects, nothing is published.

Each import reports what became of every line — kept, without UTM values, rejected, duplicate — so
a dropped line is never silent. An import takes at most 5,000 URLs, each at most 2,048 characters
long; lines past the first bound are counted and reported as "over the 5000-URL bound". One audit
covers at most 100,000 links. Owners, admins and members can import, and an import can be
deleted again from the same list.

## Running an audit

Owners and admins see **Run an audit**. It runs in the background and appears in the list at once.
One audit runs per workspace at a time; asking for a second while one is running is refused with a
sentence that says so. An audit modifies no link, campaign or rule. It reads and proposes.

When it finishes, the person who started it receives an email with the subject "Your UTM audit is
ready": one line with the outcome and a link to the result. If the audit could not be completed,
or the grouping step did not run, that line says so instead of pretending otherwise.

## Reading the result

The result opens with a **health score**, the share of parameter slots with nothing wrong across
the links covered, never shown without its basis: which rules could be applied, which could not,
and whether a convention is configured at all. A workspace with no rules scores high because little
could be checked, and the page says so. A workspace with nothing to audit has no score and shows a
dash rather than a hundred.

Below it come the **findings**, grouped by parameter and rule so four thousand problems read as a
handful of patterns. Each line is the same sentence the rules use when they refuse a link, with how
many links carry it and whether they came from imported URLs. A completed audit can be downloaded
as a CSV.

## Accepting a finding

Some findings are deliberate: a client's brand really is spelled `FB`. Choose **Accept…** on the
finding, optionally say why, and from the next audit on it is reported apart as accepted and no
longer counts against the score. Who accepted it, when, and the note stay visible; **Revoke** puts
it back in the count. Accepting costs nothing and changes no link.

## Applying the proposed spellings

Under "Proposed value groups", each group shows the suggested spelling and every variant found,
with the links carrying each. Nothing is applied without your explicit confirmation.

<Steps>
  <Step title="Choose the groups">
    Untick any group to leave it alone. A group containing a spelling you accepted as intentional is
    unticked by default.
  </Step>

  <Step title="Review and apply selected…">
    The confirmation states how many links will change, that every rewritten link is re-published to
    its public redirect, that clicks already recorded keep the old spelling in historical reports, and
    that this cannot be undone.
  </Step>

  <Step title="Read the account">
    While it runs, and once it is done, the page lists every planned link as updated, skipped or
    failed, and why it failed. A suggested spelling your own convention would refuse fails on that
    link with the refusal named; the rest continue.
  </Step>
</Steps>

<Warning>
  The apply rewrites live links. Clicks recorded before it keep the old spelling, so a campaign's
  series splits at the change. Review the groups before confirming.
</Warning>

Accepting findings and applying proposals are owner and admin actions. The audit has no API
operation and no MCP tool; it is console work.
