頑張らない!でも諦めない!必死にならずにええかげん

WordPressで別のサイトに復旧(テスト・一時)サイトを公開し重複サイトを回避する一案

      2014/11/22

VaultPress™を利用して別のドメインに対して、テストサイトや一時サイトを構成すると、
本運用のサイトを大幅に改変したりする際でも一時的にテストサイトへ転送し、
サイトの公開を継続することができるようになります。
しかし、そのままでは全く同じ内容のサイトが2つ公開されている状態になります。
いわゆる重複サイトです。
本番運用のサイトと一時サイト(テストサイト)で、
共通のタグを設定しcanonicalタグを出力する案をご紹介します。

 

重複サイトの構成

以前以下の投稿でVaultPressを利用して一時サイトの構成手順をご紹介しました。

 

URL的には、以下のサイトを同一サイトとして公開しています。

 

このサイトは単純にコンテンツがミラーとして構成されていて、
本運用サイト(rensrv.com)が何らかの事情で正しく表示できなかったり、
サイトの構成を大幅に変更しなければならないような場合用に構成しました。

何らかの事情が発生した際にVaultPressのバックアップから、
1発リストアを実行して、一時サイトにリストアを行ってから、
URLを一時サイト(algorhythnn.minibird.jp)へ転送して回避します。

こういうミラー状態にあるサイトを放置すると重複として何らかの制裁を受ける可能性があります。

robots.txtにて片方だけをクローラアクセスを制限するのも一つの選択肢ですが、
URLの正規化を行うことでも対応が可能です。

ここでは、再度サイトのバックアップを実行した際にも手間をかけず、
本番環境にcanonicalタグの出力を設定しておき、一時サイトのみで正規化する一つの案をご紹介します。

 

プロモーション(btm)

Google or AdMax Promotion (it)

canonicalタグの出力処理の定義

重複サイトを明示的に正規化する手順として、canonicalタグの出力があります。

例えば、以下のようなタグを出力する感じです。

これは、「http://algorhythnn.minibird.jp/」にアクセスした際に、
正規のURLは「http://rensrv.com/」であることを示しています。

このURL正規化をすべての投稿で行うのがこの案の趣旨です。

 

URL正規化タグの出力ショートコードの作成

URLの正規化を出力する共通コードをWordPressのショートコードで定義します。

私は、functions.phpに対して以下のようなコードを定義しています。
(実現方法はいろいろあるでしょうから適宜お好みで)

ショートコードの定義等に関しては以下の投稿を参考にされて下さい。

 

 

これによって、 [ temp_canonical domain=’rensrv.com’ ]という、
ショートコードが利用できるようになります。

domain=’rensrv.com’  は正規化を行う先の正規のURLドメインです。

 

条件判定でURLの生成

条件判定によって、rensrv.com以外のドメインでサイトを表示している際にのみ、
<link rel=”canonical” href=”http://rensrv.com/”> というタグが出力される仕組みです。

このショートコードを利用して各個別の投稿においても、
それぞれの投稿URLに対応する、正規化URLを出力しています。

例 (以下は便宜上リンク化しています)

http://algorhythnn.minibird.jp/cheap/minibird/ にアクセスした場合には、

<link rel=”canonical” href=”http://rensrv.com/cheap/minibird/“> が出力されます。

 

ショートコードの出力をウィジェットで実装

ショートコードにてURL正規化のタグを作成したら、
あとは、ヘッダー(<head>~</head>)部分に対してタグの出力を行うことで、
各URLの正規化を行うことができます。
※<body>~</body>間に出力した際には正規化は一般的に無視されるとされています。

こうしたショートコードをWordPressの<head>タグに出力する方法は、
直接テンプレートを触ってもいいのですが、より簡単な方法としてプラグインを利用します。

私は以下のプラグインを利用しています。

 

このプラグインをインストールして有効化することで、
WordPressのウィジェットエリアが拡張されheadタグ領域に対して、
任意のコードを出力することができるようになります。

01_ウィジェットを利用したheadタグ挿入

ウィジェットを利用したheadタグ挿入

 

尚、今回ウィジェットエリアに追加しているウィジェットは、
HTML JavaScript Adderプラグインにて追加されるウィジェットを配置しましたが、
ショートコードの実行ができるウィジェットであれば何でも構いません。

HTML JavaScript Adderプラグインについては以下でご紹介しています。
以前、AdSense広告ユニットの追加でご紹介したプラグインです。

 

タグの出力を確認

ウィジェットに対して今回定義したショートコードを、双方のサイトに設定します。

双方に設定する理由としては本運用のサイト側のバックアップを、
そのまま一時ドメインで表示しても変更することなく動作させるためです。

同じ設定を行ってサイトを表示した例が以下のようになります。

ここではWordPressがデフォルトで出力するcanonicalタグ生成は停止させています。
通常、WordPressでは自身のURLを正規化URLとして出力しています。

 

本運用のサイト(rensrv.com)を表示した場合

本運用のサイトは自身が正規のURLになりますので、何も出力しません。

http://rensrv.com/cheap/minibird/

02_運用ドメイン側の出力

運用ドメイン側の出力

 

一時サイト(algorhythnn.minibird.jp)を表示した場合

一時サイトを表示した際にはアクセスされたページに応じて、
正規のドメイン側のページへURLの正規化タグを出力しています。

http://algorhythnn.minibird.jp/cheap/minibird/

03_一時ドメイン側の出力(canonical有)

一時ドメイン側の出力(canonical有)

 

さいごに

このようにして本運用のサイトをバックアップからミラーサイトとして構成し、
不慮の事態に備えてサイトをミラー化して運用をおこなうことができます。

あとはおまけでrobots.txtなどを配置して、
一時サイト側のクローラアクセスをさせないなどの対応をするか、しないかを判断されるといいでしょう。

 


*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - VaultPress, WordPress

  関連記事

eye_wordpress
JetPack統計情報で指定した記事の日別アクセスを開く方法

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPressの管理画面へのログインを個別に制御する手順

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_facebook
Facebook™への共有をJetpack by WordPress.comで行う動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
13.Gravatar ホバーカード-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPressで独自のショートコードをプラグインレスで設定

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
wordpressがエラーとなった場合に最初に確認すべきこと

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPressサイドバーウィジェットにAdSenseユニットを追加

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_php
ファイルアップロード上限の変更(PHP phpMyAdmin wordpress)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
Jetpack by WordPress.comはユーザーごとに連携が必要

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
19_07.SlideShareプレゼンテーション表示には、Jetpackのslideshareショートコード埋め込み

Google or AdMax Promotion(it) 禁断の機能がau公式 …