01 / 本文
直したはずのものが本番に出ていない
リポジトリでは直っているのに、本番のHTMLが古いままだった。pushはできている。エラーも出ていない。
デプロイのログを探したが、そもそも最近のデプロイが1件も無かった。 最後のデプロイは数か月前で、そこから1度も走っていない。
02 / 本文
プロジェクトがGitに接続されていなかった
プロジェクト一覧を見ると、該当するものに Connect Git Repository と表示されていた。
過去にCLIから手で流したビルドがそのまま配信され続けていた。push しても何も起きないのは正しい動作で、接続されていないのだから当然だった。
同じアカウントの中に、接続済みのプロジェクトと未接続のプロジェクトが混ざっている。接続済みのほうを見ていると、未接続のほうも同じだと思い込む。
03 / 本文
何が起きていたか
古いビルドが配信され続けた結果、SEO上の実害が出ていた。
- 2つの独自ドメインの canonical が、どちらも *.vercel.app を指していた
→ 独自ドメインが自分自身をインデックスさせられない状態
- 別のサイトでは、サイトマップと canonical が308でリダイレクトするURLを指していた
- トップページの本文が180字のまま(修正後は704字)
どれもコードでは直っていた。届いていなかっただけ。
04 / 本文
直し方
プロジェクト → Settings → Git → GitHub → リポジトリを検索して Connect。GitHub連携そのものが済んでいれば、承認画面は出ない。
ブランチ名を確認する。 master のままのリポジトリが混ざっていると、接続しても対象ブランチが合わずにデプロイされない。
project-a → owner/project-a ブランチ master(main ではない)
project-b → owner/project-b ブランチ main05 / 本文
一覧で機械的に洗う
1つ見つかったら、他も同じ状態の可能性が高い。プロジェクト一覧で Connect Git Repository の表示を探す。
実際に確認したところ、6件が未接続のまま残っていた。どれも独自ドメインが割り当てられていて、古いビルドが出ていた。
06 / 本文
本番側から確かめる
管理画面だけ見ても、配信されている中身が新しいかは分からない。本番のHTMLを取って、直したはずの箇所があるかを見る。
curl -s https://example.jp/ | grep -oE 'rel="canonical" href="[^"]*"'
curl -s https://example.jp/sitemap.xml | grep -c '<loc>'07 / 本文
まとめ
- push しても反映されないときは、Gitに接続されているかを先に見る
- 未接続だと、過去に手で流したビルドが配信され続ける
- canonical が *.vercel.app のままだと独自ドメインが評価されない
- 接続時はブランチ名を確認する
- 1件見つかったら、一覧で全部洗う
コメント
この記事へのコメント
お名前だけで投稿できます。アカウント登録やログインは不要です。 いただいたコメントは確認のうえ公開します。