A few years ago at Kick Point we did a team-building exercise, had fun with it, and published a blog post about how we set it up. That post now ranks really well for “team building exercises in Edmonton” — which is where we used to be based out of — and people contact us through the contact form regularly asking if we run team-building events. We don’t. We’re a digital marketing agency. We’re going to have to remove that post. If I were measuring it by traffic alone, it would look like a winner. By any other honest measure of whether the page is doing its job (bringing in clients who want the thing we actually sell), it’s failing.
Every company has a weird post like that. Something somebody published one time because it was fun, and now it ranks really well, and you can’t quite get rid of it, but it brings you zero value. The question is whether your analytics can tell the difference between a post like that and a post that’s actually in line with your business goals. In my experience, most reporting setups can’t, and that’s because every page on your site is being measured against the same yardstick. Let’s walk through a framework for fixing that.
Video Version
Why a Site-Wide Conversion Rate Hides the Signal You Need
I see site-wide conversion rate on almost every analytics dashboard I review. It’s not that the number is wrong. It’s that it averages across pages with completely different jobs, which washes out any signal worth acting on.
Think about it this way. Your homepage’s job is usually to send people somewhere else such as toward a service page, a case study, a contact form. Direct conversions from the homepage are rare and that’s fine, because the homepage’s job isn’t to convert. A blog post’s job is usually to be read. If someone arrives, learns what they came to learn, and leaves, that’s success, even if they never fill out a form. An SEO authority post like a glossary entry might never convert a reader directly, and that’s also fine. Its job is to rank, earn links, and reinforce your topical authority.
Now imagine you average all of those into one number. You get something mathematically accurate and practically useless. A site conversion rate of 2.1% might hide that your form fill pages are converting at 8.4% and your blog posts are doing their actual job at a 62% engagement rate. Or it might hide that your form fills are at 0.4% and the rest of the site is propping up the average. You can’t tell which from the headline number, and you can’t make a decision from it either.
The fix isn’t to abandon aggregate metrics. It’s to start asking different questions of your data — questions that pay attention to what each page is actually trying to do.
Four Page Purposes Worth Tagging
I think of most pages as falling into one of four jobs. Your taxonomy might be different, and that’s fine! The act of assigning every page a job matters more than the specific labels you choose. Here’s where I tend to land:
- Navigate. Homepages, category pages, navigation hubs. Success means people leave this page to go somewhere deeper. The metric that matters is whether they clicked through to a destination you wanted them at.
- Content Consumption. Blog posts, guides, videos, articles. Success means people actually read or watched. Time-on-page or scroll depth or video completion is closer to the truth than a conversion rate.
- Form fill. Contact pages, demo requests, pricing pages with forms, signup flows. Success means a form submission. This is the one page type where conversion rate as you usually think of it is the right metric.
- Authority. Reference content and SEO-driven informational pages. Success means the page ranks, earns links, and gets cited. Direct conversions are a bonus, not the goal. Picture a pest-control company that publishes a page of “top spiders found in North Carolina.” That’s a credibility play. The audience is mostly going to be students looking at pictures of spiders for their homework, not people who need an exterminator. That’s fine — the page is still doing its job.
For some websites, we use a slightly richer set: Call or Text, Directions, Form Fill, Navigate, Content Consumption, Purchase, and Other Conversion. The first three call out specific conversion types we find useful to separate, especially for local businesses as a phone tap is a different signal than a form submit, and “Get Directions” clicks are really important! The exact list isn’t the point — the point is that you assign every page a job, and the labels match how you actually want to report.
Real pages often do more than one job, which is why I usually pair this with a primary and secondary purpose for each page. A blog post is often primary “Content Consumption” and secondary “Authority.” A homepage might be primary “Navigate” with a secondary “Form Fill” if it has a contact CTA. Pick the primary as the one you’d care about most if you could only measure one thing, and treat the secondary as a useful auxiliary signal.
This becomes important in the next step, because it gives you a concrete reason to tag pages on more than one axis, which is the broader point I want to make about analytics structure in general.
How to Implement Page Purpose Tagging in GA4
If you only ever assign each page a single category, GA4’s built-in content_group parameter can do most of this work. But content_group is one slot, and most teams use it for content type: blog vs. product page vs. service page vs. case study. That’s a perfectly good use of content_group, and most setups underuse it.
Page purpose is a different axis. So is a funnel stage. So is an audience segment. The point I want to land on is that you’ll likely want more than one way to group your pages, and custom dimensions are how you do that. Use content_group for content type, then create a custom dimension for purpose, another for funnel stage if that’s useful, and so on. Each axis answers a different question in your reports.
Here’s how we set the purpose tagging up in practice on a WordPress site. We include this on every website we build at Kick Point:
- Add two dropdown fields to every page and post — primary purpose and secondary purpose — with the taxonomy options. ACF or a custom metabox both work, and some custom page builders have the option to add a drop down field.
- The dropdown values are added as meta tags, for example:
meta name="content-purpose" content="Navigate" - Add a Custom JavaScript variable to GTM and name it JS – Get Meta Tag Value. Here is the code for that variable:
function() { return function(metaName) { var metas = document.getElementsByTagName('meta'); for (var i = 0; i < metas.length; i++) { if (metas[i].getAttribute('property') == metaName || metas[i].getAttribute('name') == metaName) { return (metas[i].getAttribute('content') || '').substring(0, 100); } } return undefined; }; } - For each meta tag that you want to capture, create a Custom JavaScript variable that captures that specific meta tag value. Here is the code for the description meta tag:
function() { return {{JS - Get Meta Tag Value}}('description'); } - Capture the output of your meta tag variables (but not the JS – Get Meta Tag Value variable itself) as event parameters on your page_view tag.
- Create custom dimensions in GA4 for your new event parameters.
If you’re not on WordPress, the same pattern applies with whatever your CMS calls a metafield. Webflow has collection fields. Shopify has metafields. For sites with no real CMS to speak of, you can sometimes get away with mapping URL paths to purposes in a lookup table inside GTM. It doesn’t scale, but it works for a small site.
You might be asking yourself: “I already segment my reports by URL pattern. Why do I need a custom dimension?” I’d respond that URL patterns work until they don’t. URL structures change, you end up with paths that don’t reflect the page’s job (a /resources/ path holding both authority and consume content), and your regex can break silently when someone publishes a page that doesn’t match your assumptions. A purpose tag travels with the page regardless of where it lives. URL parsing is fragile; an explicit tag is durable.
One important caveat: GA4 custom dimensions aren’t retroactive. Once you register them, they only collect from that point forward. The data you get tomorrow won’t include yesterday’s events. So don’t feel like you have to assign purposes to every page on the site before you start. Start with new pages, work backwards as you have time, and accept that the value of the data accrues over months.
How to Use Page Purpose in Your Reports
Once purpose is a dimension you can filter by, your reports can finally answer the right questions for each page type.
For Form Fill pages, look at form submission events on pages whose primary job is Form Fill. You don’t actually want to look at the conversion (key event) rate as that is only tied to the landing page of the session. Instead, look for form fill events (e.g. form_submit) that happened on pages marked as having a goal of a form fill. That’s the closest thing you have to a true conversion rate, because you’ve isolated it to pages where conversion is actually the goal.
For Content Consumption pages, scroll depth, engagement time, or video completion is what you care about, not whether the visitor clicked something afterwards. For Navigate pages, the question is whether people left to a destination you wanted them at, which means looking at internal clicks or click-through rates on featured links, not time-on-page. For Authority pages, the metric you care about is mostly outside GA4 because it’s a question about rankings and impressions, with backlinks and citations as the signals of success.
Different purposes, different metrics. That’s the entire point. The site-wide conversion rate gave you one number; this gives you four (or more) sets of numbers, each pointed at the question that page actually has to answer.
In practice, this is also where the micro-conversion approach gets more useful, because you can apply different micro-conversion thresholds to different page types. A 30-second engagement on a glossary page is meaningful in a way that a 30-second engagement on a contact page is not.
What This Unlocks for Strategy
Once you can see which pages are doing their jobs and which aren’t, you can make smarter decisions about where to spend your improvement time.
When I see Form Fill pages underperforming, the usual culprits are the form itself, the copy, or the CTA placement which are all things you can fix without rebuilding the page. When Content Consumption pages underperform, the post often isn’t landing with the audience and might need a rework or a retire-and-redirect decision. When Authority pages start unexpectedly converting visitors, that’s often a signal that you’ve found a transactional intent keyword you didn’t know was there, and that’s worth building out into a more conversion-focused asset.
The purpose tag isn’t only useful for reporting. It’s useful for content strategy, because it forces you to be explicit about what each page is supposed to do. The jobs-to-be-done concept comes out of software. By applying it to marketing we’re asking: what is the job of this particular page? Not all pages have the same job. And if a page doesn’t have a job, then why is it there?
This is the part where being data-informed rather than data-driven actually matters. Data-driven would mean letting the conversion rate dictate your priorities. Data-informed means using the right metric for each page’s job, then bringing your judgment about audience, intent, and business outcomes into the decision.
Frequently Asked Questions
I use both, for different things. content_group is well-suited to content type (blog vs. product vs. service), and most teams underuse it. Page purpose is a different question (what job is this page doing) and that’s what custom dimensions are for. The broader principle: you’ll want more than one way to group your pages, and that’s the case for using both tools alongside each other.
Most pages do, which is why I recommend tagging both a primary and a secondary purpose. Pick the primary as the job you’d care about most if you could only measure one thing. For example, for a pricing page that’s usually form fill, even though the page is also doing authority work. The secondary captures the other job for when you want to ask reporting questions about it. Two dimensions, one for each axis. It also doubles as a clean illustration of why multi-axis tagging matters in the first place.
Where to Start
You don’t need a comprehensive taxonomy on day one. Pick ten important pages, assign them primary and secondary purposes, set up the custom dimensions, and see what you learn from the first month of data. If you’re on WordPress and comfortable in GTM, this is an afternoon’s worth of work. If you’re on another CMS or working with a developer, the first conversation is about what’s possible in your stack.
The bigger shift is the way of thinking, not the implementation. Once you start asking “what’s the job of this page?” before you ask “how is this page performing?”, a lot of reporting questions get easier because you’re finally measuring each page against the metric that fits what the page is actually trying to do. Just start somewhere.
Have questions about this? Check out my related YouTube video where I walk through these concepts in detail, and drop your questions in the comments!