本文へ移動
リライトレーダーRewrite Radar
メニュー

公開

サーチコンソールのCSVが文字化けする理由と、直し方3つ、ファイルは壊れていません

GoogleはCSVをUTF-8で書き出しますが、日本語環境のExcelはShift_JISとして読もうとします。だから「表示回数」が「陦ィ遉コ蝗樊焚」になります。直し方は文字コードを指定した取り込み、スプレッドシート、UTF-8で保存し直しの3つ。数字そのものは壊れていません。

この記事のまとめ

サーチコンソール(Search Console)のCSVが文字化けするのは、GoogleがUTF-8で書き出すのに対し、日本語環境のExcelがCSVをShift_JIS(CP932)として読もうとするためです。「表示回数」が「陦ィ遉コ蝗樊焚」のようになります。URLと数字は無事で日本語だけ壊れているなら、この化け方です。直し方は3つ。Excelの「データ」タブから文字コードを指定して取り込む、Googleスプレッドシートで開く、メモ帳などでUTF-8(BOM付き)として保存し直す。画面で化けていても、ファイルの中の数字そのものは壊れていません。ただし化けた表示のまま上書き保存すると、元に戻せなくなることがあります。

サーチコンソールから落としたCSVをExcelで開いたら、日本語が「陦ィ遉コ蝗樊焚」のような記号の羅列になっていた。あるいは1列目の見出しだけ「上位のページ」の前に変な文字が付いている。どちらもよくある文字化けで、ファイルが壊れたわけではありません。

原因は1つです。CSVというファイル形式は、自分が何の文字コードで書かれているかを名乗りません。だから開く側が推測し、推測を外すと化けます。仕組みが分かれば直し方も選べるので、まず仕組みから書きます。

化けたファイルをそのまま読み込めるツールも作りましたが、Excelで直す方法から先に書きます。自分で直せたほうが早い場面もあります。

次に直す記事を自分のデータで調べる

Search ConsoleのZIPを読み込むと、候補の判定と1記事分の診断カードを無料で確認できます。登録は不要です。ZIPが無い場合は、診断カードの見本を確認できます。

なぜサーチコンソールのCSVは文字化けするのか

CSVの中身は、ただのテキストです。テキストは最終的に数字の並び(バイト列)としてファイルに保存されます。「この数字はこの文字」という対応表が文字コードで、書いたときと読むときで別の表を使うと、別の文字になります。

サーチコンソールが書き出すCSVはUTF-8です。一方、日本語環境のExcelは、CSVファイルをダブルクリックで開くとき Shift_JIS(CP932)として解釈することがあります。この食い違いが文字化けの正体です。

具体的に見たほうが早いと思います。「表」という字を例にします。

「表示回数」をUTF-8で保存したときの中身(16進数)
  e8 a1 a8  e7 a4 ba  e5 9b 9e  e6 95 b0
   表        示        回        数     ← 1文字が3バイト

これをShift_JISの対応表で読むと
  e8 a1 → 陦   a8 → ィ   e7 a4 → 遉   ba → コ   ...
  結果: 陦ィ遉コ蝗樊焚

ポイントは、文字の区切り位置がずれることです。UTF-8では漢字1文字が3バイトですが、Shift_JISでは2バイトです。読む側が2バイトずつ切っていくので、1文字目からずれて、そのあとが連鎖的に全部ずれます。だから一部だけ化けるのではなく、日本語がまるごと別物になります。

本来の文字Shift_JISとして読んだ結果
表示回数陦ィ遉コ蝗樊焚
ブログ繝悶Ο繧ー
検索讀懃エ「
CTR / 1234 / https://そのまま。化けない

表の細かい見え方は環境で少し変わります。Shift_JISの対応表に無いバイトが出ると、そこは「?」や別の記号になるためです。それでも「日本語だけが壊れて、英数字と記号は無事」という特徴は変わりません。

URLと数字が無事なら、データは壊れていない

