7

I have a site that has a call now button for mobile device to directly dial from the site. This works fine, but I am getting errors on my SEO reporting tool. It is throwing errors for every page that has this code on it. Basically it looks like the crawlers are crawling the link with the href="tel:18005559000" and treating it like a relative link and tagging it onto the end of the current page URL, and then it throws a 404 error.

There are a lot of pages on our site that have this button, so there are a lot of errors and I fear this is dragging down my SEO. Is there anyway to mask the href="tel:18005559000" links from bots and crawlers?

<span itemprop="telephone">
  <a href="tel:18005559000" rel="nofollow"><button>Call Today</button></a>
</span>
8

There's nothing to fix here. These are false alarms.

"I fear this is dragging down my SEO" -- no. SEO is defined by what Google actually does, not what some broken SEO reporting tool made by a third party says.

The tool is broken. It's claiming Google has problems with Tel: links, when that is not true. I'm pretty sure Google knows how to handle Tel: links.

If you optimize your site to satisfy a bad analysis tool, at best this will have no effect, and at worst it will harm your actual ranking. Of course if you have a technically ignorant boss who measures your work by that tool, then yeah, optimize for the tool...

| improve this answer | |
  • Yeah, I figured Google is not dumb enough to do that with tel: links. But the higher ups see that tool as Gospel so I have to optimize for it. – Lazerbrains Apr 1 '16 at 20:15
  • 1
    Had a hunch. Best you can do is report the bug to maker and bosses. – Harper - Reinstate Monica Apr 1 '16 at 21:34
4

Okay. The reason I asked this question is for SEO purposes. On a quick scan using SEO crawler software (in this instance BrightEdge). We were scoring fairly low due to the abundance of 404 errors we were getting. This was due to the crawlers trying to follow the href="tel:5552234" links. It was treating them as relative links and thus resulting in 404 errors. For instance, it would try to follow the link by adding it to the end of the URL.http://www.example.com/tel:5552234 Thus resulting in a 404 error for every page these links were on. In my case it was on nearly every page. I tried using rel="nofollow" in the link and that didn't help.


The Solution: Change the href link to a javascript onclick. Basically, I had the href on a button. So I just took the href off and scripted the button like this:

<span itemprop="telephone"><button onclick="window.location.href='tel:18005559000'">Toll-Free</button></span> 

That solved the problem and stopped the crawlers from following it and now I get not 404 errors on an SEO scan.

| improve this answer | |
  • 1
    Of course, this only clears the BrightEdge errors, it does not help your Google ranking, could actually hurt. – Harper - Reinstate Monica Apr 1 '16 at 19:31
2

Not sure if this is the best method but you could obscure the link using javascript. I've mainly used this method to obscure "mailto" links or email addresses but it should work for you in this case as well. The HTML link would not be visible in the page source. The user would also have to have javascript enabled otherwise they would only see the text and not the button.


Example

CSS

#obscure b {
display:none;
}

HTML

<span id="obscure">Call Today:18005559000</span>

JS

var s="=tqbo!jufnqspq>#ufmfqipof#?=b!isfg>#ufm;2911666:111#!sfm>#opgpmmpx#?=cvuupo?Dbmm!Upebz=0cvuupo?=0b?=0tqbo?";m="";for(i=0; i<s.length; i++)m+=String.fromCharCode(s.charCodeAt(i)-1);document.getElementById('obscure').innerHTML=(m);


Output

With javascript enabled the button will load and when clicked will go to the tel: link.

With JS enabled

With javascript disabled just the html span will load in plain text and look like this:

With JS disabled

Viewing the source will show this:

View Source


Any HTML obscurer can be used but in this example I have used the following tool - Here

You can view this example live (using jsfiddle) Here

| improve this answer | |
2

You could disallow crawling using robots.txt. I'm not sure exactly what the request is looking like. I'm guessing the crawlers are requesting one of the following documents because they think the links are somehow relative to your server:

  • /tel:18005559000
  • /18005559000

You could disallow both by placing the following lines in robots.txt:

User-agent: *
Disallow: /tel
Disallow: /1800

Search engine crawlers like Googlebot are not going to need these rules. Googlebot already knows not to try to fetch tel: links from your site. It recognizes the protocol and knows not to even try. Other less sophisticated crawlers are going to be the ones that have issues.

| improve this answer | |
  • 1
    Yeah, these are dumb crawlers that don't parse for protocol:, they just assume anything not starting with http: is a relative path. – Harper - Reinstate Monica Apr 1 '16 at 19:30
  • Googlebot knows not to crawl tel: links. Other less sophisticated crawlers are going to be the ones having problems. It sounds like the person asking the question was using an SEO site scanner from BrightEdge. – Stephen Ostermiller Apr 1 '16 at 19:31
  • Yes it was BrightEdge that was throwing the errors. I just want to make sure we are as optimized for SEO as possible. I figure if that software is throwing me errors then other dumb crawlers could be too. The problem is now fixed using javascript onclick links there. But I will try the modifications to the robots.txt file and see if that does the job as well. (for future reference) – Lazerbrains Apr 1 '16 at 20:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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