DeepSmith

Sep 26 · Content Strategy

17 min read

How to Measure Blog Performance: The KPIs That Actually Matter

Avinash Saurabh
Avinash Saurabh · CO-Founder & CEO
A dark monochrome cover with the words Measure the Blog KPIs That Matter over abstract bar and line chart fragments and layered cards.

Most teams have plenty of blog numbers and still can't say whether the posts are bringing in the right people or helping the business. If that's where you are, this guide covers how to measure blog performance with the tools you already have, which is usually Google Analytics 4, Search Console, and a CRM if you have one. By the end you'll have a short set of blog KPIs, each with a clear definition, and a way to check them on a regular schedule.

You don't need a new dashboard product for any of this. You need a few decisions written down, one conversion event set up correctly, and the habit of looking at the same numbers the same way each time.

The short answer to "which blog KPIs should I track" is four things: blog landing sessions, engaged reading, completed conversions from the blog, and pipeline the blog shows up in. If organic search is a big part of how people find your posts, add Search Console clicks and impressions as a fifth, mostly diagnostic, number. Each one answers a different question, and working out which blog metrics matter for you mostly comes down to which of those questions your blog has to answer. The steps below take them in order.

Decide what the blog has to accomplish

Before you open any report, pick one main outcome for the blog. It might be search discovery, qualified inquiries, trial starts, or influence on a longer B2B sales cycle. Then give that outcome one primary KPI. Blogs that try to win on everything end up with a report nobody can act on.

Then write down the details that people usually leave vague. What exactly counts as a blog post on your site? What is the conversion event, and is it a completed form or just a button click? Are you asking about visits that started on a post, or any visit that touched a post at some point? And what's the reporting period? Put those answers in one shared note. If you're still working out the goal itself, our piece on what comes first when planning content can help you settle it.

You're done with this step when a teammate can tell you the outcome, the event, the numerator, the denominator, and which pages are included, without asking you what "blog conversion" means.

The usual way this goes wrong is picking pageviews, bounce rate, or rankings as the one measure of success for every post. A post aimed at a small, high-intent audience can be worth more than a high-traffic post with no relevant next step, so the KPI has to follow the goal and not the other way around.

Isolate blog entrances and where they come from

The first of the blog analytics metrics to get right is blog landing sessions, which are visits that started on a blog post. In GA4, open the Landing page report and find your blog URL paths. If your posts all live under one folder, filtering on that path works well. If they're spread across several directories, it's safer to define an explicit list of pages and keep it up to date, because a path filter that quietly misses posts will make your numbers look smaller than they are.

Google's own developer documentation recommends the landing page dimension, not Sessions with a page path, when you want to measure landing traffic. The difference matters more than it sounds. Sessions with a page path counts any session that visited that path at least once, including people who arrived somewhere else and clicked over to the post later. Landing page counts only the sessions that began there. Views is a third thing again, since it counts every load, including repeats within one session.

Once you have landing sessions, split them by channel or by session source and medium. That tells you whether a post's entrances came from search, email, social, or somewhere else you track. Check that the analytics tag fires on a few representative articles, and that the URLs in your blog set aren't mixed up with non-blog pages.

If you share posts outside your own site, tag those links consistently. GA4 supports campaign parameters for source, medium, campaign, and a few others, and the values are case-sensitive, so "LinkedIn" and "linkedin" show up as two different sources. Pick a naming style once and stick with it.

You're done when you can tell an article that starts sessions apart from one people mostly reach after moving around your site, and you know which channels sent each one. The common ways to go wrong are reporting all pageviews as blog entrances, adding up overlapping page-path session rows and expecting them to match your total, and comparing a tagged campaign with an untagged one as if both were tracked the same way.

Check search discovery on its own

If organic search matters to your blog, look at it separately from on-site traffic, since Search Console has its own set of blog analytics metrics. In Search Console, open the Performance report, choose the Web search type and a sensible date range, and look at the Pages and Queries tabs for the posts you care about. Read clicks, impressions, CTR, and average position together. CTR is just clicks divided by impressions, and average position reflects the topmost result under whatever grouping you're looking at, so it isn't a fixed rank for every query.

Comparing equivalent periods, or comparable groups of posts, helps you tell two different problems apart. A post whose impressions are falling has a visibility problem. A post whose impressions are steady but whose clicks are falling has a problem with whether people choose to click. Then you can switch to GA4 and see what happens once people arrive.

You're done when you can say, for a given post, whether it's gaining search exposure, gaining search clicks, and then producing engaged visits or outcomes after the click.

A few things trip people up here. Impressions are search appearances and not visits. Search Console clicks won't necessarily equal GA4 sessions either, because the two tools collect data under different rules, cover URLs differently, and use different time zone conventions. Search Console also withholds some queries for privacy, and its tables can leave out rows, so the rows may not add up to the chart totals. Treat the two tools as two views of the same thing, not as one number that should match. If you also want to split branded queries from non-branded ones, our guide to branded versus non-branded traffic shows how to do it in Search Console.

