> ## Content Index
> Fetch the complete content index at: https://www.sakashita.page/llms.txt
> Use this file to discover other available public pages before exploring further.

# Shopifyで"CNAMEレコードがありません"と表示される原因とその解決法（Cloudflare編）
- URL: https://www.sakashita.page/shopify-cname-record-missing-cloudflare-fix/
- Published: 2025-04-04T15:00:00.000Z
- Updated: 2025-05-12T05:42:00.000Z
- Author: Sakashita Yasunobu
- Tags: 技術

### はじめに

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の存在”を前提とする仕組みと相性が悪い

---

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

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

- [Shopifyヘルプセンター｜外部サービスのサブドメインをShopifyに接続する](https://help.shopify.com/ja/manual/domains/add-a-domain/connecting-domains/connect-subdomain)
- [Shopifyヘルプセンター｜外部ドメインをオンラインストアに使用する際の留意事項](https://help.shopify.com/ja/manual/domains/add-a-domain/connecting-domains/considerations)

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

- ドメインプロバイダー：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管理画面上の警告が消えました。**

![成功画面のキャプチャ](https://storage.ghost.io/c/94/1f/941f9972-ad5c-4231-a438-ca329c85433f/content/images/2025/04/2025-04-05-00.22.24-admin.shopify.com-9cd4fc314437.jpg)

---

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

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

---

### まとめ

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

---

### おまけ：技術的検証に使ったコマンド（Windows PowerShell）

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

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

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

```

---

### この記事が役立つ人

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

---

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