Phone Call Tracking Basics for Maintaining Local Search Data Integrity

Search Snippets #6: Local Search
Search Snippets #6: Local Search

The topic of Call Tracking came up at our recent Local Search event, and in particular it’s relation to data consistency with your NAP (business name, address and phone number). It surprised me that there is still a lot of mystery and confusion surrounding tracking telephone calls. Especially about when and where to use phone tracking, how to do it properly, and how to not confuse Google and other NAP data providers that will disrupt your business listings in the local search ecosystem.

Local Search Ecosystem by
Local Search Ecosystem by David Mihm

As we’ve been using call tracking to effectively measure our digital marketing campaigns for a couple of years, I thought it would be a good idea to try and shed a little more light on how we approach it. So with that, here are a few things I’d like you to know:

1. Website Call Tracking Only

It’s best to only use call tracking on your, or client’s, website. Never for a directory, citation or yellow page listing as that will cause NAP confusion within the local search ecosystem and likely lead to your business not getting credit for all of it’s citations.

2. Use a “No Script” Tag

Call Tracking solutions are often powered by Javascript. Because of this we use a No Script tag in combination with the javascript so that there is an official NAP friendly phone number listed in the code of the site that is indexable. The No Script code looks like this:


NOSCRIPT is a World Wide Web Consortium (W3C) recommended script that “allows authors to provide alternate content when a script is not executed”. It is for visitors, spiders and user-agents who visit the site with an old browser, have java script turned off and/or are unable to activate the script. They will now be able to read a phone number if the java script does not load.

3. Consistent Sitewide Footer NAPs

So much of the call tracking angst that I’ve heard is from worrying about whether or not search engines will index the official business phone number or the tracked number. To compensate for this we make sure that the official business phone number and address are listed in the footer section of every page of the website. No call tracking numbers are used here. By establishing a repetitive and consistent NAP signal we are able to reduce and eliminate NAP confusion.

As an example, you can see from the footer, that the address and phone number is consistently carried across the site.

MnSearchFooter NAP

4. Use Schemas to Send a Clear NAP Signal

One of the little talked about schemas for local businesses is the Telephone itemprop. This piece of microdata is intended to be the spoon that feeds the engines you business phone number. Since Schemas are used by Google, Microsoft, Yandex and Yahoo, you can send them another great signal in the structured data markup form that they will be looking for.

To use it correctly, just add itemprop=”telephone” to the html source code of your phone numbers. It’s usually added to a Span tag like this:

<span itemprop=”telephone”>(612) 567-2736 </span>

5. Mobile Click-To-Call Tracking with Google Analytics

One of the easiest and cheapest forms of call tracking is for mobile phones. Most smartphones have the ability to click a phone number and start dialing. It is this function, when combined with a little coding, that you can set up your mobile web pages to trigger the call and analytics conversion tracking at the same time. This form of mobile initiated tracking will give you more analytics visitor data than many call tracking solutions and it’s also NAP friendly.

To set it up correctly, you’ll 1st need to make your phone numbers clickable links with an href=”tel:PHONE-NUMBER-HERE” attribute and should look like this:

<a href=”tel:6125672736″ >CALL: 612-567-2736</a>

The next step will be to add an “On Click” function onClick=”_gaq.push([‘_trackPageview’, ‘/VIRTUAL-URL-HERE’]);” that will trigger a virtual pageview in Google Analytics for the virtual URL that you are creating. This virtual pageview can be tracked as a Goal in GA.

The onClick Virtual URL coding should look something like this:

onClick=”_gaq.push([‘_trackPageview’, ‘/conversion-path/mobile-phone-call’]);”

Once you put it all together, the final code will end up like this:

<a href=”tel:6125672736″ onClick=”_gaq.push([‘_trackPageview’, ‘/conversion-path/mobile-phone-call’]);”>CALL: 612-567-2736</a>

Here is a live working version: CALL: 612-567-2736

The last step will be to set up a a goal in Google Analytics to track your mobile call conversions. Since you just created a virtual pageview, you can use the virtual URL to act as the trigger for a pageview goal.

Call tracking can be done safely. Now that you understand how you can use it in a NAP friendly manner there should be little reason not to use it for your websites. It will provide you a clearer picture of the leads and sales that you are generating from your online marketing.

Further Reading

The recent A Guide to Call Tracking and Local Search from Mike Blumenthal.
The really recent Why Call Tracking Numbers in Local SEO Make Me Angry from Will Scott.
And an oldie but goodie: Be Wary Of Call Tracking Numbers In Local Search from David Mihm.


James Svoboda, MnSearch Co-founder, WebRanking CEO, Marketing Land contributor, Which Test Won board advisor, and husband & father in Eden Prairie, MN. You can connect with me on Google+, LinkedIn and Twitter.

8 thoughts on “Phone Call Tracking Basics for Maintaining Local Search Data Integrity”

  1. Paul Kragthorpe

    For tracking, you could also use Event Tracking rather than tracking as a Virtual Pageview. If you wanted to track it as an event, you may choose to code it like this: onClick=”_gaq.push([‘_trackEvent’, ‘Call Tracking’, ‘Clicked’, ‘Mobile Call’]);”

    This is just another option, either way works fine.

    1. This is a much better solution then a virtual Pageview and one we use currently. It maintains your high level aggregate Pageview data while still allowing you to track clicks to call. You can also assign a monetary value to the event for an even deeper level of nuance.

  2. Paul Kragthorpe

    For tracking, you could also use Event Tracking rather than tracking as a Virtual Pageview. If you wanted to track it as an event, you may choose to code it like this: onClick=”_gaq.push([‘_trackEvent’, ‘Call Tracking’, ‘Clicked’, ‘Mobile Call’]);”

    This is just another option, either way works fine.

  3. Smart stuff James. I like what you said here. The only thing I am hesitant about is #3. Even though the number is small and in the footer, if a user does see it and calls that number we won’t be able to track the lead source. Have you found that the advantage outweighs the disadvantage?

    1. Hi Jenny,

      To answer your question directly, yes, the advantages outweigh the lack of call tracking for callers who find the number in the footer. If you place your call tracking javascript up higher on your pages where visitors will see thee phone number more often, then the tracking numbers will be used quite a bit more than the footer numbers. I’d estimate that 95% to 99% of callers will use the call tracking numbers if placed high up.

  4. Hi Paul. Great article. Being a digital agency owner and call tracking platform founder, I have been working with these concepts for many years as well. An additional concept besides handling we allow is a wp plugin with short codes to change numbers vs JS for those worried about nap.

Leave a Comment

Your email address will not be published. Required fields are marked *