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

公開 更新

サーチコンソールの正規表現が動かない?RE2で使える5つの書き方

サーチコンソールに正規表現を貼っても0件になり、SEO分析が進まない方へ。Search ConsoleはRE2構文のため、先読みと後読みが使えません。複数語、指名検索の除外、大小文字、先頭・末尾、数字を絞り込む5つの書き方と、動かない原因を解説します。

この記事のまとめ

サーチコンソールの正規表現フィルタはRE2構文で、既定は部分一致・大文字と小文字を区別しない動きをします。 つまずく最大の原因はRE2に先読みと後読みが無いことで、Google自身のドキュメントに(?!re) などが NOT SUPPORTED と明記されているため、「Aを含み、かつBを含まない」を1本の式で素直に書けません。 除外は式の中でやらず、「正規表現に不一致」を選んで反転させます。

サーチコンソール(Search Console)のフィルタで「カスタム(正規表現)」を選ぶと、複数の語をまとめて絞り込めます。

ただ、ここで多くの人が一度止まります。ネットで拾った正規表現を貼ったのに0件になる。あるいは「この語を含んで、あの語を含まない」を書こうとして、どうしても動かない。

原因はたいてい同じところにあります。サーチコンソールが使っているのはRE2という構文で、他の言語やツールで当たり前に使える書き方のうち、いくつかが最初から入っていません。この記事では、公式に書かれている仕様と、実際に使う5つの型だけに絞って書きます。

なお絞り込みは「見る」ための道具で、直す記事を決める作業とは別に進めることになります。理由は後半で触れます。

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

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

まず、公式が書いている3つの仕様

正規表現フィルタとは、クエリまたはページを、パターンでまとめて絞り込む機能です。Google公式ヘルプが「正規表現の詳細」として挙げているのは次の3点です。ここを外すと、書いた式がそのまま動きません。

項目公式の記述実務上の意味
構文RE2 構文が使用されます使えない書き方がある(後述)
既定の一致部分一致。^(文字列の先頭)または $(文字列の末尾)を使う場合を除き、どこにでも一致する前後に .* を足す必要はない
大文字と小文字既定では区別されない。区別するなら先頭に (?-i)SEO と書けば seo にも当たる

いちばん効くのは真ん中です。既定が部分一致なので、「〜を含む」を表したいだけなら、語をそのまま書けば済みます。.*リライト.* のように囲む必要はありません。

そして、「含む」だけで足りるなら正規表現を使う必要もありません。公式ヘルプは「次を含む項目 / 次を含まない項目」について「クエリまたは URL で一致させる(または除外する)部分文字列を1つ入力できます」と書いています。1語で足りるならそちら、複数の語や条件を一度に扱いたいときが正規表現の出番という切り分けです。

フィルタ全般の掛け方と、絞り込むと画面上部の合計が変わる理由はサーチコンソールのフィルタの使い方にまとめています。

つまずく最大の原因 — サーチコンソールの正規表現(RE2)には先読み・後読みが無い

Search ConsoleのRE2正規表現で使える基本仕様と、先読み・後読みが使えないこと、除外を不一致で扱う方法を示す図解

ここが本題です。「Aを含み、かつBを含まない」という条件を、1本の正規表現で素直に書くことはできません。

他のツールなら否定の先読みと呼ばれる (?!...) を使う場面ですが、RE2はこれを実装していません。RE2はGoogleが開発している正規表現エンジンで、公開されている構文リファレンスに、次のとおり並んでいます。

(?=re)   before text matching «re»       NOT SUPPORTED
(?!re)   before text not matching «re»   NOT SUPPORTED
(?<=re)  after text matching «re»        NOT SUPPORTED
(?<!re)  after text not matching «re»    NOT SUPPORTED
\1       backreference                   NOT SUPPORTED

先読み・後読み・後方参照が、まとめて使えません。ネットで見つけた「指名検索を除外する正規表現」がそのまま動かないのは、たいていこれが理由です。書き方が間違っているのではなく、この画面では最初から使えない機能を使っています。

では、どう書くか — 否定は式の外に出す

答えはシンプルです。除外を式の中でやろうとせず、フィルタのモードで反転させます。公式ヘルプにこう書かれています。

指定した値以外のすべての値を表示するには、[正規表現に不一致] を選択します。それ以外の場合は、デフォルトの [正規表現に一致] を使用します。
— Google公式ヘルプ

つまり「除きたいものを式に書いて、モードを『不一致』にする」という順番です。式そのものは「含む側」だけを書けばよく、否定の記号は要りません。

