Vercel から Cloudflare Pages へ移行した手順と、古い URL の転送
広告を載せるサイトを Vercel から Cloudflare Pages に移したときの手順を、実際の作業順にまとめます。サイト内の URL の書き換え、古い URL から新しい URL への転送、Search Console・AdSense の登録のやり直しまで扱います。
移行の全体の流れ
私は2026年10月に、広告を載せる3つのサイトを Vercel から Cloudflare Pages に移しました。作業の順番は次のとおりです。順番を守ると、利用者が「ページが見つからない」状態になる時間を短くできます。
- Cloudflare Pages に新しいプロジェクトを作って公開する
- サイトの中に書いている自分の URL(サイトマップ・canonical など)を新しい URL に変える
- 古い Vercel の URL に来た人を、新しい URL へ転送する
- Search Console に新しい URL を登録し、サイトマップを送る
- AdSense に新しい URL を登録し直す
用語の説明
- canonical(カノニカル):「このページの正式な URL はこれです」と検索エンジンに伝えるタグ
- 転送(リダイレクト):ある URL を開いた人を、自動で別の URL に移動させる仕組み
- 恒久的な転送:「このページは引っ越しました」と伝える転送。検索エンジンに新しい URL を覚えてもらうために使う
- vercel.json:Vercel のプロジェクトの設定を書くファイル
サイト内の URL を書き換える
見落としやすいのが、サイトの中に書いている自分の URL です。サイトマップ(sitemap.xml)、各ページの canonical、SNS で共有するときの URL などに古い URL が残っていると、検索エンジンが古い方を正しいページだと判断してしまうおそれがあります。
私のサイトでは、設定ファイルにサイトの URL を1か所だけ書き、サイトマップや canonical はそこから作るようにしていました。そのため、書き換えは1か所で済みました。これから作る人は、URL をあちこちに直接書かない作りにしておくと、後で楽になります。
古い URL からの転送
Vercel 側には、新しい URL へ転送するだけの小さなプロジェクトを残しました。vercel.json に、すべてのパスを新しい URL の同じパスへ転送する設定を書いて公開します。これで、古い URL の記事を開いた人も、自動で新しい URL の同じ記事に移動します。
転送だけのプロジェクトには広告を載せません。中身は vercel.json だけなので、商用利用にはあたらないと判断して、無料プランのまま残しています。
{
"redirects": [
{
"source": "/(.*)",
"destination": "https://my-site.pages.dev/$1",
"permanent": true
}
]
}Search Console と AdSense
Search Console では、URL ごとに「プロパティ」を登録するため、新しい URL を新しいプロパティとして追加し、サイトマップを送り直しました。所有権の確認は、HTML の meta タグで行いました。
AdSense も、サイトの一覧に新しい URL を追加して、審査を申し込み直しました。AdSense はサイトごとに審査されるため、URL が変わったら登録し直すのが確実だと考えています。
よくあるつまずき
- サイトマップの中の URL が古いままで、Search Console で正しく読まれない
- 転送先の URL の最後に「/$1」を付け忘れ、どのページを開いてもトップに飛んでしまう
- 転送の設定を公開する前に、Vercel の元のプロジェクトを消してしまう
- ads.txt やプライバシーポリシーなど、新しいサイトに置き忘れるファイルがある
移行後の確認のチェックリスト
移行が終わったら、次の点を確認しました。
- 古い URL のトップページを開くと、新しい URL のトップに移動するか
- 古い URL の記事ページを開くと、新しい URL の同じ記事に移動するか
- 新しい URL の sitemap.xml の中身が、新しい URL になっているか
- 各ページの canonical が新しい URL になっているか
- 新しい URL で ads.txt が開けるか
私の場合
3つのサイトとも、Vite と React で作っていたので、公開先を変えてもビルドの方法はそのままでした。変わったのは、公開のコマンドと、URL を書いた設定だけです。
一方で、移行するとそれまでの検索での評価がどこまで引き継がれるかは、私には分かりません。サイトがまだ小さいうちに移行を決めたのは、その影響を小さくしたかったからです。
※手順は執筆時点のものです。各サービスの画面や設定方法は変わることがあります。