ドメイン転送と呼ばれるGoDaddyの301リダイレクトを使用しようとしています。転送DomainA.example
をDomainB.example
に301「タイプ」として設定しました。
DomainA.example
は6か月後もGoogleでまだインデックスに登録されており、SERP of DomainB.example
にタイトルがあります。 Googleでクリックするか、ブラウザでアクセスすると、DomainB.example
にリダイレクトされるため、UXの観点からはすべて問題ありません。
私はDomainA.example
を http://www.webconfs.com/redirect-check.php ツールで検査しましたが、 http://DomainA.example/
は実際にhttp://DomainA.example/MmSWZ/
にリダイレクトします。そして、このURLはおそらくDomainB.example
にリダイレクトします。それは何ですか?
同じツールで数分後にもう一度確認すると、http://DomainA.example/
がhttp://DomainA.example/MpppZ/
にリダイレクトされていることがわかります。
SEOにとっては悪いことだと思います。どうすれば修正できますか?
GoDaddyによって制御されるいくつかの異なるドメインでこの問題が発生しました。運のない問題を解決するために、GoDaddyサポートに連絡しようと何度か試みました。 GoDaddyは彼らの問題に無知であると思われるため、最終的に私は自分で問題を解決することにしました。
ここに私の解決策があります:このPHPコードを404エラーページの上部に追加します。 WordPressの場合、これにテーマの404.phpファイルを追加します。
<?php
/* GoDaddy 404 Redirects FIX - by Daniel Chase - https://riseofweb.com */
$currURL = $_SERVER['REQUEST_URI'];
$CheckRedirectError1 = substr($currURL, -6);
$CheckRedirectError2 = substr($currURL, 0, 7);
$CheckRedirectError = false;
if (preg_match("/^[a-zA-Z]{5}\/$/",$CheckRedirectError1)){
$CheckRedirectError = $CheckRedirectError1;
}else if (preg_match("/^\/[a-zA-Z]{5}\/$/",$CheckRedirectError2)){
$CheckRedirectError = substr($CheckRedirectError2, 1);
}
if($CheckRedirectError){
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$redirectTo = str_replace($CheckRedirectError, '', $currURL);
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $protocol . $_SERVER['HTTP_Host'] . $redirectTo);
exit();
}
?>
スクリプトは、ランダムな文字を確認して削除し、適切なページにリダイレクトします。いくつかの例外を追加するか、ニーズに合わせてスクリプトを変更する必要がある場合があります。
301リダイレクトを行うには、指定された場所にサーバーがあり、ブラウザのコンテンツへのリクエストに応答する必要があります。
HTTP/1.1 301 Moved Permanently
Location: http://domainb.example
これは、サーバーがHTTP経由でブラウザーに応答する必要があるためです。 DNSの目的ではないため、この種類のリダイレクトはDNSでは実行できません。
DomainA.example
の値としてDomainB.example
のCNAME
レコードを設定することを検討してください。 DNSゾーンは次のようになります。
NAME TYPE VALUE
--------------------------------------------------
www.domaina.example. CNAME www.domainb.example.
www.domainb.example. A 192.0.2.23
また、DomainA.example
のMX
レコード(ドメインにメールを送信する場所をメールサーバーに通知)がDomainB.example
のホストを指すように更新されていることを確認する必要があります。それに応じて(必要な場合)。