WordPressで運営されていない既存の企業サイトにブログを設置しなければならない状況に遭遇したことはないだろうか。ほとんどの方がそのような場面に直面したことがあるのではないでしょうか。この記事では、SEOを損なうことなくそれを実現する方法をご紹介します。その前に、WordPressがどのような機能を持っているのかを探ってみましょう。
WordPressで運営されていない既存の企業サイトにブログを設置しなければならない状況に遭遇したことはないだろうか。ほとんどの方がそのようなシナリオに直面したことがあると思います。
この記事では、SEOに妥協することなくそれを実現する方法を紹介する。
その前に、組織や機関がメインウェブサイトとは別にブログをホスティングする方法を探ってみよう。
大企業の多くは複雑なITシステムを抱えているため、社内の部署が社内のシステムの範囲外に目を向けることが難しい。例えば、コンテンツ・マーケティング部門が、視聴者を啓蒙するためのブログを作成したいと考えたとする。しかし、現在の取り決めでは、WordPressホスティングなどでブログを作成することは不可能だ。
一方、企業はウェブ・アプリケーションに「.NETフレームワーク」を使うかもしれないし、オープンソースのフレームワークを使うことをためらう企業もある。
上記のいずれかのシナリオでブログをホストする必要がある場合、それをホストするための代替サーバーを考えるしかない。 このサーバーは、あなたがウェブサイトをホストしているサーバーの外にある。それでは、これらのオプションとその影響について見ていきましょう。
例えば、あなたのメインウェブサイトのURLがwww.myorganization.com の場合、過去の最も技術的に有能な専門家は、メインドメインのサブドメインを購入してWordPressブログをインストールする傾向があります。この状況の例としては、ourblog.myoraginzation.comになります。
昔なら、この解決策は完璧だった。しかし現在では、ブログにかなりのトラフィックを生み出すことを目標とする場合、SEO(検索エンジン最適化)の側面も考慮する必要がある。次のセクションでそれを見ていこう。
サイトオーナーがサブドメインを購入する主な理由は、ブランドの様々な製品に基づいた個別のコンテンツを持つためです。モバイル用の独立したウェブサイトやトラフィックの促進など、他の理由もありますが、根本的な理由はコンテンツと、複数のニッチに基づくブランドの拡大にあります。
たとえば、ウィキペディアには、fr.wikipedia.comやes.wikipedia.comのように、さまざまな言語に基づいてコンテンツを分けるためのサブドメインがある。
人気のラジオネットワークであるNPRも、ニュースとコンテンツに100%集中している例だ。しかし、https://shop.npr.org/ というサブドメインもあり、主にマーチャンダイジングに力を入れている。
だから、上記のシナリオでは、サブドメインを持つことは理にかなっている。しかし、ブログの場合はどうだろう?
さて、検索エンジンはサブドメインを別々のウェブサイトと見なす。つまり、検索エンジンはそれぞれのサブドメインを別々にクロールし、インデックスしなければならない。また、メインドメインへのバックリンクはサブドメインと共有されない。したがって、サブドメインのページランクを上げるのは、メインドメインと同じくらい難しい。
そのため、そうすることに意味がある状況では、サブドメインを持つことは助けになるだろう。したがって、ブログの理想的なオプションは、メインサイトのサブディレクトリとしてブログを持つことでしょう。
しかし、前述したように、WordPressのホスティングをサポートしていない別のプラットフォームでホットする場合、あなたの主要なサイトが動作する状況で、どのようにそれを行うことができますか?
これこそまさにリバースプロキシであり、次のセクションでリバースプロキシの概要を説明する。
リバースプロキシの概念を理解するのは、フォワードプロキシが何をするのかを知っていれば簡単だろう。
フォワードプロキシ- フォワードプロキシは、LAN(ローカルエリアネットワーク)内のすべてのノードから入ってくるすべてのリクエストを、そのリクエストが行くべき関連するサーバーに転送する。宛先サーバーはリクエストの発信元を知ることはなく、フォワードプロキシ経由でリクエストを開始したクライアントにレスポンスを送信する。下の図はそれを示している。
リバース・プロキシ:対照的に、リバースプロキシはサーバーの前に位置し、クライアントがリクエストを開始すると、適切なサーバーにリクエストを送信する。そして、適切なサーバーがレスポンスを返すと、リバース・プロキシはそのレスポンスをクライアント・デバイスに返す。クライアントデバイスには、リバースプロキシサーバーがすべてのリクエストを処理したように見える。リバースプロキシは、ウェブアプリケーションの同じ部分が多くの異なるサーバー上でスケールダウンされるような状況で理想的です。
リバースプロキシとフォワードプロキシの詳細については、こちらの記事を参照してください。
同様に、リバースプロキシを使って、WordPressブログをホストしているサーバーにトラフィックを誘導することができます。一方、リバース・プロキシは、ブログ以外のトラフィックを関連するサーバーに誘導する。言うは易く行うは難しであることは承知している。では、例を挙げて説明しよう。
下図のように、あなたのウェブサイトがhttps://www.somedomain.com、WordPressをサポートしていないウェブサーバーでホストされているとしましょう。しかし、コンテンツマーケティングチームはブログをどうしても持ちたいと考えています。しかし、コンテンツ・マーケティング・チームはどうしてもブログを作りたいと考えています。そこで、上記のSEOの事実を考慮し、ウェブ開発チームは「blog」ディレクトリの下にブログをインストールするしかありません。したがって、ブログのURLは https://www.somedoamin.com/blog。
メインのウェブサイトはWordPressをサポートしていないため、ウェブ開発チームは以下のステップを踏む必要があります:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="blog.somedomain.com" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^blog.somedomain.com$" />
<add input="{PATH_INFO}" pattern="^/blog/" negate="true" />
</conditions>
<action type="Rewrite" url="\blog\{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
以下の2行の "blog.somedomain.com "は、あなたのブログがあるサブドメインに置き換えてください:
<rule name="blog.somedomain.com" stopProcessing="true">
<add input="{HTTP_HOST}" pattern="^blog.somedomain.com$" />
次に、この2行で、「blog」フォルダに別の名前を付けている場合は、それを置き換えることができる:
<add input="{PATH_INFO}" pattern="^/blog/" negate="true" />
<action type="Rewrite" url="\blog\{R:0}" />
最後のステップでは、サブドメインを使用していますが、トラフィックはメインウェブサイトのブログフォルダに生成されるため、SEOには影響しません。したがって、サブドメインへのリダイレクトは内部的な処理であり、SEOには影響しない。
上記の状況は、PHPをサポートしていないサーバーを使用している場合です。しかし、例えば、あなたの主要なサイトがPHPやDrupalを実行しているが、同じドメインでブログのための別のサイトを持ちたいというシナリオに遭遇した場合、以下の手順に従ってリバースプロキシの設定を行う必要があります。
しかしその前に、2つのサイトを立ち上げて運営していることを確認する必要がある。ひとつはhttps://www.somedomain.com、もうひとつはWordPressがインストールされたサブドメインhttps://blog.somedomain.com。
まず最初に、SSH経由でApacheサーバーのターミナルを開く必要がある。それから、このコマンドを使ってApacheのプロキシモジュールを有効にする必要がある:
sudo a2enmod proxy proxy_http ssl
このコマンドはほとんどの場合 Apache を再起動し、上で定義した新しいディレクティブを再読み込みします:
次はお待ちかねのステップです。それは、サーバーのバーチャルホストファイルを編集してリバースプロキシーを作成することである。
<VirtualHost *>
DocumentRoot /var/www/app/public
SSLProxyEngine On ProxyRequests off
ProxyPass /blog http://blog.somedomain.com
ProxyPassReverse /blog http://blog.somedomain.com
</VirtualHost>
ここで注目すべき重要なポイントは2つある:
さて、次のステップはWordPressのためのもので、これは上記の両方のシナリオで典型的なものだ。
次に、WordPressをインストールしたサーバーに行き、wp-config.phpファイルを更新する必要があります。通常、リバースプロキシ上でWordPressが動作するように設定することはないからです。
そのため、以下のようにwp-config.phpファイルを更新する必要があります:
$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/", $_SERVER['REQUEST_URI']);
次に、同じファイルで以下の変数を更新する:
その間に、以下のようにデータベース設定値を更新することができます:
UPDATE wp_options SET option_value = 'https://www.somedomain.com/blog' WHERE option_name IN('siteurl', 'home');
次のステップは、.htacessファイルを修正して、URLを正しく書き換えられるようにすることです:
となる:
RewriteRule ./blog/index.php [L] .
上記の手順がすべて完了したら、投稿とカテゴリーのリンクが期待通りに機能していることを確認する必要があります。そのためには、以下のように古いサブドメインのURLでログインする必要があります:
blog.somedomain.com/wp-login.php
メインダッシュボードから "設定 "に移動し、"全般 "タブをクリックすれば、役立つでしょう。
サイトアドレス(URL)フィールドを以下のように更新する:
そうした後、URLが正しく機能するかどうかまだ疑問がある場合は、「Better Search Replace」プラグインをインストールすることができる。これにより、データベース上のすべてのレコードが必要に応じて更新されます。
さらに、canonicalとrobot.txtの更新にも注意しなければならない。
そうした後、URLが正しく機能するかどうかまだ疑問がある場合は、「Better Search Replace」プラグインをインストールすることができる。これにより、データベース上のすべてのレコードが必要に応じて更新されます。
さらに、canonicalとrobot.txtの更新にも注意しなければならない。
WordPressはカスタマイズ性に優れていることがお分かりいただけただろう。というのも、WordPressを使えば、ウェブサイトのブログ部分だけを別個にホストし、それ以外の部分には手をつけないことができるからだ。このブログでお分かりのように、ウェブサイトの残りの部分はWordPressをサポートしていない別のプラットフォームでホストされているかもしれません。
そのため、ブログをウェブサイトの他の部分に含めることは困難な作業となる。しかし、逆プロキシを使用することで、それらを克服することができます。
続報をお楽しみに。