We use a custom CMS on a site and we're having various parameters on inbound links for own tracking and inbound marketing purposes.

Usually these URL parameters are added to the links so the system could collect stats about where exactly which links were clicked, how often, and so on.

If the same link appears on different spots on the site, line in an article, in a sidebar, in footer, in "recommended" section and so on, it would have different parameters in each of these spots, similar to these:

Later, by having the stats, dynamically, we can better interlink the site, and give better article recommendations to the users, etc.

However, this technique causes issues with crawl budget from search engines, as there are many different URL parameters (and their multiple combinations) each URL could have, and even, if the pages have canonical tags, spiders still waste a lot of crawl budget on countless "non-original" URLs instead of crawling just canonical versions.

Question: What are some other ways of having all this inner tracking/gathering of click data for inbound marketing purposes happening, but without the use of URL parameters? How else can we collect link clicking data like before, besides via URL parameters?

The main goal is to have clean canonical URLs without parameters to preserve crawl budget (and have correct page rank flow), but at the same time collect the click data for our needs.

4 Answers 4


This is my 2 cents, but to preserve crawl budget and page authority I would utilize Json breadcrumbs. Another way to add differentiating clicks is to add a google analytics tracking event. From the code below, you're sending an even when your link is clicked and the label is 'page1.html'. You don't need to use javascript either.

    <a href="page1.html" onClick="clickone()">Anchor Text </a>

function clickone(){
ga ('send', 'event', 'internal-link', 'click', 'page1.html')

I really only use url building for external link campaigns, but that's me. Hope this helps.

  • GA events won't add any data to our CMS, it would only impact analytics, so it's not a solution I was asking. Breadcrumbs is also a suggestion that falls out of my question. The question was how to gather the click data for our inner CMS click tracking without use of URL parameters.
    – CamSpy
    Commented May 16, 2016 at 7:00
  • This might be a little out of the box, but have you considered using URL shorteners, you can customize those so that you are able to read what they are. I recommend bit.ly or goo.gl. Commented May 20, 2016 at 4:30
  • It's not an option, sorry. We can't use inbound links inside of our site to be third-party shortened ones.
    – CamSpy
    Commented May 20, 2016 at 14:11
  • What CMS are you using? Commented May 26, 2016 at 9:23
  • Oour own custom made CMS
    – CamSpy
    Commented May 27, 2016 at 8:32

Create an array using PHP Session variables that add a new page with each new internal click. On an external click add the array to a text file.


I would start by writing a click counter that store number of clicks in text file with the links id, class, href, title. Here's were I would start: https://stackoverflow.com/questions/26891603/button-click-counter-save-number

Actually if you write to an xml file you can have it display on a digital report.


The more or less standard way of managing traffic sources is using UTM parameters instead of your own custom parameters. UTM parameters are recognised as dimensions to track traffic sources by all the main analytics packages, including Google Analytics, Yandex Metrica, Piwik and many others.

There's many tools to produce and standardise UTM parameters. The most known one is Google's campaign URL builder.

To track clicks in links to other sites many people use events triggered by Javascript in the page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.