web-dev-qa-db-ja.com

301リダイレクトを使用してドメインを変更し、SEOを維持する

クライアントの現在のウェブサイトを置き換えるために、新しいドメイン名でWordpressウェブサイトを設定しています。可能な限り古いサイトの検索エンジンのランキングを維持する方法で、古いドメインを新しいドメインにリダイレクトしたいと思います。新しいサイトの準備ができたら、古いドメイン名を新しいサーバーのパークドメインに移動し、301リダイレクトを使用して古いドメイン名とhtmlページのリクエストを対応するWordpress新しいドメインのページ。そのため、例として、 http://www.olddomain.ca/success-stories.html へのリクエストは https://newdomain.com/testimonials/

私は新しいサーバー上の各htmlページのリダイレクトをテストしましたが、正しく動作するようですが、新しいサーバーを指すパークされたドメインとして実際に設定されるまで古いドメイン名のリダイレクトをテストする方法がわかりません。

そこで、2つの質問があります。

  • このアプローチは、古いサイトの検索エンジンのランキングを維持しますか、それとももっと良い方法がありますか?
  • これらのルールは、(wwwを削除することに加えて)パークされたドメインを新しいドメインにリダイレクトしますか?

    RewriteCond %{HTTP_Host} !^newdomain\.com [NC]
    RewriteRule ^(.*)$ https://newdomain.com/$1 [R,L]
    

今のところ302リダイレクトを使用していますが、テストが完了すると301に切り替わります。 htaccessファイルを使用するのは今回が初めてなので、それを改善する方法に関する他の提案を歓迎します。

# Redirect HTML pages from old site to new equivalents
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html?$ / [NC,R,L]
RewriteRule ^about-us\.html?$ /about/ [NC,R,L]
RewriteRule ^coaching\.html?$ /services/ [NC,R,L]
RewriteRule ^how-we-do-it\.html?$ /services/ [NC,R,L]
RewriteRule ^news-calendar\.html?$ / [NC,R,L]
RewriteRule ^philosophy\.html?$ /about/ [NC,R,L]
RewriteRule ^services\.html?$ /services/ [NC,R,L]
RewriteRule ^success-stories\.html?$ /testimonials/ [NC,R,L]
RewriteRule ^teams\.html?$ /services/ [NC,R,L]
RewriteRule ^training\.html?$ /services/ [NC,R,L]

# Remove WWW Prefix, enforce HTTPS, and redirect parked domain
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_Host} !^newdomain\.com [NC]
RewriteRule ^(.*)$ https://newdomain.com/$1 [R,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
4
Tom Monks

1)301リダイレクトを適用することにより、基本的に検索エンジンに、そのページまたはページのグループを別の場所に永久に移動したことを伝えます。ここでは問題ありません。すべて良いです。

Googleは何度も、301が古いURLを指すリンクからランキング機能を移転するのに影響を与えないと宣言しています。したがって、最初の質問に答えるために、そのようにランキングを失うことはありませんのでご安心ください。

ただし、新しいWebサイトを公開したら、再評価する必要がある可能性のある他の200以上のランキング要素からランキングを失う可能性があります。レイアウト、ウェブサイトの構造とデザインの変更、新しいコンテンツの取得などのためにランキングを失う可能性があります。また、サーバーを変更しても、ウェブサイトはコンテンツを提供する別の場所になり、パフォーマンスへの影響も発生します重要な部分。

誰かがウェブサイトの移行、アップグレード、改善を決定する前に期待されることは、顧客のニーズを知っているか、過去の経験から十分に学んだことで、ビジネスまたはユーザーに最も重要なことをもたらす可能性がありますベース。しかし、残念ながらそれは常にそうではありません。

2)htaccessコードは良さそうですが、Wordを使用しないでください。環境が異なるため、テストする必要があります。 URL、特にホームページをリダイレクトしようとするときは、複数のリダイレクトを行わないようにしてください。

たとえば、example-old.comをexample-new.comにリダイレクトする場合、最初にwww.example-old.comにリダイレクトしてからexample-new.comにリダイレクトしないようにしてください。

テストを行って、www。またはwww以外。ウェブサイトのバージョンは常にexample-new.comにリダイレクトされます

4
Raul Reyes

コメント:複数のリダイレクトを行っていないことを確認するためにテストを続けます。

古いドメインを要求すると、投稿したディレクティブは複数のリダイレクトをトリガーします。

# Redirect HTML pages from old site to new equivalents
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html?$ / [NC,R,L]
RewriteRule ^about-us\.html?$ /about/ [NC,R,L]
:

置換に新しいドメインを含めない限り、oldドメインの/about-us.html/about/にリダイレクトします- beforenew-domain.com/about/にリダイレクトされます(キャッチオールリダイレクトにより)。

したがって、リダイレクトは次の形式にする必要があります。

RewriteRule ^index\.html?$ https://newdomain.com/ [NC,R,L]
RewriteRule ^about-us\.html?$ https://newdomain.com/about/ [NC,R,L]
:

(これらのディレクティブからLフラグを削除しない限り、それらはパススルーされ、後続のキャッチオールリダイレクトによってキャッチされますが、信頼性が低く、エラーが発生しやすくなります。)

RewriteCond %{HTTP_Host} !^newdomain\.com [NC]

このnegated条件からNCフラグを削除する必要があります。ホストが「newdomain.com」(すべて小文字)でない場合にリダイレクトが発生するようにします。 「NEWDOMAIN.COM」(不正な形式のリクエスト)を引き続きリダイレクトする必要があります。 NCフラグを含めると、条件が失敗するため、「NEWDOMAIN.COM」はリダイレクトされません。

RewriteEngine On
RewriteBase /

Aside:これらのディレクティブをファイルに含める必要があるのは1回だけです(実際、RewriteBaseを使用しているようには見えません投稿したコード内)。これらのディレクティブを複数回含めると、lastディレクティブが優先され、ファイル全体が制御されます。

2
MrWhite