Finding A Possible Cause of Lost Traffic

Finding a Potential Cause of Lost Traffic Featured Image

One of my biggest struggles over the past year or so has been building up traffic. To be honest, I’ve tried just about everything just to build up a nice portfolio of posts, but the traffic just continues to decline.

Then, I had an epiphany recently. What if my syndicated content was outranking my canonical content? And, it turns out I was right! One of the websites that I post my content to was beating out my own site in Google ranking, so I decided to investigate.

In the remainder of this article, I’ll go over some of the preliminary findings. Then, I plan to talk about the changes I’ve made that will hopefully start driving more traffic to the site. Of course, we’ll see!

Table of Contents

Data Collection

To kick off my investigation, I decided to look at every article I syndicated to see which articles were ranking under my website (i.e. The Renegade Coder) and which were ranking on the other site.

To do that, I created the following table which tracks information like when the article was published, what query I used to verify which article is ranking, when the article was syndicated, and whether or not the article was ranking for the correct website. For reference, I started collecting data on June 23rd, 2020.

ArticleDate PublishedDate SyndicatedValid Rank
How to Loop Over a Dictionary (queryOpens in a new tab.)06/12/202006/19/2020true
How to Split a String by Whitespace (queryOpens in a new tab.)04/17/202004/24/2020true
How to Convert a String to Lowercase in Python (queryOpens in a new tab.)03/30/202004/01/2020false
How to Round a Number in Python (queryOpens in a new tab.)03/23/202003/27/2020true
How to Create a List in Python (queryOpens in a new tab.)03/16/202003/19/2020true
How to Compute Absolute Value in Python (queryOpens in a new tab.)03/13/202003/17/2020true
How to Obfuscate Code in Python (queryOpens in a new tab.)03/09/202003/16/2020false
How to Increment a Number in Python (queryOpens in a new tab.)03/06/202003/11/2020false
How to Brute Force Sort a List in Python (queryOpens in a new tab.)03/02/202003/06/2020true
Image Titler 1.5.2 Supports Logo Insertion (queryOpens in a new tab.)02/07/202003/05/2020true
How to Clean Up WordPress Tags (queryOpens in a new tab.)02/10/202003/04/2020true
How to Compare Strings in Python (queryOpens in a new tab.)02/14/202002/25/2020true
How to Write a Loop in Python (queryOpens in a new tab.)01/27/202001/30/2020true
How to Comment Code in Python (queryOpens in a new tab.)01/17/202001/21/2020false
8 Coolest Python Programming Language Features (queryOpens in a new tab.)01/13/202001/16/2020false
How to Check if a String Contains a Substring in Python (queryOpens in a new tab.)01/06/202001/15/2020false
How to Add an Item to a List in Python (queryOpens in a new tab.)01/10/202001/14/2020false
How to Perform a Reverse Dictionary Lookup in Python (queryOpens in a new tab.)01/03/202001/10/2020false
71 Python Code Snippets for Everyday Problems (queryOpens in a new tab.)12/27/201901/09/2020false
How to Performance Test Python Code (queryOpens in a new tab.)12/02/201912/10/2019false
The Controversy Behind The Walrus Operator in Python (queryOpens in a new tab.)11/08/201911/25/2019true
How to Print on the Same Line in Python (queryOpens in a new tab.)09/13/202009/16/2019true
How to Format a String in Python (queryOpens in a new tab.)09/06/201909/10/2019false

Right off the bat, we can see that I’m getting pretty shafted. Of the 23 articles syndicated, nearly half (11) were ranking for the wrong site! In the next section, we’ll take a look at what I’m doing to rectify this issue.

The Lack of Canonical Tags

After I generated this table, I really questioned whether or not syndication made sense. At this point, I’m not sure if it does. That said, I figured there was some way I could make this right. After all, I post to DEV all the timeOpens in a new tab., and I don’t have any issues with those posts outranking The Renegade Coder. So, what gives?

As it turns out, the other site wasn’t properly syndicating my articles. Sure, they credited me just fine. In fact, they even linked the original article at the bottom of each post. However, they weren’t properly tagging the post with the `rel=canonical`html.

As a result, Google is forced to decide which piece of content is the original. Naturally, this depends on a lot of factors, but the fact that their website is much bigger and more established probably plays a role. Even with the link back to my site, Google still felt the other site was giving a better experience, so they chose that content as the original.

Now, this frustrates me for a couple reasons. For one, if I ever decide to update the original content, the changes will never be reflected on Google. In other words, the people who find my article through Google will never benefit from those changes.

Likewise, I’m obviously losing traffic to my own site. As a result, my site never grows in authority. In addition, I can’t leverage any of that traffic to build my PatreonOpens in a new tab., newsletter, or YouTube channelOpens in a new tab., nor can I try to siphon that traffic off to other useful content. Hell, I can’t even put up ads or use web monetization because people just aren’t coming to MY website.

Again, the whole point of syndicating content is to provide another site with some content in exchange for an expanded audience—no more, no less. I get to put my content in front of more eyes, and they get some free content for their audience. If somehow that syndicated content becomes the “original” to Google, it sort of feels like you’re being robbed.

Fortunately, there’s a solution: just use the damn canonical tag!Opens in a new tab.

The Waiting Game

Once I realized my articles weren’t ranking for my site, I decided to reach out to my syndication contact. Here’s what I said (with typos and everything):

I’m currently syndicating my content to your sites. For a while, this has brought me a lot of value. However, I’m finding that some of my articles are getting ranked from your sites rather than mine. For example, I wrote an article titled “How to Increment a Number in Python”. If I search for that query, your site shows up.

Now, this isn’t inherently a problem because most of the embedded links still point to my site. However, I am bothered that I can’t update the content on your sites. For instance, if I decide to add an additional solution to my increment article, your readers will never see (and it’s likely that neither will mine).

As a result, I have a request: is there any chance I could get the canonical URLs on your site to point to my site. This was a request I made when we started working together, but I haven’t seen it play out in reality. If not, I’d kindly ask that we break our arrangement, so future articles won’t end up ranking incorrectly.

Jeremy Grifski, June 23rd, 2020 @ 1:23 AM

Luckily for me, they responded rather quickly with the issue resolved. Now, I’m stuck waiting to see if the new canonical links will resolve any issues on Google. Of course, we’ll just have to wait and see.

Right now, my plan is to check the URLs using the queries in the table above every day or so until I see my site updated. My worry is that this will take a long time. In the worst case scenario, nothing will happen. That said, I’m hopeful.

If I do see some changes, I’m planning to release a follow up article that covers this issue in more detail. Specifically, I want to answer the question: how long does it take for a canonical tag to take effect? Of course, I’m also interested in other thinks like the effect that publish date and syndication date have on Google rank—among other things.

In the meantime, of course, I’d love it if you took some time to support the site. Here’s a nice list of ways you can do just that. Naturally, it includes a lot of the things you’d expect like my Patreon and newsletter.

Likewise, here are some related articles which talk about some of my website statistics:

Otherwise, enjoy the rest of you day/night! I appreciate you stopping by. It really helps the site a lot.

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Today, he pursues a PhD in Engineering Education in order to ultimately land a teaching gig. In his spare time, Jeremy enjoys spending time with his wife, playing Overwatch and Phantasy Star Online 2, practicing trombone, watching Penguins hockey, and traveling the world.

Recent Posts