11

私の質問は非常に単純です:(プログラム、技術、または手動で)Google + 1、Facebook Like、またはTwitter TweetこのボタンはURIの変更後もカウントを保持する方法はありますか?

プログラムで:javascriptを使用して何かを実行し、2つのURIの合計カウントを表示し、後者にのみ新しいアクションを投稿します。

技術的に:元のリソースからの301リダイレクトを検出して追跡しますか?すべての「ポイント」を古いURIから新しいURIに移動する必要があることを伝えるためにHTTPヘッダーに含めることができる特別なテキストはありますか?

手動:サイトのどこかに送信できるフォームや、ポイントを新しいURIにコピーできるメールを送信できるフォームがありますか?

(この質問では意図的にURLではなくURIを使用していることに注意してください。正規のリソースリンクはからsomething.php?id=idnumberに変更されてい/mycoolproduct/ます)

編集

バウンティが始まりましたが、「できません」と答えないでください

4

6 に答える 6

8

私は、上記のあなたの要求に普遍的に適合する唯一の解決策があると信じています。その解決策は、古いURIを新しいURIに301/302してから、ソーシャルボタンで古いURIを使い続けることです。すべての主要なソーシャルボタンを使用すると、いいね/ g + / tweet/etcのURLを指定できます。これにより、既存のソーシャル共有数が保持され、すべての共有投稿は引き続き同じページに送信されます。ここで、301または302リダイレクトのどちらを選択するかが決まります。302は、現在の検索の配置を維持し、ランキングがかなり良い場合はランキングを失うことを回避するのに役立ちます。301リダイレクト(永続的に移動)により、検索エンジンは新しいURLのインデックス作成を開始し、古いURLを削除します。これはかもしれません現在の検索ランキングが失われます。この投稿の時点で、いかなる種類の社会的投票のリダイレクトを尊重している人はいないようです。

したがって、最も安全なルートは、302リダイレクトし、ソーシャル投票に古いURIを引き続き使用することだと思います。この方法で公平性を維持しますが、リダイレクトを維持し、古いURIテンプレートにさらに投資する必要があります。リダイレクトはどのように実装されていますか?.htaccess?またはページで?ケースの費用便益を比較検討する必要があります。

それ以外の場合は、おそらく301して、ソーシャルボタンに新しいURIを使用し始める必要があります。この場合、あなたはあなたの社会的平等を失うかもしれませんが、何かを台無しにすることを恐れることなく、自由に新しいものを作ることができます。あなたが取り替えている社会的平等が例えば6ヶ月以内に取り戻されることができれば、私はそれを気にせず、新たに始めるでしょう。

しかし、これは興味深い点をもたらします。プログラムで2つのカウントを追加するとおっしゃいました。はい、JavaScriptを組み合わせて、いくつかのカウントを追加することもできますが、理由を尋ねる必要がありますか?視覚的な表示のためにそれらを一緒に追加しても、実際には参照トラフィックや検索ランキングの増加には役立ちません。だから、それは私があなたを助けるとは思わないファサードです。訪問者をだまして自分が人気があると思わせようとしているだけなら、数え続けるイメージサーバー側を生成してみませんか。(悪い冗談です、やらないでください!)結論として、ソーシャルエクイティを実際にリダイレクトすることはできません。移動したふりをすることはできますが、実際にはできません。

あなたの元の質問がいくつかのソーシャルボタンについて尋ねていることを考えると、これらのサービスの1つまたは2つがソーシャル投票を適用するときにリダイレクトを尊重し始めたとしても、上記の決定をすることからあなたを解放しないことに注意することが重要です。既存の被リンクのリダイレクトは引き続き必要です。ページで複数のソーシャルボタンをサポートしている場合は、すべてのソーシャルボタンを念頭に置いてリダイレクトタイプを選択する必要があります。

于 2011-11-24T07:07:27.103 に答える
2

Twitter / G +でこれを行う方法について話すことはできませんが、Facebookについては次のようになります。