Read engagement without treating time as a verdict

Engagement is the part of blog traffic and conversion tracking that people most often misread, so it helps to know what GA4 is actually measuring. Average engagement time is the time the page was in focus in the visitor's browser, and it's not the time a tab happened to stay open. Engagement rate is engaged sessions divided by sessions. A session counts as engaged if it lasts longer than 10 seconds, has a key event, or has at least two page or screen views. Bounce rate is the flip side of that, the share of sessions that weren't engaged.

Notice what's missing from that definition. None of it tells you someone read the whole article. The 10 second cutoff is a rule for classifying a session, and it isn't a recommended reading time. A person can count as engaged just because they viewed a second page or triggered a key event.

So use these numbers to spot things worth a look, and not to hand down a verdict. Compare similar kinds of articles, visitors from the same sources, and the same time periods. If a post has a short engagement time, check what the next step on the page is supposed to be. A reader who gets a quick answer and then fills in the form has done what you wanted, even if the time looks low.

Common mistake: "This article's bounce rate is high, so it failed." In GA4, bounce rate is the percentage of sessions that were not classified as engaged. Check what the article is for and whether it produces conversions before you decide what the number means.

You're done when you can spot an engagement number that looks unusual and say whether it goes along with better or worse completed actions. Most of the mistakes come from assuming a long time is always good, or from treating a quick visit followed by a conversion as a failure.

Measure completed conversions, not interest signals

This is the step that makes the rest useful, and it's where blog traffic and conversion tracking either becomes trustworthy or doesn't, so a little setup goes a long way. Choose the action that really matters first, for example a successfully submitted lead form and not a click on the button that leads to the form. Then check whether GA4 already collects an event for it.

Google's documentation gives a lead-form example that is easy to follow. You create a specific event, such as lead_form_submit, from the built-in form_submit event where the form_name matches your lead form, and then you mark it as a key event. You create the event under Admin, then Data display, then Events, and key events are managed under Data display, then Key events. Marking an event as a key event needs the right permission on the property. If your form sends people to a separate confirmation page, Google also documents creating an event from a page view of that confirmation URL. What you shouldn't do is mark every page view as a key event, because then everything counts as a conversion and the number stops meaning anything.

After you set it up, submit a test entry yourself and confirm that the event shows up. It's a small check, and it saves you from reporting a number you can't trust. Google's page on how to measure key events walks through the reporting side.

Now calculate a rate you can label clearly: completed lead key events from blog landing sessions, divided by blog landing sessions, times 100. As a made-up example, 20 completed leads from 1,000 blog landing sessions would be 2%. That's only arithmetic to show the numerator and the denominator. It isn't a benchmark, and you shouldn't compare your own number to it. If someone converts in a later session, decide whether your rate covers only the landing session or uses a wider attribution method, and say which one you picked. Mixing the two quietly is how two people end up with different numbers for the same month.

You're done when a test of the completed action creates the intended event and a colleague can reproduce the rate and explain which sessions and events it includes. Watch out for counting a form view or a button click as a lead, changing the event definition part way through the year without noting it, and treating the conversion rate on blog pages as proof that the leads are good. The rate says people took the action. It doesn't say whether sales found them worth talking to. If you're weighing organic against paid, organic versus paid conversion is worth a read for what that comparison can and can't tell you.

Trace blog influence into the sales process

Pipeline is the KPI most teams want and the one that takes the most care, because the answer depends on how well your systems are connected. Start by agreeing with sales on what counts as a qualified lead and what counts as an opportunity. Then connect contact records, and the content they're known to have viewed, to opportunity and deal records, wherever your CRM captures that.

It helps to report two things separately. Blog-sourced could mean that a known lead's first recorded qualifying visit started on a blog post. Blog-influenced could mean there was a recorded blog interaction before the opportunity was created. These are suggested working definitions and not defaults that GA4 or any CRM gives you, so write down the identity-matching rule, the observation window, the qualification rule, the field that holds opportunity value, and how credit is shared when more than one post was involved.

GA4 has a report that helps with part of this. Under Advertising, the Key event attribution paths report shows the sequences that lead to key events and which channels, sources, media, or campaigns start, assist, and close them. That's useful for multi-touch key-event paths, but it isn't a page-level report that connects a blog post to a closed deal. For that you'd look to a CRM with attribution reporting. HubSpot, for example, separates contact-create, deal-create, and revenue attribution, and its content revenue attribution can look at closed-won revenue linked to an individual blog post. HubSpot documents deal revenue attribution for Marketing Hub Enterprise accounts only, so don't assume everyone on your team can get to it. If you don't have advanced attribution, a basic review of contact and deal histories with sales is a realistic place to start.

You're done when the report, or the manual review, gives you an opportunity count and a value under a named attribution rule, and both marketing and sales can explain which blog interactions were captured and which weren't.

