web-dev-qa-db-ja.com

検索エンジンがtelリンクをクロールしないようにするにはどうすればよいですか?

モバイルデバイスがサイトから直接ダイヤルするための[今すぐ通話]ボタンがあるサイトがあります。これは正常に機能しますが、SEOレポートツールでエラーが発生します。このコードを含むすべてのページに対してエラーをスローしています。基本的には、クローラーがhref="tel:18005559000"を使用してリンクをクロールし、それを相対リンクのように処理し、現在のページURLの末尾にタグ付けすると、404エラーがスローされます。

私たちのサイトにはこのボタンがあるページがたくさんあるので、多くのエラーがあり、これが私のSEOを引き下げているのではないかと心配しています。とにかくボットやクローラーからのhref="tel:18005559000"リンクをマスクする方法はありますか?

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

ここで修正するものはありません。これらは誤報です。

「これが私のSEOを引き下げているのではないかと心配しています」-いいえ。 SEOは、Google 実際にが行うことによって定義され、一部のサードパーティ製の壊れたSEOレポートツールが言うことではありません。

ツールが壊れています。 GoogleがTel:リンクに問題があると主張しているが、それは事実ではない。 GoogleはTel:リンクの処理方法を知っていると確信しています。

悪い分析ツールを満たすためにサイトを最適化しても、せいぜいこれは効果がなく、最悪の場合、実際のランキングに害を及ぼします。もちろん、そのツールで作業を測定する技術的に無知な上司がいる場合は、そのツール用に最適化します...

8
Harper

robots.txtを使用してクロールを禁止できます。リクエストがどのように見えるのか正確にはわかりません。リンクはサーバーに何らかの関係があると考えるため、クローラーは次のドキュメントのいずれかを要求していると推測します。

  • /tel:18005559000
  • /18005559000

robots.txtに次の行を配置すると、両方を禁止できます。

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

Googlebotのような検索エンジンクローラーは、これらのルールを必要としません。 Googlebotは、サイトからtel:リンクを取得しようとしないことを既に知っています。プロトコルを認識し、試行さえしないことを知っています。他のそれほど洗練されていないクローラーは、問題があるものになるでしょう。

2

これが最善の方法であるかどうかはわかりませんが、javascriptを使用してリンクを不明瞭にすることができます。私は主にこのメソッドを使用して「mailto」リンクまたはメールアドレスを隠しましたが、この場合も同様に機能するはずです。 HTMLリンクはページソースに表示されません。また、ユーザーはJavaScriptを有効にする必要があります。そうしないと、ボタンではなくテキストのみが表示されます。


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);


出力

JavaScriptを有効にすると、ボタンが読み込まれ、クリックするとtel:リンクに移動します。

With JS enabled

Javascriptを無効にすると、htmlスパンだけがプレーンテキストで読み込まれ、次のようになります。

With JS disabled

ソースを表示すると、これが表示されます。

View Source


任意のHTMLオブスカーを使用できますが、この例では次のツールを使用しました- Here

このサンプルはライブで見ることができます(jsfiddleを使用) Here

2
Analog