Content Marketing Analytics: Conversion Rate by Page

While Google Analytics provides many reports and metrics designed to evaluate the effectiveness of content marketing, there is no report showing the conversion rates of specific posts or pages on your site. For example, if you're tracking registrations on your site, you may want to know which specific posts are associated with signups, even if those posts weren't the first page of the visit. This post will provide an advanced tracking method for valuing content in Google Analytics, showing the percent of sessions that viewed a page that ended up reaching a goal.


First, a little background to explain why Google doesn't provide a page conversion rate out of the box.

In short, it's about scope. Google Analytics calculates goal conversion rate as (goal completions) / (sessions), which are both session-scoped (counted just once per session). This "sessions" metric can be broken down to show, for example, sessions by medium, sessions by device type, etc., but it must be a session-scoped metric for the calculation to make sense.  This screenshot shows an example of a standard goal conversion report: the Landing Page report. It works because Landing Pages are session-scoped, since there is only one landing page per session.


A non-landing page, on the other hand, is not session-scoped, so you can't combine it with the goal conversions metric.  A session contains multiple pageviews, and (goal completions) / (pages) isn't a valid combination in GA's data model. There's a good reason for that -- if GA did show conversions by page, the sum of those conversions would be more than the total sum of conversions, since a single conversion would be attributed to multiple pages. That's why the All Pages report doesn't contain the Sessions metric or any kind of conversion rate.



The easiest workaround to address this is to create a segment on the page of interest, like this:


By adding the page URL into a segment, it shows you the number of sessions that viewed that page, and thereby 'converts' it into a session-scoped metric. Once you apply your segment, navigate to the Conversions > Goals > Overview report to view the goal conversion rate of sessions that viewed your page.


This is a fine solution for when you just want to view conversion rates of a single page, but is impractical if you have more than a handful of pages to analyze.


For a more convenient solution, you can instead implement a session-scoped custom dimension in GA that gets set to 'True' every time the conversion action is completed. Because it's session scoped, the value will be applied to every tracked interaction and pageview that occurred within the session. That means that as long as your user completes the conversion action just once, every pageview in their session will have an associated custom dimension of 'True'. This dimension can then be accessed in a custom report or via the Secondary Dimension pull-down menu.


Below is one method of implementing this setup via Google Tag Manager:

  1. Enter GA and go to Admin > Property > Custom Definitions > Custom Dimensions > +New Custom Dimension and fill out the name for your variable, e.g. 'Registered' or 'Completed Contact Form'.  Choose Session scope and click Create. Note the index number assigned by Google.
  2. in Google Tag Manager, navigate in GTM to Variables > User-Defined Variables > New > Variable Configuration > Choose variable type = Custom Javascript and enter this script:
    function() {
        var str = {{Page Path}}        
    	if ("goal_complete_url") >0) {
        return goalComplete;

    This script would return True if the user visits the URL containing 'goal_completion_url', nothing otherwise. (This is to avoid overwriting the variable if a visitor views a non-conversion page after a conversion, since custom dimensions take on the final value in a session).

    Make sure to test the script on your own site and alter the "goal_complete_url" value to match your own site URLs. Alternately you could have your developers push a value to the data layer when the goal conversion completes, and pick up the value in a Data Layer Variable instead. Following that, you'd proceed the same way.

  3. Still in GTM, find your pageview tag or, if you're using it, the GA Settings Variable. Either way, navigate to More Settings > Custom Dimensions. Under the Index field, enter the index number that was assigned in step 1. Under the Dimension Value field, enter the Variable from step 2.


Once you've set up the above, navigate to Behavior > Site Content > All Pages and choose Secondary Dimension = your goal. This is what the report will look like.


For each URL, it shows a 'True' if it was viewed in the same session as a conversion, across all sessions in your selected time period. The Unique Pageviews metric shows the number of sessions where this occurred. If the URL was not viewed in the same session as a conversion in this time period, it won't appear at all.

Step 1: Download as csv or export this table to Google Sheets. This will be your Conversions Table.

Step 2: Now click the X to remove your Secondary Dimension and repeat the export for ALL the pages data.  This will be your All Pages Table.

Step 3: Create a new column in your All Pages Table that pulls in the unique pageviews count from your Conversions Table with a VLookup formula like this:

=IFERROR(VLOOKUP(A2,'Conversions Table'!A:D,4,FALSE),0)

Divide unique pageviews that converted (column C, which uses the vlookup formula) by total unique pageviews (column B) to get the Goal Conversion Rate per page, as shown below in column D.


❓ We use unique pageviews as this metric shows how many sessions contained a page view of a particular page, and therefore can be substituted for the sessions metric when calculating a conversion rate.


This post shows a unique method of content analytics measurement that tracks conversion rates per page in Google Analytics, whether or not that page is a landing page. The end result is allows you to view and compare which pages on your site are effectively leading to conversions.

9 thoughts on “Content Marketing Analytics: Conversion Rate by Page”

  1. Love it! The understanding of scope is sth that many beginners are struggling with. This concise tutorial puts this theory into a useful case.

    • Hey Brian, I’d just use a segment if you’re just checking on a handful of pages in an ad-hoc manner. Then you don't need to implement anything, and it's totally flexible and easy to set up. If you want to see analyze a lot of pages for conversions, though, then it makes more sense to implement some kind of advanced tracking.  

      • Thanks Ana.
        As a ball park what would you describe as a handful of pages? I'd be thinking a quarterly review of 10 to 15 key pages. Appreciate your response.

      • It's really a decision on your end, to weigh the setup and planning time of implementing new code vs. the manual work of setting up individual segments. If it's just 10, then it probably only takes you about 45 mins to create and view your segments, so that could be your baseline for comparison.
        Also, since I'm not sure of your reporting requirements, it's totally possible there are better / simpler solutions than those mentioned above. For example, in many cases it's good enough to look at the landing pages report or the Page Value metric, and neither of those require any extra work at all.

  2. Ana,

    How would you compare this method w/ using the Reverse Goal Path report to see the pages that led to conversion?



    • Hey Ryan! The reverse goal path report shows you the 3-4 pages immediately before the goal, this report is intended to show you the contribution of all pages regardless of where they were in the flow.

Comments are closed.