
Short answer: Content marketing ROI is (value the content produced minus what it cost) divided by what it cost. For a small business, the hard part isn’t the formula. It’s counting the full cost, including your own hours, and giving content fair credit for enquiries it started but didn’t close. Measure in three layers: visibility (Google Search Console), engagement and actions (Google Analytics 4), and business results (your enquiry form, phone log or CRM). Report ROI as a range across a few attribution views rather than one flattering number. Judge each page on the right timeline, and use what you learn to decide what to write, refresh or stop doing next.
Most small businesses that publish content can tell you how many posts they wrote last year. Far fewer can tell you what those posts earned. That gap is why content budgets get cut first when money is tight, and why some owners keep paying for content that isn’t working.
This guide covers the measurement side of a content programme: what to count, how to set it up with free tools, how to handle attribution honestly, what Canadian privacy rules do to your numbers, and how to turn the results into your next plan. It doesn’t cover how to build the strategy itself. For that, start with p4e’s content marketing for SEO strategy guide, then come back here once you’re publishing.
Content marketing ROI is the return from your articles, guides and other published content, compared with everything it cost to produce and promote them. The standard formula is:
ROI = (value attributed to content – total content cost) / total content cost x 100
A result of 0% means the content paid for itself. A positive number means it earned more than it cost. A negative number in the first year is common for a new programme, because the costs arrive up front and a page that ranks keeps working for months or years after you stop paying for it.
For a small business, “value” rarely means online sales alone. It usually means enquiries, quote requests, booked calls, appointments or newsletter sign-ups that later turn into customers. So the measurement job has two parts: put a dollar value on those actions, then work out how much of that value the content deserves.
Measurement is a common weak spot even for professional marketing teams. In the Content Marketing Institute’s 2026 B2B research, a survey of 1,015 B2B marketers fielded in mid-2025, 33% put measuring content effectiveness among their top three challenges. If a third of full-time marketers struggle with it, a business owner doing marketing on a Thursday afternoon shouldn’t feel bad. They should use a simpler system, like the one below.
Count every input, including your own time. Most ROI figures look better than reality because they only count the writer’s invoice. Track costs for the whole programme over a fixed period, usually a quarter or a year.
| Cost line | What to include | How to estimate it |
|---|---|---|
| Writing | Freelancer or agency fees, or staff hours | Invoices, or hours x loaded hourly cost |
| Your review time | Briefing, fact-checking, approvals | Log hours for a month, then extrapolate |
| Design and media | Images, diagrams, video editing, stock licences | Invoices and subscriptions |
| Tools | SEO tools, email platform, scheduling tools | Monthly fees x months (share costs if used for other work) |
| Distribution | Paid boosts, sponsored newsletter slots, event costs | Ad and sponsorship invoices |
| Maintenance | Refreshing, consolidating and fixing old posts | Hours x hourly cost |
Two habits make this easier. First, keep a simple time log for content work, even if it’s just a spreadsheet row per article. Second, decide in advance which tools are content costs and which are general business costs, and stick to that rule so quarter-to-quarter comparisons stay fair.
Give each important action a value before you start reporting, then leave the values alone unless your business changes. A simple lead value works for most service businesses:
Lead value = average first-year customer value x close rate from qualified enquiries
For example, if a new client is typically worth $2,400 in the first year and you win one in four qualified enquiries, each qualified enquiry is worth about $600 to you. Use your own records for both numbers. If you don’t have a close rate yet, track it for one quarter before calculating ROI, because a guessed close rate makes every later figure a guess too.
Then decide which actions count. In GA4, Google now calls these key events. Google renamed them from “conversions” so the term matches how Google Ads counts conversions, as its key events explainer describes. Typical key events for a small business are:
Keep the list short. Five meaningful key events are easier to read than twenty, and “scrolled 90%” or “watched a video” aren’t business results. Treat those as engagement signals, not returns.
A useful scorecard measures three layers, in this order: visibility, then engagement, then business results. Visibility moves first, so it tells you early whether a page has a chance. Business results move last, but they’re what ROI is built on. Looking at the layers separately stops you from killing a page that is three months old, or keeping one that gets traffic but never produces an enquiry.
| Layer | Metric | Where to find it | Review | What it tells you |
|---|---|---|---|---|
| Visibility | Indexed or not | Search Console: URL Inspection, Page indexing | Once after publishing, then quarterly | Whether Google has the page at all |
| Visibility | Impressions and average position, by page | Search Console: Performance, Pages tab | Monthly | Whether Google is testing the page for relevant queries |
| Visibility | Non-branded clicks | Search Console: Performance, branded queries filter | Monthly | Whether content brings in people who didn’t know you |
| Engagement | Engaged sessions by landing page | GA4: Reports, Engagement, Landing page | Monthly | Whether visitors stay and read |
| Engagement | Clicks to service or contact pages | GA4: path exploration or link-click events | Quarterly | Whether the content moves people toward you |
| Results | Key events by landing page | GA4: Landing page report with key events | Monthly | Direct actions started from content |
| Results | Key events from users whose first visit was content | GA4: User acquisition (First user source) and an Exploration segment | Quarterly | Customers whose journey started with content |
| Results | Self-reported source | Your form, phone notes or CRM | Monthly | What customers say brought them |
The branded queries filter is worth a special mention. Google introduced it in Search Console in November 2025 and made it available to all eligible sites in March 2026. It splits your search traffic into branded queries (your business name and its variations) and non-branded queries. Content marketing exists mostly to win non-branded searches, so this split is the cleanest free view of whether your content is reaching new people. Google notes it only works for top-level properties with enough search volume, so a very new or very small site may not see it yet.
You can set up a working measurement system with free tools in a few hours. Do these steps once, in order:
If you work with a developer or agency, ask them to set this up and walk you through it. Measurement you can’t read yourself tends to stop being checked.
Content usually starts a customer journey rather than finishing it. Someone reads your guide in March, comes back by typing your name in April, and fills in the form in May. A last-click view gives the enquiry to “Direct” or “Organic Search – branded”, and the guide gets nothing.
GA4 narrowed your options in this area. According to Google’s attribution settings help page, the first click, linear, time decay and position-based models have not been available since November 2023. That leaves data-driven attribution and last-click models for key events. On a small site with only a handful of key events a month, a data-driven model has little to learn from, so treat its splits with caution.
The same help page notes something useful: user-scoped dimensions such as First user source and First user medium aren’t changed by the attribution model. That gives you a dependable first-touch view of channels. To see first touch by page, build a user segment in a GA4 Exploration: people whose first_visit event happened on a blog or guide URL (the page_location parameter). Then count how many of those users later completed a key event.
Our recommendation is to stop looking for one correct number and report three views side by side:
If all three point the same way, you can trust the direction even if the exact figure is uncertain. If they disagree badly, your tracking probably has a gap worth fixing before you make budget decisions.
Measure each distribution channel separately with UTM parameters, so you know whether the newsletter, LinkedIn or a partner site actually sends people who act. Without tags, much of this traffic is reported as “Direct” or lumped together as referrals.
Google’s URL builder help page lists the parameters. The three you need are utm_source (where the link sits), utm_medium (the type of channel) and utm_campaign (the piece of content or theme). Keep the values lowercase and consistent:
| Channel | utm_source | utm_medium | utm_campaign |
|---|---|---|---|
| Monthly newsletter | newsletter | backup-guide-2026 | |
| LinkedIn company post | social | backup-guide-2026 | |
| Industry association newsletter | assoc-newsletter | referral | backup-guide-2026 |
| Partner’s resources page | partner-name | referral | backup-guide-2026 |
Don’t add UTM parameters to links between pages on your own site. They overwrite the visitor’s original source and corrupt the attribution you just set up.
A few channel-specific points:
After two or three quarters, compare channels on key events and on hours spent. A channel that takes four hours a month and produces nothing measurable, in either the tagged data or the self-reported answers, is a candidate to drop.
Partly, and with care. Google says sites that appear in AI Overviews and AI Mode are counted in Search Console’s Performance report under the “Web” search type, along with the rest of Google Search (Google Search Central). Since August 31, 2026, Search Console also has a Generative AI performance report for all sites. It shows impressions in AI Overviews and AI Mode, grouped by page, country, device or date. Google’s help page describes impressions only, not clicks or queries, so use it to see which pages AI features surface, and keep judging clicks and key events from your normal totals.
For other AI assistants, there are two practical signals:
Be wary of any tool that claims to give you a precise AI share-of-voice number for a small local business. Sample sizes are usually tiny and answers vary from one run to the next. If AI visibility is a priority, p4e’s guide on how to get cited by AI covers what influences it. Measure it with the two signals above and avoid paying for precision that isn’t there.
Privacy rules mean GA4 will undercount some visitors, so expect gaps and design around them rather than trying to track everyone. The clearest example is Quebec. Section 8.1 of Quebec’s private-sector privacy act, in force since September 22, 2023, requires businesses that use technology able to identify, locate or profile a person to tell them first and explain how to activate those functions. The Commission d’acces a l’information reads this to mean such functions can’t be turned on by default. In practice, many sites serving Quebec visitors use a consent banner that leaves analytics or advertising cookies off until the visitor opts in.
What that means for measurement:
This is general information, not legal advice. If you collect personal information from Quebec residents or run detailed tracking, have your consent setup reviewed by someone qualified in Canadian privacy law.
Here is how the pieces fit together for a hypothetical bookkeeping firm in Ontario. The numbers are invented for illustration. They aren’t benchmarks or results from a real client.
Costs over 12 months: 10 articles at $400 each from a freelancer ($4,000), plus 4 hours of the owner’s review time per article at $75 an hour ($3,000), plus an email platform at $50 a month ($600), plus 10 hours of refresh work ($750). Total: $8,350.
Lead value: first-year client value $2,400 x close rate 25% = $600 per qualified enquiry.
| View | Qualified enquiries credited to content | Value | ROI |
|---|---|---|---|
| Floor (last click, content landing page) | 6 | $3,600 | -57% |
| Self-reported (“an article” or “Google search”) | 9 | $5,400 | -35% |
| First touch (first visit landed on content) | 14 | $8,400 | +1% |
The honest summary for this firm’s first year is “between -57% and roughly break-even, with the true figure most likely in the middle.” That’s a weak result if you stop there. It looks different once you check two other things.
First, look at the cost per enquiry. $8,350 divided by 14 first-touch enquiries is about $596 each. If the firm pays more than that per enquiry through ads or directories, content is competitive even in year one. Second, look at the trend. If non-branded impressions and clicks are still rising in Search Console, the same ten articles will keep producing enquiries next year, when the only new cost is refresh time. Year-one ROI on content usually looks worse than lifetime ROI, so make decisions on the trend and the cost per enquiry, not on the first-year percentage alone.
Judge each layer on its own timeline. A page that isn’t indexed after a few weeks has a problem now. A page with no enquiries after a few weeks doesn’t. A sensible review rhythm for a small site:
| Time since publishing | Check | Act if |
|---|---|---|
| 1-4 weeks | Indexed (URL Inspection) | Not indexed: check for technical issues, duplication or thin content |
| 1-3 months | Impressions and queries | No impressions at all: the topic or intent match may be wrong |
| 3-6 months | Clicks, position, engaged sessions | Impressions but almost no clicks: improve the title and description |
| 6-12 months | Key events, all three attribution views | Traffic but no actions: improve the path to your service pages |
These are working review points, not promises about how fast Google ranks anything. Competitive topics take longer, and some pages never rank no matter how long you wait. That’s what the review is for.
The scorecard only pays for itself if it changes what you do next quarter. Each pattern points to a specific decision:
Local businesses should also check the Countries filter in Search Console. If a guide earns impressions in cities you don’t serve, it may need a stronger local angle. 4GoodHosting’s post on creating localized content for SEO covers how to tailor topics to the areas you actually serve.
Measurement depends on the site being up and the tags firing. Content can’t earn anything while the site is down. Downtime during a promotion leaves gaps in both your traffic and your reports, and server errors can show up in Search Console’s Page indexing report as pages Google couldn’t fetch. Check that report quarterly as part of your scorecard, and set up uptime monitoring if you don’t have it already.
If you’d rather hand the reporting to someone else, 4GoodHosting offers SEO services built around a tailored strategy, local search expertise and weekly reporting. The page asks you to describe your website, audience and goals so the team can quote an agreed scope of work, and it states that search rankings can’t be promised for a particular position. That’s a sensible expectation to bring to any SEO or content provider.
There’s no reliable universal benchmark, because businesses calculate costs and attribution so differently. A more useful test is whether your cost per qualified enquiry from content is lower than from your other channels, and whether non-branded search visibility is still growing. If both are true, content is working even if the first-year percentage is negative.
Visibility can show within weeks of indexing, but enquiries usually take months, and competitive topics take longer. Judge new content on indexing and impressions in the first quarter, and on key events after six to twelve months.
Partly. Search Console shows visibility and clicks, and a “How did you hear about us?” field captures self-reported results. Without an analytics tool, though, you can’t see which pages lead to enquiries, so you’ll have to rely on what customers tell you.
Yes. If you leave it out, your ROI looks better than it is, and you can’t compare writing in-house with hiring a freelancer. Use a realistic hourly value for your time.
Track how often sales and support staff send a particular article to prospects or customers, and ask new clients which resources they read before buying. For this kind of content, a few “your guide answered my question” comments can matter more than traffic figures.
No, but it makes it less precise. Google counts AI Overview and AI Mode appearances in Search Console’s normal web totals, and its Generative AI performance report shows which pages earn those impressions. Other assistants show up as referrals or in self-reported answers. Combine those signals and report a range.
About the author: This article was written by the team at 4GoodHosting, a Canadian web hosting company operating since 2002 with servers in Vancouver and Toronto.