「Aを含み、かつBを含まない」の両方を一度に見たい場合は、同じディメンションに条件を重ねるのではなく、2段階に分けるのが確実です。まず「不一致」でBを落とした状態を見る、それでも足りなければエクスポートして表計算で絞る、という順になります。

実際に使う5つの型

公式ヘルプのワイルドカード表から、個人ブログで実際に出番のあるものだけを型にしました。ドメインはサンプルです。

① 複数の語をまとめる

(リライト|書き直し|修正)

公式ヘルプは「複数の値の場合は、縦線(|)で区切り、式全体を丸かっこで囲みます」と書いています。これが正規表現を使う一番の理由で、「次を含む」では1語しか入れられません。

同じ形で質問形のクエリだけを拾うこともできます。

(とは|方法|やり方|なぜ|できない)

「答えを探している人」がどの語で来ているかが分かるので、記事の書き出しを直すかどうかの材料になります。

② 指名検索を除いて、実力だけ見る

(ブログ名|サイト名|運営者名)

この式を入れたうえで、モードを「正規表現に不一致」にします。式の中に否定を書かないのがポイントです。なお「ブログ名」「サイト名」の部分は、自分のブログ名や運営者名に置き換えてください。そのまま貼ると、文字どおり「ブログ名」という語を含むクエリを除くだけの式になります。

ブログ名で検索してくる人は最初からあなたを探しているので、混ざったままだと「検索から新しく来た人」の実態が見えません。

指名検索が混ざるとCTRがどう歪むかは指名検索が混ざるとCTRが高く出るに分けて書いています。

③ 大文字と小文字を区別する

(?-i)SEO

既定では区別されないので、区別したいときだけ先頭に (?-i) を付けます。公式ヘルプは例として「(?-i)AAA は https://example.com/AAA に一致しますが、https://example.com/aaa には一致しません」を挙げています。日本語のクエリでは、ほぼ出番がありません。

④ 先頭・末尾で固定する

ページをこのディレクトリ配下だけに絞る式です。

^https://example\.com/blog/

クエリを「リライト」で始まるものだけに絞る式です。

^リライト

既定が部分一致なので、^ を付けて初めて「先頭から」の意味になります。公式ヘルプの例では「^example は「example」に一致しますが、「an example」には一致しません」と説明されています。

URLに使うときは. を \. と書くのを忘れないでください。. は「任意の1文字」の意味なので、そのままだと examplebcom のような文字列にも当たります。実害は小さいですが、癖にしておくほうが安全です。

⑤ 数字を含むクエリを拾う

\d

公式ヘルプの表に「\d … 0~9 の 1 つの数字」とあります。「2026」のような年号や「3選」のような数字が入ったクエリをまとめて見たいときに使えます。年号入りのタイトルを持つ記事が古びていないかを確かめるのに向きます。

古い情報を含む記事の直し方は古い記事の情報を更新するリライトの方法に書きました。

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

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

0件になったときに見る3か所

書いた式で結果が出ないとき、疑う順番が決まっています。

  1. 使えない記号を使っていないか。(?!...) (?=...) (?<=...) が入っていたら、その式はこの画面では動きません
  2. そのクエリが、そもそも表に出ているか。検索された回数が少ないクエリは、プライバシー保護のためGoogleが表から除いています。式が正しくても、元データに無ければ0件です
  3. 期間が短すぎないか。公式ヘルプに「デフォルトの検索パフォーマンス レポートには、過去 3 か月間の…データが表示されます」とあります。絞り込みを強くかけるほど、母数のある期間が必要になります

表に出ないクエリの仕組みはサーチコンソールの合計が合わないに書いています。

正規表現を書かずに済ませる手もある

全員が正規表現を覚える必要はありません。目的別に、公平に並べます。

やりたいこと向いている手
1つの語で絞る / 除く「次を含む」「次を含まない」。正規表現は要らない
複数の語をまとめる、先頭で固定する正規表現
条件を組み合わせる、集計し直すエクスポートして表計算。式の制約から自由になる
とりあえず設定を任せたいAIの設定アシスタント(下記のとおり提供範囲が限られる)

最後のものについて補足します。公式ヘルプにはAIを使ってパフォーマンスレポートの設定を頼める試験運用版の機能が載っており、例として「一般的な動物の名前を含む検索語句の過去6か月間の平均掲載順位とクリック数を表示して」というリクエストが「正規表現に一致する検索語句」フィルタに変換されると書かれています。

