Shopifyで"CNAMEレコードがありません"と表示される原因とその解決法(Cloudflare編)

Share
Shopifyで"CNAMEレコードがありません"と表示される原因とその解決法(Cloudflare編)
Photo by 傅甬 华 / Unsplash

はじめに

Shopifyで独自ドメイン(今回は shop.sakashita.page)を接続した際に、「CNAMEレコードがありません」というエラーが出続けて困った経験、ありませんか?

実際に私もこのエラーに直面し、Cloudflare側の設定を見直すことで解決したので、その詳細と原因、対処法をこの記事でまとめます。


結論:Cloudflareの"CNAMEフラット化"が原因だった!

Shopifyの管理画面でCNAMEレコードが正しく設定されているにもかかわらず警告が出る原因は、 Cloudflareの"CNAMEフラット化(CNAME Flattening)"という機能が有効になっていたからでした。

この機能が有効だと、CNAMEレコードの“名前”を返すのではなく、解決済みのIPアドレス(Aレコード)を返してしまうため、 Shopify側では「CNAMEが見つからない」と判断されてしまいます。


CNAMEフラット化とは?

CNAME(Canonical Name)レコードは、あるドメイン名を別のドメイン名に別名として割り当てる仕組みです。

例えば:

shop.example.com → shops.myshopify.com

このように“名前 → 名前”の関連を作るのがCNAMEですが、DNSの仕様上、ルートドメイン(apex domain)にはCNAMEを使えないという制約があります。

そこで登場するのがCNAMEフラット化です。

CloudflareのようなDNSサービスでは、ユーザーがCNAMEを設定していても、外部からの問い合わせに対してはIPアドレス(Aレコード)として返すことができます。 これにより、

  • ルートドメインでもCNAMEのような運用ができる
  • ブラウザのレスポンスが高速化する という利点があります。

ただし、“CNAMEがあるかどうか”をチェックするサービス(今回のShopifyなど)には、CNAMEが存在しないように見えてしまうというデメリットがあります。

メリット:

  • 高速な名前解決が可能
  • ApexドメインでもCNAME的な挙動を実現できる
  • 一部のCDNやクラウドサービスと相性が良い

デメリット:

  • CNAMEレコードがクライアントから見えない
  • Shopifyのように“CNAMEの存在”を前提とする仕組みと相性が悪い

私の設定環境|サブドメインのセットアップ

そもそもですがサブドメインのセットアップは正常に行われていることを確認してください。以下の公式ページを参考にしてください。

そして以下が私の設定環境です。

  • ドメインプロバイダー:Cloudflare
  • 使用ドメイン:shop.sakashita.page
  • Shopifyストアの接続先:shops.myshopify.com
  • DNSレコード:
    • shop サブドメインに CNAME を設定
    • CNAME先は shops.myshopify.com
    • プロキシ(オレンジの雲):オフ(DNSのみ)
    • それでも警告が消えない状態でした

試したこと一覧(すべて失敗)

  • Aレコードを使ってみる → Shopifyは動くが、警告は消えず
  • サポートに連絡 → 「www を使え」など的外れな回答
  • ローカルのDNSキャッシュ削除 → 解決せず

解決した方法

Cloudflareの設定画面にある以下の項目をオフにしました:

"すべての CNAME レコードの CNAME フラット化"

これをオフにすることで、DNSクライアントやShopify側からもCNAMEが明示的に見えるようになり、 即座にShopify管理画面上の警告が消えました。

成功画面のキャプチャ

フラット化ってそんなに悪いの?

実はそんなことはなく、通常のWebサイト運営では高速化や安定性のために有効な機能です。 ただし今回のように、「CNAMEの存在」を検出するシステムとの相性が悪いことがあるというだけ。


まとめ

  • Shopifyが"CNAMEがない"と表示するのはCNAMEレコードがないのではなく、見えていないだけの可能性がある
  • Cloudflareを使っている場合は"CNAMEフラット化"をオフにすることで解決できる
  • Shopifyサポートよりも自力で調査した方が早い場合も…(笑)

おまけ:技術的検証に使ったコマンド(Windows PowerShell)

# DNSキャッシュをクリア
Clear-DnsClientCache

# CNAMEレコードの確認
Resolve-DnsName shop.sakashita.page -Type CNAME

# Aレコードの確認
Resolve-DnsName shops.myshopify.com -Type A

この記事が役立つ人

  • Shopifyでカスタムドメインを使っていて、接続はできているのにエラーが出る人
  • Cloudflareを使ってDNSを管理している人
  • サポートに問い合わせたけど解決しなかった人

もしこの記事が役立ったら、ぜひシェアやブックマークをお願いします! あなたの時間を少しでも節約できますように ☕

Read more

青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu

イケイケなWinスクショアプリを作りました

パソコンのスクショってなんというか、地味というか、撮ってそのままだと何とものっぺりしていますよね。 特にWindowsだとMacっぽい丸っこい感じとかもなく、無骨だなあと。 ということで、それっぽくおしゃれな背景や角丸を付けておしゃれに撮影をしてくれるスクショアプリを作りました。 GitHubで公開しています。 GitHub - P4suta/Snaply: Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10)Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10) - P4suta/SnaplyGitHubP4suta ウィンドウ・領域選択・スクリーンのキャプチャができます。 タッチスクリーンなどにも対応しているはずです。 撮影をすると、クリップボードにコピーされ、フォルダーへの保存もされます。

By Sakashita Yasunobu
Find My Files

Find My Files

Windowsにおける爆速ファイル検索アプリの定番といえば、Everythingです。 voidtoolswebhost2 その高速さの理由は、NTFSの仕組みをうまく活用していることにあります。Windowsで一般的に使われているNTFSには、ファイル情報を管理するマスターファイルテーブル(MFT)と、ファイルシステムの変更履歴を記録するUSN Journalがあります。Everythingはこれらを利用することで、初回に高速にファイル一覧を構築し、その後はUSN Journalを監視してリアルタイムにインデックスを更新しています。そのため、数百万ファイル規模の環境でも非常に高速な検索を実現しています。 もちろん、単純にファイル名やパスを保持するだけでは、大量のメモリを消費してしまいます。また、数百万件ものファイルから一瞬で目的のものを見つけるためには、メモリ効率の高いデータ構造や高速な検索アルゴリズムなど、さまざまな工夫が必要になります。 このように、Everythingは見た目こそシンプルですが、中身はかなり高度なことをやっているソフトウェアです。 なお、Everyth

By Sakashita Yasunobu