ここが実務上いちばん重要なところです。アルファベット・数字・記号は、UTF-8でもShift_JISでも同じ1バイトで表されます。だから化けません。

サーチコンソールのページCSVに入っているのは、URL・クリック数・表示回数・CTR・掲載順位です。このうち日本語なのは、1行目の見出しだけです。2行目以降は URL と数字なので、見出しが化けていても中の数字は読めます。

例外は、URLに日本語がそのまま入っているサイトです。その場合はURLも同じように壊れて見えます。ただ多くのサイトでは、URLの日本語は%E3%81%82 のような英数字の並び(パーセントエンコード)に変換されているので、そのまま読めます。

もう一つの化け方 ―「上位のページ」の前に見えない文字が付く

全部が化けるのではなく、1列目の見出しだけがおかしいことがあります。画面上は「上位のページ」に見えるのに、ツールに読ませるとその列だけ認識されないというやつです。

これはBOM(バイトオーダーマーク)という、ファイルの先頭に付く3バイトの目印が原因です。

サーチコンソールが出したCSV(BOM無し)
  上位のページ,クリック数,表示回数,CTR,掲載順位

ExcelでUTF-8として保存し直したCSV(BOM付き)
  [EF BB BF]上位のページ,クリック数,表示回数,CTR,掲載順位
   ↑この3バイトは画面に表示されない

BOMは「このファイルはUTF-8です」と名乗るための目印で、Excelに正しく開かせたいときには役に立ちます。ところが目印だと知らないプログラムは、これを見出しの一部として読みます。その結果、1列目の名前が「上位のページ」ではなく「見えない文字 + 上位のページ」という別の文字列になり、列の照合に失敗します。

人間の目には違いが見えないのが、この問題の厄介なところです。「どう見ても合っているのに弾かれる」ときは、たいていこれです。

UTF-8で書かれたCSVをShift_JISとして開くと文字の区切り位置がずれて日本語が壊れる仕組みと、Excelの文字コード指定インポート・Googleスプレッドシートで開く・UTF-8で保存し直すという3つの直し方

サーチコンソールのCSVの文字化けを直す3つの方法

どれを選んでもかまいません。手元にある道具で決めてください。

方法向いている人手間
Excelで文字コードを指定して取り込むExcelで作業を続けたい数クリック
Googleスプレッドシートで開くGoogleアカウントがあるいちばん速い
UTF-8(BOM付き)で保存し直すそのファイルを何度も開く1回だけ

方法1: Excelの「データ」タブから文字コードを指定して取り込む

ダブルクリックで開くのをやめるのがコツです。ダブルクリックだとExcelが文字コードを推測しますが、取り込み機能を使えば、こちらから指定できます。

  1. Excelで空のブックを開く
  2. 「データ」タブから、テキストファイル/CSVを取り込むメニューを選ぶ
  3. 化けているCSVを選ぶ
  4. プレビュー画面で文字コード(元のファイル)を「UTF-8」に変える
  5. プレビューの日本語が読めるようになったら読み込む

メニューの名前はExcelのバージョンで違います。「テキストまたはCSVから」「外部データの取り込み」「テキストファイル」など、呼び方が変わっているので、「データ」タブの中でCSVを指すものを探してください。やっていることはどれも同じで、文字コードをこちらが指定するだけです。

プレビューで日本語が読めているかを必ず確認してください。ここで読めていなければ、読み込んでも読めません。

方法2: Googleスプレッドシートで開く

いちばん速い方法です。Googleスプレッドシートは文字コードを自動で判別します。新しいスプレッドシートを作り、「ファイル」からインポートを選んでCSVを指定するだけです。ドライブにアップロードしてから開いても同じです。

サーチコンソールのCSVはUTF-8なので、たいていそのまま読めます。Googleが出したファイルをGoogleのツールで開いているので、当然といえば当然です。

ただしZIPのままではインポートできません。先に解凍して、中のCSVを指定してください。

方法3: UTF-8(BOM付き)で保存し直す