The mistakes here are worth knowing about before you present anything to leadership. Influenced pipeline isn't "revenue generated by the blog." If you add the full value of a multi-touch deal to every article that touched it, the totals will overcount. Anonymous readers can't always be matched to CRM contacts, so the result will be missing some of what really happened. And a GA4 form key event is not a closed-won sale, so keep those two labels apart.

If you want a fuller treatment of attribution, our guide to attributing SaaS pipeline and revenue goes deeper on lookback windows and cohort comparisons.

Review patterns, including time, and pick the next action

Once the definitions are in place, the work is mostly looking at the same numbers over the same intervals and asking what changed. Compare by post, by traffic source, and by conversion outcome. Every change you notice should lead to a decision. That might be looking into a drop in discovery, improving how you measure an action that matters, following up on high-intent posts, or leaving alone a post that helps qualified opportunities even though it doesn't get many entrances. When a post's numbers are slipping over time, a content decay audit helps you work out which ones are worth refreshing.

This is also where the question of timing comes in. People often ask when in the day or week a blog gets the most engagement, and the honest answer is that it depends on your audience, so you check your own data. In GA4 you can break events or engagement measures out by the Hour dimension, which is the hour an event was collected and runs from 0 to 23, and by date. If you want a day-of-week view, confirm which dimension your property offers, or work out the weekday from dated exports. Then compare rates as well as volumes, and only across intervals that have enough data in them. State the time zone you're reporting in. Search Console's daily Performance data uses California local time, while GA4 can use a time zone set on the property, so the two won't line up perfectly by day.

Nothing in the research behind this guide established a best hour or best weekday for blogs in general, and it would be a mistake to invent one. The mistakes to avoid are picking a publishing hour from a small handful of event counts, treating a busy hour as the best converting hour without dividing by anything, and crediting a week's change to an edit without thinking about channel mix, seasonality, and any tracking changes you made.

The same goes for benchmarks. No universal number for a good engagement time or a good conversion rate came out of this either, so compare like posts against your own earlier periods and against the business outcome you picked in the first step.

Keep the scorecard small

If you put the steps together, you end up with a small working scorecard. It has blog landing sessions, Google organic clicks for the same posts when organic discovery matters, average engagement time or engagement rate, one primary completed-lead key event with its rate per blog landing session, and blog-influenced opportunities with their value under your documented rule. That's about five lines, and our guide to content metrics for lean teams takes a similar approach for teams publishing a few posts a month.

Views, CTR, average position, scroll depth, and clicks on calls to action still have a job. They're best used to explain why one of the core numbers moved, and not as KPIs of their own. When you're deciding which blog metrics matter, it helps to ask whether a number would change what you do next week. If it wouldn't, it probably belongs in the diagnostic pile.

A four-layer funnel showing blog landing sessions, engaged sessions and completed lead key events measured in GA4, with Search Console clicks feeding the top layer and a dashed line below them where opportunities and value move to the CRM under a stated rule.

Some teams also want to know how their brand shows up in AI answers, which is a different question from anything above, and one that our AI visibility measurement guide covers in full. DeepSmith's AI Visibility covers that discovery question for the buyer prompts you track: how often an AI answer names your brand, which is the mention rate, and how often it links to one of your pages, which is the citation rate. Those rates can help you pick which content gap to work on next, but they're not GA4 visits, lead conversions, or closed-won revenue, and DeepSmith doesn't replace your analytics or your CRM. If you want to see visits from AI answers in your analytics, tracking AI referral traffic is a separate setup. Our piece on content ROI for AI referrals explains how to think about crediting them. Our guide to AI visibility metrics and KPIs covers how to read them.

What to do next

Start with a baseline. Write down your main outcome and the definition of your conversion event, set up or check that one completed-action event, and pull a few weeks of the landing session, engagement, and conversion numbers for your blog. Then look at the pattern once before you add anything else. If you'd like to see where your brand shows up in AI answers and which content gaps are worth closing, you can start a DeepSmith free trial and use it alongside the analytics you already have.

Frequently asked questions

Which blog KPIs should I track?

Start with blog landing sessions, an engagement measure, a completed-action conversion with a clearly stated rate, and the qualified opportunities or pipeline connected to blog visits under an attribution rule you've written down. Add Search Console clicks and impressions when organic discovery is one of your goals.

Are pageviews or sessions better for blog traffic?

They answer different questions. Landing sessions measure visits that began at a post, and pageviews measure total loads, or how often a page was seen. Sessions counted by page path also include visits that arrived somewhere else first, so landing sessions are the cleaner choice for entrances.

What does GA4's average engagement time tell me?

It summarizes the time a page was in focus while people were on it. It doesn't show that a visitor read every paragraph or found the content useful, so read it alongside what the page is for and how many people completed the action you wanted.

Can I measure pipeline from blog posts in GA4 alone?

GA4 can show key events and attribution paths for interactions it recorded online. To say something reliable about qualified opportunities or closed-won deals, you need connected CRM records and a clear rule for how blog interactions get credit. Where those links are missing, the picture will be incomplete.