URL スラッグの SEO 対策:ハイフン区切りの kebab-case を選ぶ理由

最適な URL スラッグは、数個の小文字の単語をハイフンでつないだものです。Kebab_Case_Slugs ではなく kebab-case-slugs の形にします。Google 自身のドキュメントがアンダースコアよりハイフンを推奨しており、Google は URL のパスの大文字・小文字を区別して扱うため、小文字に統一しておけば、意図せず重複ページができるのを防げます。URL スラッグについて世間で言われているほかのほとんどのこと(理想的な長さ、ストップワード、キーワードの位置)は、ルールというより判断の問題です。この記事では、その 2 つを分けて説明します。
ハイフンとアンダースコア:Google が実際に言っていること
ここでは SEO にまつわる俗説に頼る必要はありません。Google がURL 構造のベストプラクティスで直接述べているからです。
We recommend using hyphens (-) instead of underscores (_) to separate words in your URLs, as it helps users and search engines better identify concepts in the URL.(URL 内の単語を区切るには、アンダースコア(_)ではなくハイフン(-)を使うことをおすすめします。ユーザーと検索エンジンが URL 内の概念を見分けやすくなるためです。)
理由は簡単にわかります。アンダースコアは、単語をひとまとまりに保つために使われてきました。プログラマーが関数を format_date と名付けるのは、まさにそれを 1 つの単位として読んでほしいからです。一方ハイフンは、別々の単語の間の区切りとして読まれます。このページでは、次のような例でその点を示しています。
| URL パス | Google の見解 |
|---|---|
/summer-clothing/filter?color-profile=dark-grey | 推奨(ハイフン) |
/summer_clothing/filter?color_profile=dark_grey | 非推奨(アンダースコア) |
/greendress | 非推奨(単語をつなげている) |
Google が言っていないことにも注目してください。アンダースコアの URL は上位表示されないとも、無視されるとも、Google は一度も主張していません。そう言い切るブログ記事も見かけますが、噂として受け止めましょう。文書化されている立場は推奨であり、そこには筋の通った理由が添えられています。
スラッグ内のキーワードはどれくらい重要か
多くの人が思っているよりは重要ではありません。Google の SEO Starter Guide は、「keywords in the domain name or URL path」(ドメイン名や URL パスに含まれるキーワード)を、重点を置かなくてよいものの 1 つに挙げています。順位の観点では「have hardly any effect beyond appearing in breadcrumbs」(パンくずリストに表示される以外はほとんど影響がない)とも述べています。ただし同じガイドは、わかりやすい URL を付けることは勧めています。URL の一部が検索結果にパンくずリストとして表示されることがあり、その結果が役に立ちそうかどうかを人が判断するときの材料になるためです。
つまり、良い URL スラッグを書く本当の理由は、人のためです。/blog/seo-url-slugs-kebab-case のようなスラッグなら、クリックする前に何が読めるかが伝わり、チャットに貼り付けても意味が残り、声に出して読み上げるのも簡単です。/p?id=8812 のようなスラッグには、そのどれもありません。
これは、よくある心配にも答えてくれます。昔の my_post という URL をすべて my-post に変えるべきでしょうか。サイトの再構成をすでに行う予定でもない限り、私たちはおすすめしません。URL を変えるにはリダイレクトを設定し、検索エンジンが追いつくのを待つ必要があり、文書化されているメリットは小さいからです。新しいものはすべてハイフンにして、問題なく動いている URL は手を付けずに残しましょう。移す場合は、パーマリンク、URL 構造、安全なリダイレクトのガイドで方法を解説しています。
URL スラッグを小文字にすべき理由
URL のホスト部分(Example.com)は大文字・小文字を区別しませんが、そのあとに続く部分は区別されることがあります。Google のドキュメントは、URL の扱いが大文字・小文字を区別すると明言しており、/APPLE と /apple がそれぞれ独自のコンテンツを持つ別々の URL として扱われる例を挙げています。
そのあとどうなるかは、サーバー次第です。多くの環境では、その名前に完全に一致するファイルやルートがないため、/Blog/My-Post は単に 404 を返します。ほかの環境では、どの大文字小文字の組み合わせでも同じページが表示され、知らないうちに重複が生まれます。後者の場合に Google が勧めているのは、すべてのテキストを同じ大文字小文字に統一し、URL が同じページを指していることを見分けやすくすることです。
選ぶなら、小文字が当然の選択です。ほとんどの人は URL を小文字で入力しますし、Pricing だったか pricing だったかを覚えている人はいません。サーバーがすでに大文字小文字の混ざったリクエストにも応答するなら、大文字を含むパスから、対応する小文字のパスへの恒久的なリダイレクトを追加してください。(ドメインとメールアドレスは別のルールに従います。その内容はドメイン名とメールアドレスの大文字・小文字で解説しています。)
タイトルをきれいなスラッグにする
一般的なスラッグ生成ツールが行う手順は次のとおりで、手作業でもこの順に進めます。
- すべて小文字にする。
- アポストロフィは置き換えずに削除する。don't は
don-tではなくdontになります。 - 連続するスペースや句読点を、1 つのハイフンに置き換える。
- 先頭と末尾のハイフンを取り除く。
- アクセント記号やラテン文字以外の文字をどうするかを決める。
- 結果を読み、人の目で手直しする。
腕の見せどころは 6 つ目のステップです。当サイトの変換ツールの「スラッグ化」を使った、実際の変換例を挙げます。
| タイトル | 自動生成されたスラッグ | 手直し後 |
|---|---|---|
| SEO Best Practices for URL Slugs: Why kebab-case Wins(URL スラッグの SEO ベストプラクティス:kebab-case が選ばれる理由) | seo-best-practices-for-url-slugs-why-kebab-case-wins | seo-url-slugs-kebab-case |
| Don't Panic: 10 Tips for Café Owners!(慌てないで:カフェオーナーのための 10 のヒント) | dont-panic-10-tips-for-cafe-owners | cafe-owner-tips |
| C++ vs C# | c-vs-c | cpp-vs-csharp |
1 行目は、この記事の実際のスラッグです。「best practices」「why」「wins」は、長くなるだけで意味を足さないので省きました。3 行目は、手直しの段階を省けない理由を示しています。+ や # のような記号がそのタイトルの意味のすべてを担っているのに、機械的に作ったスラッグはそれを捨ててしまうのです。
ストップワード:飾りは削り、意味は残す
英語の「a」「the」「of」のような小さな単語を省くのは、長いスラッグを短くする方法として妥当です。ただし、ルールではありません。意味を変える短い単語は残してください。coffee-without-sugar と coffee-sugar は別のページですし、「not」「no」「vs」は小さくても意味を左右する言葉です。
長さ
Google は、スラッグの文字数制限を公表していません。示している指針は、URL をシンプルで読みやすく保つということだけです。私たちの目安は、テーマを表す 3〜6 語です。パンくずリストでも読みやすく、共有しやすい短さになります。スラッグにタイトル全体を繰り返す必要はなく、見出しを少し直すたびにスラッグを変えるのも避けましょう。
アクセント記号とほかの言語
Google は、URL にはターゲットとする読者の言語の単語を使うことを推奨しています。アクセント記号付きのラテン文字のテキストでは、多くのスラッグ生成ツールがアクセントを取り除くので、crème brûlée は creme-brulee になります。たいていはそれで問題ありませんが、ときに別の単語になってしまうことがあります。ドイツ語の schön(美しい)は schon(すでに)になります。結果は必ず読んで確かめましょう。ギリシャ文字、キリル文字、日本語などの文字体系では元の文字を残すこともできます。ASCII 以外のスラッグの長所と短所は、パーマリンクのガイドで取り上げています。
ConvertCaseHQ の kebab-case と「スラッグ化」
当サイトの文字ケース変換ツールには、kebab-case ボタンと「スラッグ化」ボタンの両方がありますが、この 2 つは同じものではありません。どちらもテキストを小文字にし、アポストロフィを削除し、ギリシャ文字、キリル文字、日本語などラテン文字以外の文字体系は残し(スラッグが空では誰の役にも立ちません)、単語をハイフンでつなぎます。違いは次のとおりです。
- アクセント記号:「スラッグ化」はラテン文字からアクセント記号を取り除きます(é → e、ł → l、ß → ss)。kebab-case は残すので、Café は
caféになります。 - camelCase の入力:kebab-case は単語を分割します(
XMLHttpRequest→xml-http-request)。コードの場合は、これが望ましい結果です。「スラッグ化」は 1 つの単語として扱います(xmlhttprequest)。
どちらのボタンもストップワードは削除しません。それはあなたが判断することです。また、どちらもテキストボックス全体を 1 つの文字列として扱うため、改行もハイフンになります。タイトルは 1 つずつ変換してください。
URL スラッグのチェックリスト
- 小文字だけを使う。サーバーが大文字小文字の混ざったものに応答するなら、それらをリダイレクトする。
- 単語の間はハイフン。アンダースコア、スペース、単語のつなげ書きは使わない。
- アポストロフィ、句読点、余分な記号は入れない。ただし、記号が意味を持つタイトルは書き換える。
- 意味のある単語を 3〜6 語にする。飾りは削り、意味を変える単語は残す。
- 一度書いたら、そのままにする。完璧な URL より、変わらない URL のほうが価値がある。