そのファイルをこれから何度もExcelで開くなら、これが根本的です。ファイルの先頭に「これはUTF-8です」という目印(BOM)を付けておくと、 Excelが推測に失敗しなくなります。

  1. CSVをメモ帳などのテキストエディタで開く(ここでは日本語が正しく読めるはずです)
  2. 「名前を付けて保存」を選ぶ
  3. 文字コードの欄で「UTF-8(BOM付き)」を選んで保存する
  4. 保存したファイルをExcelで開く

メモ帳で開いた時点で日本語が読めるのが正常です。テキストエディタはUTF-8を素直に読むので、ここで化けていたら別の問題を疑ってください。

BOM付きを選ぶ理由は、Excelがそれを見てUTF-8だと判断できるからです。逆に言うと、BOMを読み飛ばさないツールに渡すと、さっき書いた「1列目だけおかしい」が起きます。Excelのために付けた目印が、別の場所で邪魔になるという関係です。

やってはいけないこと

化けた表示のまま、上書き保存しないでください。

開いただけなら、ファイルの中身は無傷です。間違った表で読んでいるだけで、バイト列は元のままだからです。ところがそこで保存すると、画面に見えている化けた文字がそのまま書き込まれます。

しかも化けた文字の一部は「?」などに置き換わっていることがあり、その場合は元の情報が消えます。もう戻せません。

  • 化けたまま保存する — 元に戻せなくなることがある
  • 化けたまま .xlsx で保存する — 化けた文字がExcel形式で固定される
  • 「壊れた」と思ってエクスポートし直す — 同じファイルが落ちてくるので、同じことが起きる

いちばん安全なのは、化けたファイルには触らず、別の開き方で開き直すことです。上の3つの方法は、どれも元ファイルを書き換えません(方法3だけは別名で保存してください)。

文字化けしたCSVでも、判定に必要な数字は読める

リライトする記事を選ぶときに使うのは、次の4つです。

  • URL — どのページか
  • 表示回数 — 判断材料が足りているか(目安は100回以上)
  • CTR — クリックされている割合
  • 掲載順位 — 期待CTRを引き当てるための位置

全部、数字とURLです。つまり文字化けしていても、列の位置さえ分かれば判断はできます。化けているのは1行目の見出しだけで、列の順番は「URL、クリック数、表示回数、CTR、掲載順位」で固定です。

とはいえ、見出しが読めない表で作業するのは間違いのもとです。直せるなら直したほうがいいのは確かです。

4つの数字をどの順に見るかはサーチコンソールの見方、どの期間で落とすかは「ページ」CSVはどの期間で落とすかに書いています。

文字化けを直したあと、何をするか

CSVが読めるようになったら、次はどの記事を直すかを決める工程です。やることは決まっています。

  1. 掲載順位から、その順位で期待できるCTRを引き当てる
  2. 実際のCTRとの差を出す
  3. 差に表示回数を掛けて、取りこぼしているクリック数を出す
  4. その数字の大きい順に直す

手順はリライトする記事の見つけ方に全部書いています。スプレッドシートで再現できます。

ただ、文字化けを直して、列を整えて、期待CTRの表を作って、記事の数だけ計算する。ここまでで手が止まる人が多いのも事実です。

化けたCSVをそのまま読んで判定するツールも作ったので、面倒なら使ってください。詳しくは記事の最後に書きます。

直す記事と作業内容を決める

Search ConsoleのZIPを読み込むと、候補の判定と1記事分の診断カードを無料で確認できます。登録は不要です。ZIPが無い場合は、診断カードの見本を確認できます。

よくある質問

Excelで開いたら文字化けしていました。ファイルは壊れましたか

開いただけなら壊れていません。文字化けは「間違った対応表で読んでいる」だけの状態で、ファイルの中のバイト列は元のままです。別の開き方で開き直せば、正しく読めます。

ただし化けた状態で上書き保存すると、そのときは本当に書き換わります。保存せずに閉じて、この記事の3つの方法のどれかで開き直してください。

