A goal is an action worth counting: a signup, a checkout started, a pricing page reached. The Goals card shows how many people completed each one and what share of your visitors that is.
There are two kinds, and they sit together in the same card.
| Kind | Set up in | Counts |
| From a page visit | The dashboard, no code | Visits you already recorded, including past ones |
| From your code | Your site | Only what happens after you add it |
The Goals card with both kinds present: at least one rule-based goal (carrying the filter icon) and one code-based goal, each with its people count and conversion rate. Light theme, cropped to the card.
Goals from a page visit
If the action ends on a page of its own — a thank-you page, an order confirmation, a welcome screen — you do not need to touch your site.
Open the goal editor
On the Goals card, press Add a goal.
Name it and describe the page
Give the goal a name, then say how the path should match:
is exactly
/thank-you— that page and nothing elsestarts with
/orders/— every page beneath itcontains
checkout— anywhere the word appears in the path
The Add a goal dialog with "From a page visit" selected: the name field filled in, the match-type select open showing all three options, and the path field. Light theme.
Save
The goal appears with its numbers already filled in.
These count backwards. The rule is applied to visits you already recorded, so a goal you add today has last month's numbers the moment you save it. This is the part code-based goals cannot do — an unmarked button's clicks from last month are gone for good.
What to enter as the path
Enter the path, not the whole address: /pricing, not
https://example.com/pricing. If you paste a full address we take the path out
of it for you.
Anything after ? or # is dropped, because it is not part of what we store —
so /pricing#plans would never match anything and /pricing is what you want.
Editing and deleting
Open Add a goal again: goals you defined here are listed underneath, each with an edit and a delete button.
Deleting removes the definition, not your history. Define the same rule again and the same numbers come back.
Goals from your code
When the action does not land on a page of its own — a button inside an app, a form that submits without navigating — mark it in your site instead. See tracking custom events for the attribute, the JavaScript call and the server-side route.
Both kinds appear in the same card, so which one you used is a setup detail, not something a reader has to keep in mind.
The two numbers
Each goal shows people and, beneath it, completions when the two differ.
They differ for real reasons: the same person can trigger a goal twice — opening a second account, retrying a payment that failed. Showing only people would tell someone expecting nine signups that there were eight; showing only completions would suggest nine different people.
The main number is people, because "how many signed up" is what is being asked.
Filtering by a goal
Click a goal to filter the whole dashboard to the visitors who completed it — their countries, their browsers, the pages they saw. It is the fastest way to answer "where do the people who actually convert come from".
Naming rules
Names use lowercase letters, numbers, and _, -, : only, up to 64
characters. signup, lead_won and checkout:started all work; Sign Up does
not.
The same rule applies to both kinds, so a goal that starts as a page rule can later move into your code without being renamed.
A name can only be used once per site. If a rule and a code-based goal shared a name, the card could not tell you which one it was counting.