: How can I stop search engines from crawling tel links? 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
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>
More posts by @Carla537
4 Comments
Sorted by latest first Latest Oldest Best
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...
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.
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.
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 javascript disabled just the html span will load in plain text and look like this:
Viewing the source will show this:
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
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.