Content Marketing ROI: How Small Businesses Measure What Their Content Earns

date icon
date icon

Flat illustration of a content article feeding into a dashboard with a bar chart, a funnel and a dollar coin, representing measuring content marketing ROI

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.

What does content marketing ROI mean for a small business?

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.

How do you count the full cost of content?

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.

How do you put a dollar value on an enquiry?

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:

  • Contact or quote form submitted (track the thank-you page or the form’s submit event)
  • Click on a phone number or email link
  • Booking or appointment confirmed
  • Newsletter sign-up
  • Purchase, for stores

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.

What should a content marketing scorecard measure?

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.

How do you set up content measurement in one afternoon?

You can set up a working measurement system with free tools in a few hours. Do these steps once, in order:

  1. Verify a Domain property in Search Console. A Domain property covers every subdomain and both http and https versions. The branded queries filter isn’t available for URL-prefix properties limited to a path, such as a /blog/ folder.
  2. Link GA4 to Search Console. The integration adds organic search reports to GA4. The Search Console report collection is unpublished by default, so publish it from the Library in GA4.
  3. Mark your key events. Create or mark the four or five actions you chose above, and test each one by submitting your own form.
  4. Raise GA4 data retention to 14 months. The standard GA4 options are 2 months or 14 months. The setting doesn’t affect standard reports, but it does limit Explorations, which you need for path and first-touch analysis.
  5. Add a “How did you hear about us?” field. Make it a short dropdown with an “Other” text box. Include options such as “Google search”, “An article on your site”, “AI assistant (ChatGPT, Gemini, etc.)”, “Referral” and “Social media”.
  6. Agree a UTM naming convention. Use it on every link you share outside your site (see the distribution section below).
  7. Start an archive. Search Console keeps 16 months of performance data, and GA4’s Search Console reports inherit that limit. Export the Performance report monthly, or use the Search Console API if you’re comfortable with a script, so you can compare full years later.
  8. Create the scorecard sheet. One tab per month, one row per content piece, with the metrics from the table above and the content cost per piece.

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.

Attribution: how do you give content fair credit?

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:

  • Floor (last click): key events where a content page was the session’s landing page. This is the most conservative figure.
  • First touch: key events from users whose first visit landed on content. This is the most generous figure.
  • Self-reported: enquiries where the customer said an article, Google search or an AI assistant brought them. This is a human cross-check on the other two.

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.

How do you measure content distribution channels?

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 email backup-guide-2026
LinkedIn company post linkedin 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:

  • Email: judge newsletters on clicks and key events, not opens. Apple’s Mail Privacy Protection prevents senders from seeing whether a message was opened, so open rates are unreliable. In Canada, commercial email also falls under Canada’s anti-spam legislation (CASL), so grow the list with consent rather than buying one. If you run your newsletter from WordPress, 4GoodHosting has a roundup of WordPress newsletter plugins that can help with the setup.
  • Social: posts without a link can’t produce a tagged visit. Count them as awareness, and use the self-reported field to catch their effect.
  • Partners and associations: these often send few visitors with high intent. Look at key events per visit rather than raw traffic before you drop one.

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.

How do you measure visibility in AI search?

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:

  • Referral traffic in GA4. When someone clicks a cited link in an assistant’s answer, the visit can show up as a referral from the assistant’s domain. Check GA4’s Traffic acquisition report by session source, and look for assistant domains such as chatgpt.com or perplexity.ai.
  • Self-reported answers. The “AI assistant” option on your enquiry form catches people who read a recommendation and then searched for you by name, which no analytics tool will attribute correctly.

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.

How do Canadian privacy rules affect your content metrics?

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:

  • GA4 numbers will be lower than real visits where consent is declined. Google’s consent mode can send cookieless pings and use modelling to fill some of the gap when it’s set up in advanced mode. Modelled data is an estimate, so label it as one in your reports.
  • Search Console isn’t affected by your cookie banner. It reports clicks and impressions from Google’s side, so it’s your most consistent trend line over time.
  • Self-reported source data isn’t affected by cookies at all, which is another reason to collect it.

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.

A worked example: calculating content marketing ROI as a range

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.

How long should you wait before judging a piece of content?

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.

How do you turn the numbers into your next content plan?

The scorecard only pays for itself if it changes what you do next quarter. Each pattern points to a specific decision:

  • High impressions, low clicks: the page is visible but not chosen. Rework the title and meta description to match what searchers want.
  • Average position around 8 to 20 for a valuable query: the page is close. Refreshing and expanding it is usually cheaper than writing a new one.
  • Good traffic, no key events: the content attracts readers but doesn’t lead anywhere. Add a relevant next step and links to the matching service page. p4e’s guide to improving conversion rate has ideas for that path.
  • Indexed, six months old, almost no impressions: consolidate the page into a stronger related page, or rethink the topic.
  • Queries you appear for without a matching page: these are your next topics. Filter Search Console to non-branded queries, sort by impressions, and look for questions your existing pages only answer in passing.
  • A channel that produces nothing in tagged or self-reported data: reduce it, and move the hours to the channel that does.

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.

Where does your website and hosting fit in?

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.

Frequently asked questions

What is a good ROI for content marketing?

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.

How long does content marketing take to show ROI?

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.

Can I measure content marketing ROI without GA4?

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.

Should I count my own time as a content cost?

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.

How do I measure content that helps close sales but doesn’t attract traffic?

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.

Does AI search make content marketing ROI impossible to measure?

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.

Key takeaways

  • Use the full formula. ROI = (value attributed – total cost) / total cost, and the cost includes your own hours, tools, distribution and maintenance.
  • Value the actions first. Set a lead value from your own average customer value and close rate before calculating anything.
  • Measure three layers. Visibility in Search Console, engagement and key events in GA4, and business results from your form or CRM.
  • Report a range. Last click, first touch and self-reported views together are more honest than any single attribution model.
  • Tag every outside link. Consistent UTM parameters show which distribution channels earn their time.
  • Expect privacy gaps. Consent rules, including Quebec’s opt-in requirement, mean GA4 undercounts; Search Console and self-reported data fill the gap.
  • Act on the patterns. Refresh near-misses, fix pages that get traffic but no actions, and write next about queries you already appear for.

Sources

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.

Related Posts

post
date icon
date icon
Free web hosting for charities in Canada is available, but usually only to CRA-registered charities, and free plans have limits. 4GoodHosting’s free charity plan includes 1 GB of storage, 1,000 GB of transfer, one email account and cPanel....
post
date icon
date icon
Short answer: Selling online in Canada takes three bits of setup most store owners leave too late. First, register for sales tax when you have to and charge the rate for where each order is delivered, not where...
post
date icon
date icon
Short answer: To migrate WordPress to a new host without downtime, keep the old site running while you build an exact copy on the new server. Test that copy through your computer’s hosts file so the site’s URLs...
post
date icon
date icon
Short answer: If your Google Business Profile is suspended, don’t create a new profile, and don’t appeal straight away. First find which policy you broke by opening Google’s Business Profile appeals tool, which shows the decision, the reason...
post
date icon
date icon
Short answer: Here’s what to do when your website is down: first confirm it’s down for everyone, not just your computer. Then read the exact error to work out which layer failed: the domain, DNS, the security certificate,...
post
date icon
date icon
Short answer: Lead form optimization means fixing every point where an enquiry can be lost, not just the form’s design. A contact or quote form can lose a lead in six places: the questions it asks, how hard...
© 2026 p4e.ca. All rights reserved.