URL間でいいねやコメントを「移動」することはできません。新しいコンテンツの場合は、必ず新しいURLの使用を開始する必要がありますが、既存のURLの場合は、次の場合でも元のいいねカウント/コメントを機能させることができます。

  • 新しいURLの「いいね」ボタンを古いURLにポイントし続けます(つまり、<fb:like url="http://oldurl"/>
  • リダイレクトコードに例外を追加して、Facebookのクローラー(facebookexternalhit/1.*現在は1.1)がアクセスしたときに、開いているグラフメタタグの元のセットが表示されるようにします(これにより、説明、タイトル、サムネイルなどが以前と同じように機能します)
  • 「古い」URLにアクセスした他のユーザーは、引き続き新しい場所のコンテンツにリダイレクトされます
于 2011-11-24T20:31:56.360 に答える
2

私はこの問題に対する本当の解決策を持っています。それは最も一般的ではないかもしれませんが、100%機能します。sharrreと呼ばれる単純なjQueryプラグインを使用します。私は最高のjQueryコーダーではないことを覚えておいてください(改善が見られたら教えてください!)が、これは関係なく機能します。

これが私のサイトでのやり方です:

sharrreプラグインを使用すると、現在の共有数をページ上の任意の要素に追加できます。両方のURLのデータを取得し、それらを合計して、「いいね」、「ツイート」、「共有」などのボタンに表示しました。

この例はTwitterを使用していますが、Facebook、Google Plus、Pinterest、Linkedinを使用しています。コードは次のとおりです。

<li id="twitter" data-url="CURRENT-URL" class="twitter sharrre"></li>

<li id="twitter-old" data-url="OLD-URL" class="twitter sharrre" style="display: none;"></li>

それから私はsharrreのコードを呼び出しました:

$(function(){ sharrreItUp(); }

これは私の関数が私の.jsファイルでどのように見えるかです:

function sharrreItUp() {

    $('#twitter').sharrre({
        share: {
            twitter: true
        },
        enableHover: false,
        click: function(api, options){
            api.simulateClick();
            api.openPopup('twitter');
        }
    });

    $('#twitter-old').sharrre({
        share: {
            twitter: true
        }   
    });

    setTimeout(function(){ 

        var oldTwts = $('#twitter-old .box .count').html();
        var newTwts = $('#twitter .box .count').html();
        $('#twitter .box .count').html(parseInt(oldTwts) + parseInt(newTwts));

    }, 2000);

}

そしてBAM...新しいURLが共有され、さまざまなソーシャルネットワークの古い共有がそれらに追加されます。

于 2013-03-19T02:01:29.710 に答える
1

Unfortunately, there is no solution for this. We have tried all possible solutions and you will simply lose your social equity if you do a 301 Redirect. We found it to not be worth the hassle of trying to maintain our vote counts, and have instead pointed our buttons to the homepage in the interim of moving to the new url structure.

于 2012-03-26T23:05:33.887 に答える
0

何か間違ったことを言いたくないのですが、各共有ボタン内でURIを定義するだけでよいと思います。したがって、投票のURLに関係なく、定義されたURLがカウントとして使用されます。


代わりに、すでに2つの異なるソースがあり、それに参加したい場合は、iframe srcをたどり、そこからカウントを取得する必要があります。グーグル+1の場合、カウントを含むdivIDは#aggregateCountツイッターの場合です#count; 例は次のようになります。

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile('iframe-url-goes-here');
$count = $doc->getElementById('aggregateCount');
echo $count->nodeValue;
?>

次に、DOMがロードされ、ウィジェットがロードされた後のページで、独自の値を追加できます。

この助けを願っています、とにかく私は最初の方法を好みます。

于 2011-11-30T21:12:38.743 に答える
0

新しいheadページの

<meta property="og:url" content="old_url_here"/>

このようにして、Facebookは古いページを高く評価します。唯一の欠点は、この方法で他のユーザーがリンクを共有すると、古いリッチスニペットが含まれることです。

于 2015-06-22T04:49:18.193 に答える