ブログトップ

公開日:

更新日:

7 min read

技術革新

CloudflareのDNSリダイレクト設定で遭遇したトラブル

CloudflareのDNSリダイレクト設定で遭遇したトラブルのイメージ

Google Search Consoleは非常に便利だが、扱いがなかなか難しい。 しかしこれをマスターできないとSEO的に非常にまずい。 仕方がないから、エラーを地道につぶすのだが、なかなか消滅しない。 今もインデックスされていないURLが160もあると表示される。

もう知らない。面倒くさい。

そうは言っても、放っておくのも気持ち悪いので、気持ちに余裕ができたときに、少しずつ直すようにしている。

サイトマップのエラー対応

今度のエラーは、サイトマップにURLが無いと表示されている。 URLを確かめる。うん、www.aqz.jpはサイトマップには無いな。 cloudflareでDNSレコードを使いwww.aqz.jpaqz.jpに転送しているためだ。 解決方法をAIに問うてみる。

AIからの最初の提案

この問題について具体的な解決方法をご説明いたします。

Cloudflareでのリダイレクト設定に加えて、以下の対応が必要です:

  1. サイトマップの修正 両方のドメインバージョン(www有り無し)をサイトマップに含める、または canonical URLのみをサイトマップに含めます。

  2. Google Search Consoleでの設定

  • 両方のプロパティ(www.aqz.jpaqz.jp)を個別に登録
  • プロパティセットとして関連付け
  • どちらかを正規バージョンとして指定
  1. HTMLでの対応 すべてのページに以下のcanonical設定を追加:
   <link rel="canonical" href="https://aqz.jp/対象ページのパス" />
  1. リダイレクトの確認 301リダイレクトが正しく設定されているか確認。Cloudflareのページルールで:
   IF (www.aqz.jp/*)
THEN 301 Redirect to https://aqz.jp/$1

設定方法の確認

canonical設定が良く分からない。 aqz.jp/blogのページでwww.aqz.jp/blogをカノニカルに設定するだろうか? いや、cloudflareを使っているのだから、4の方が簡単ではないだろうか? AIを問い詰める。

リダイレクト設定の選択

AIの回答:いいえ、canonicalはメインドメインである「aqz.jp/blog」に設定します。

canonicalとは、同じ内容のページが複数のURLで存在する場合(例:aqz.jp/blogとwww.aqz.jp/blog)、どのURLが正式なものかをGoogleに伝えるためのものです。

ご指摘の通り、Cloudflareのページルールによる301リダイレクトの方が簡単で確実な解決策です。この場合:

  1. Cloudflareのページルールで設定:
   IF (www.aqz.jp/*)
THEN 301 Redirect to https://aqz.jp/$1
  1. 全てのトラフィックがaqz.jpに転送されるため、www.aqz.jpのサイトマップは不要になります。

  2. Google Search Consoleでは、aqz.jpのみを登録・管理すれば十分です。

DNS設定の混乱

なるほど。サブドメインの転送をDNSではなく、ルールで設定しろと。 これが転送の秘訣だというわけだな。 ならネイキッドドメインもcloudflare pagesのドメインに転送しているのだから、同じことだろう。 ルールにすればいいのではないのか?

重要な設定の区別

AIの説明によると、これは異なるケースだという。 CNAMEレコードでaqz.jpドメインをaqz-jp.pages.devに向けている設定は、Cloudflare Pagesの必須設定だ。

つまり次の通りに対応すればいいわけだ。

  • 削除すべきなのは:wwwのAレコード(192.0.2.1向け)
  • 維持すべきなのは:このCNAMEレコード(aqz-jp.pages.dev向け)

エラーの発生

設定を変更して2日後、アクセスしてみると:

このサイトにアクセスできません


www.aqz.jp にタイプミスがないか確認してください。


タイプミスでない場合は、Windows ネットワーク診断をお試しください。
DNS_PROBE_FINISHED_NXDOMAIN


解決への道のり

なんでやねん?! AIを問い詰める。話が違うやんけ!

このエラーはwwwに対するDNSレコードが完全に存在しないことを示しています。

実は、301リダイレクトを機能させるためには、wwwドメインのDNSレコードも必要です。以下の手順で修正しましょう:

  1. CloudflareのDNSセクションで:
  • wwwのAレコードを再度追加
  • タイプ: A
  • 名前: www
  • IPv4アドレス: 192.0.2.1(または現在のaqz.jpと同じIPアドレス)
  1. すでに設定済みのページルール(301リダイレクト)はそのままにしておきます。

この設定により:

  • まずDNSでwwwドメインが解決され
  • その後、ページルールによってnon-wwwにリダイレクトされる

という流れになります。DNS_PROBE_FINISHED_NXDOMAINエラーは、wwwドメインのDNSレコードが存在しないために発生していました。

痛恨の教訓

「実は…」って。あんたなあ?知ってて黙ってたんかい!

よく見かける警告文が頭をよぎる。 “Claude can make mistakes. Please double-check responses” ChatGPT の回答は必ずしも正しいとは限りません。重要な情報は確認するようにしてください。

ああ、そうですね。お前を信じた私が悪うござんしたね。 バイキンマンの言う通りだね。

「騙されたヤツが悪いんだ~!」

もっとも、AIを鵜呑みにするなという鉄則を守らなかった私が悪いのですから。 とはいえ、自分の非を認められるほど私は心が広くありません。

最終対応

削除したDNSレコードを再度設定した。 ついでにhttpからhttpsへのリダイレクトも設定しておいた。

これでまた様子見しよう。

翌日、問題なくリダイレクトされた。あとはGoogle Search Consoleでエラーが消えるのを待つだけだ。 確認できるは2週間後になる。頼むから消えてくだせえ。