ただし制約が明記されています。「現在、各ユーザーは1日あたり20件のリクエストに制限されています」、「現在、この機能はテストとフィードバックのために、ごく一部のSearch Consoleユーザーにのみ表示されています」、 そして検索結果のパフォーマンスレポートでのみ使用でき、Discoverレポートやニュースレポートでは使えないとあります。画面に無くても異常ではありません。

調べ終わったCSVを、そのまま判定に使わない

最後に1つだけ。正規表現で絞った状態でエクスポートすると、その絞り込みが反映されたまま書き出され、判定できるページが減ります。「正規表現で調べる」と「絞らずに落として判定する」は、別々にやる作業だと考えてください。

絞った状態で落としたときに何が起きるかはサーチコンソールのフィルタの使い方に、どの期間で落とすかは「ページ」CSVはどの期間で落とすかに書いています。

よくある質問

ネットで見つけた正規表現が動きません

先読み・後読みが入っていないか確認してください。(?!...) (?=...) (?<=...) (?<!...) は、Google公開のRE2構文リファレンスですべて NOT SUPPORTED と明記されています。他のツール向けに書かれた式には普通に入っているので、そのまま持ってくると動きません。除外は式ではなく「正規表現に不一致」で行います。

「Aを含み、Bを含まない」を1つの式で書けますか

素直には書けません。否定の先読みが使えないためです。「正規表現に不一致」でBを落とすか、エクスポートして表計算で絞り込むのが現実的です。

大文字と小文字は区別されますか

既定では区別されません。公式ヘルプに「デフォルトの正規表現一致では、大文字と小文字は区別されません」とあり、区別したい場合は式の先頭に (?-i) を追加します。

前後に .* を付ける必要はありますか

要りません。公式ヘルプは「デフォルトの一致は『部分一致』です。^ または $ を使用する場合を除き、正規表現はターゲット文字列のどこにでも一致します」と書いています。付けても害はありませんが、式が読みにくくなるだけです。

正規表現はページ(URL)にも使えますか

使えます。フィルタを追加するとき「クエリ」または「ページ」を選べます。カテゴリごとの成績を見たいときは^https://example\.com/blog/ のようにディレクトリで固定すると絞れます。

まとめ

  • サーチコンソールの正規表現はRE2構文。既定は部分一致で、大文字と小文字を区別しない
  • RE2には先読み・後読み・後方参照が無い。Google公開の構文リファレンスに(?!re) などがNOT SUPPORTEDと並んでいる。拾ってきた式が動かない原因はたいていこれ
  • 除外は式の中でやらない。「除きたいもの」を式に書いて、モードを「正規表現に不一致」にする
  • 使う型は5つ。複数語は (A|B|C)、指名検索の除外は不一致モード、大小の区別は (?-i)、先頭固定は ^、数字は \d
  • 0件のときは①使えない記号 ②そもそも表に出ていないクエリ ③期間が短いの順で疑う
  • 1語で足りるなら「次を含む」で十分。AIの設定アシスタントもあるが、1日20件・ごく一部のユーザーのみ・検索結果レポート限定と公式に明記がある
  • 絞り込みは「見る」ための道具。絞ったままCSVを落とすと判定できるページが減る

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

リライトレーダーは、「絞らずに落としたCSVから、直す記事を決める」ほうを担当するツールです。 Search Console のエクスポートをZIPのまま落として貼るだけで、掲載順位4.0〜20.5位・表示回数100回以上のページだけを拾い、改善余地スコアの大きい順に並べます。式を書く必要はありません。判定と候補3記事の改善余地スコアの確認、そのうち1記事分の診断カードまでは無料で、残りの診断カードが2,980円(税込)の買い切りです。月額課金や自動更新はありません。ログインも不要です。CSVファイルそのものはブラウザの外に出ません(診断カードを出すときに選んだ1ページのURL・数値・入力したキーワードを、「ページタイトルを取得する」を押したときに判定に出たページのURLを最大10件送ります)。

⚠️ ただし、向かない人がいます。この記事のようにクエリを切り口ごとに掘りたい人には向きません。読むのはページの行だけで、クエリで絞る機能はありません。正規表現で切り取ったCSVを渡すと、判定できるページはそのぶん減ります。条件を自由に組み替えて分析したい段階なら、Search Console の画面をそのまま使うほうが確実です。

Search ConsoleのZIPで無料判定する

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

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

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

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

関連する記事

この記事を書いた人

みやこし

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

noteQiitaZenn

ブログの一覧に戻る