「上位のページ」の前に見たことのない文字が付いています

BOMという、ファイルの先頭に付く3バイトの目印です。ExcelでUTF-8として保存し直したときなどに付きます。データそのものには影響しません。

気になる場合は、テキストエディタで「UTF-8(BOM無し)」を選んで保存し直せば消えます。BOMを読み飛ばして処理するツールなら、付いたままでも問題ありません。

ZIPを解凍したら、中のファイル名まで化けています

ZIPはファイル名も文字コードの影響を受けます。「ページ.csv」が「繝壹?シ繧ク.csv」のようになることがあります。中身が壊れているわけではないので、開けば読めます。

解凍ソフトを変えると直ることがありますが、ファイル名が化けても、中身を1つずつ開けば見分けはつきます。列の1行目が「上位のページ」で始まるものが、ページ単位のCSVです。

まとめ

  • 原因はUTF-8で書かれたCSVを、Shift_JISとして読んでいること。文字の区切り位置がずれて、日本語が連鎖的に壊れる
  • URLと数字が無事で日本語だけ壊れているなら、この化け方。データそのものは壊れていない
  • 1列目だけおかしいときはBOM。先頭の見えない3バイトが見出しの一部として読まれている
  • 直し方は3つ。Excelの「データ」タブから文字コード指定 / Googleスプレッドシートで開く / UTF-8(BOM付き)で保存し直す
  • 化けた表示のまま上書き保存しない。元に戻せなくなることがある

文字化けは、ファイルの故障ではなく読み方の食い違いです。そう分かってしまえば、どの方法で直しても同じところに着地します。


ここから先は、私が作ったツールの話です。

文字化けで手が止まるのが嫌だったので、化けたままのファイルでも読めるように作りました。UTF-8(BOM付き・BOM無し)・Shift_JIS(CP932)・UTF-16 に対応していて、 BOMは読み飛ばします。ZIPのまま落として、そのまま渡せます(解凍もファイル選びも要りません)。 ZIPの中のファイル名が化けていても、中身を見て判定に使えるものを選びます。

読み込んだあとは、掲載順位4.0〜20.5位・表示回数100回以上のページだけを対象に、順位から期待できるCTRとの差に表示回数を掛けて、改善余地スコアの大きい順に並べます。判定と候補3記事の改善余地スコアの確認、そのうち1記事分の診断カードまでは無料で、残りの診断カードが2,980円(税込)の買い切りです。月額課金や自動更新はありません。ログインも不要です。

CSVファイルそのものはブラウザの外に出ませんが、診断カードを出すときだけ、選んだ1ページぶんの数値(URL・キーワード・順位・表示回数・CTR)を送ります。タイトルを自動取得するボタンを押した場合は、最大10件のURLを送ります。

⚠️ 向かない場合もあります。Excelで開いて .xlsx として保存し直したファイルは読めません(CSVのまま渡してください)。また表示回数が少ないブログでは、判定できるページが出ません。100回未満だとCTRが偶然で振れるためです。まずは記事を増やすほうが先の段階なら、このツールは向きません。

Search ConsoleのZIPで無料判定する

Search ConsoleのZIPを読み込むと、候補の判定と1記事分の診断カードを無料で確認できます。登録は不要です。ZIPが無い場合は、診断カードの見本を確認できます。

この記事の内容をツールにしています

Search Console の「ページ」CSVを貼ると、改善余地のある記事を順番に出します。 判定とご自分の記事1件分の診断カードは無料です。ログイン不要。CSVファイルはアップロードせず、ブラウザ内で解析します。

リライトレーダーで無料診断する

関連する記事

この記事を書いた人

みやこし

ブログのリライトで「どの記事を直すか」を数字で決めるSEOライター向けツールを作っています。 掲載順位ごとの平均クリック率、AI Overviewによるクリック減の補正、タイトルの直し方など。

noteQiitaZenn

ブログの一覧に戻る