[対象: 上級]

検索エンジンの評価を引き継ぐことなしに、別のURLへリダイレクトする方法をこの記事では説明します。

たとえば、ペンギンアップデートや不自然リンクの手動対策の影響を受けてどうしても問題となるリンクを削除しきれず、さらにリンクの否認ツールを使っても芳しい結果が出なかった場合、最終的にはそのドメイン名を捨てなければならないことがあります。

そして新たに取得したドメイン名のもとで、内容が同じサイトを新規にスタートします。

このとき、元のドメイン名のサイト(ペナルティを受けたサイト)に訪問したユーザーを新サイトに連れて行く必要があります。

トップページに「サイトを移転しました」の告知とともに、新サイトのURLを載せておくやり方があります。
でもできればユーザーに意識させることなく自動で転送したいところです。

ところが301リダイレクトは通常は良い評価も悪い評価も引き継ぎます。
タイムラグが発生することはあっても、最後にはペナルティも引き継ぐのがたいていのパターンです。

検索エンジンからの評価を引き継ぐことなしに、ユーザーだけをリダイレクトする方法が望まれます。

WebmasterWorldでそんなディスカッションがあったので紹介します。

ブロックした中間ページ経由でリダイレクト

方法は、robots.txtでクロールをブロックしたページを経由して、ペナルティを解除できない古いサイトのURLから新ドメイン名のサイトの対応するURLへリダイレクトすることです。

考え方としては、Googleのリンクプログラムのヘルプで提案されているPageRankを転送しない広告リンクの設置方法に相当します。

なお、広告購入者に PageRank を転送しない PPC(クリック課金型)広告リンクは、Google のガイドラインへの違反にはあたりません。次のような方法で、PageRank が転送されないようにすることができます:

  • rel=”nofollow” 属性を <a> タグに追加する
  • robots.txt ファイルによって検索エンジンからブロックされる中間ページにリンクをリダイレクトする

2つ目ですね。

具体的な設定

次のような流れになります。

  1. ブラウザ(人間のユーザー)が、ペナルティを受けた古いドメイン名のサイトのURLにアクセスする。
  2. .htaccessファイルの設定で、同じドメイン名のサイトに置いたリダイレクト用のスクリプトファイルにリダイレクトし、たとえば「RedirectScript.php?requestURL=requested URL」のように処理させる。
  3. ブラウザは、「RedirectScript.php?requestURL=requested URL」を再リクエストする。
  4. RedirectScript.php」が、新ドメインの対応するURLへのリダイレクトを実行する。

ここで、中間ページとして利用する「RedirectScript.php」をrobots.txtでブロックしておきます。
すると、3番目の過程にある、このスクリプトファイル(ページ)へはGooglebotはアクセスしません。
結果として新URLへのリダイレクトを認識しません。

しかしながら、ユーザーは依然として新URLへ自動で転送されます。

ユーザーを自動でリダイレクトしつつも検索エンジンはリダイレクトしないという処理が実現できます。

各ファイルに記述するコードのサンプルを以下に載せます。

robots.txt

User-Agent: * 
Disallow: /blocked-page.php 

.htaccess

RewriteEngine on 
RewriteRule !^(:?robots\.txt|blocked-page\.php)$ http://www.example.com/blocked-page.php?goto=%{REQUEST_URI} [R=301,L] 

blocked-page.php

【UPDATE】コードに間違いがあったようなので修正しました。

<?php 

if(filter_var('http://www.new-site.com'.$_GET['goto'],FILTER_VALIDATE_URL)!==FALSE) { 
header('Location: http://www.new-site.com'.$_GET['goto'],TRUE,301); 
exit; 
} 

else { 
echo '申し訳ございませんが、そのページは存在しません。URLを確認して下さい。'; 
exit; 
} 

?>

なお元のURLにクエリパラメータが付いているときは修正が必要かもしれないとのことです。
その他も含めて、実際に利用するときは、開発に詳しくなければ詳しい人に内容をよく見てもらってから実装してください。

ようはrobots.txtでブロックした中間ページを挟んでリダイレクトすればいいので、別の実装方法もあるはずです。

難点は、リダイレクトを2回繰り替えすので、その分遅延が発生することです。
とはいえ、背に腹は代えられませんね。

ペナルティを解除させることができずに今のドメインでの運用を諦めるしか選択肢が見つからず、訪問ユーザーの手をわずらわせることなく新規サイトへ誘導したいときに使うことを検討したい方法です。

ちなみに、「これはクローキングでは?」と考える人が出てくるかもしれませんが、クローキングではありません。
クローキングは、ユーザーと検索エンジンに同じURLで異なるコンテンツを返すことです。

またペナルティを引き継がずにリダイレクトと言っていますが、自然についた価値のある被リンクのようなまっとうな評価も当然引き継ぎません。
良い悪いにかかわらず、検索エンジンに対するすべての評価を断ち切って、ユーザーだけを転送する方法になります。

このエントリーが役に立ったらシェアしてください

[Ads & Featured Contrents]

海外SEO情報ブログTOPGoogle SEO › ペンギン対応? ペナルティを引き継がずにリダイレクトする方法

Comments

  1. By anonymous on

    いつも楽しく拝見しております。
    blocked-page.phpのコードサンプルの3行目
    if(filter_var(‘http://www.new-site.com’.$_GET[‘goto’],FILTER_VALIDATE_URL)!==FALSE)) {
    で、FALSE))をFALSE)にしないと動かないと思います。
    Google SEO News and Discussion Forumの原文?も間違っています。

    *** Reply from Suzuki Kenichi ***
    確かに「)」が1つ多いですね。
    修正しました。
    ご指摘ありがとうございます。

  2. By SEO初心者です。 on

    初めまして。SEO初心者です。いつも参考にさせていただいております。
    上記記事を参考させていただき、同処理を行いました。

    ペナルティなどがあったわけではありませんが、譲り受けた評価の高い中古のドメインに低評価を引き継ぎたくなかったので、この方法を利用し変更しました。
    (評価がほとんど無い稼働中の新ドメイン → 評価の高い中古ドメイン )

    site:変更後ドメイン site:変更前ドメイン
    上記で検索するといずれも検出され、ミラーとして認識されないか不安です。
    通常検索結果には旧ドメインで表示されてる状態です。
    検索結果は統合されるのでしょうか?
    通常の301ではないので不安です。

    *** Reply from Suzuki Kenichi ***

    中古のドメイン

    恐れ入りますが、中古ドメインを使う手法を僕は良いやり方とは思いませんので、ご自身でお調べください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


▲ページの一番上に戻る