見出し画像

URL末尾のトレイリングスラッシュ有無に関するSEOやベストプラクティスを調べてみた

トレイリングスラッシュとは、URLの最後につけられていることのある / のことです。

単にスラッシュと呼ばれることもあるようですが、URLの最後につけられるものを特定して指す場合にトレイリングスラッシュという用語が使われます。

トレイリングスラッシュに関するGoogleの公式見解

/ ありなしと各ページをGoogle (bot)がどう扱うかは以下の webmasters のブログ記事に説明がありました。

ここに書かれている内容で重要だと思うことを要約します。

ルートドメインでは、トレイリングスラッシュありもなしもGoogleは同じように扱う。

example.com も example/com/ も同様に扱われるので特に対応が必要なものではないと書かれています。

ルートドメイン以外では、トレイリングスラッシュありとなしでは別ページとして認識される。

なので example.com/blog と example.com/blog/ といったケースでは注意が必要です。Googleは「この2つのページで別々のコンテンツを表示させること自体は問題ないが、それはユーザーに対して困惑をまねく可能性がある」と述べています。要は /blog というファイル(blog.html)と、/blog/ というディレクトリ(blog/index.html)で異なるコンテンツを表示させて異なるページとして存在させること自体は問題はない、ということです。その場合はもちろん別のページとしてGoogleに扱われた方が良いはずなので何も対処は必要ありません。ただ、これはかなり稀なケースで、普通は /blog と /blog/ は同じページを返すのが一般的でしょう。そしてその場合はどちらかに統一する必要がでてきます。でないとGoogleに重複コンテンツと見なされてしまいます。

一般的な対策としてはシンプルに301リダイレクトを用いるものです。使用しているフレームワークやサーバーの関係でリダイレクトが設定できないような場合は、rel="canonical"タグを使えばOKです。

SEO的にはトレイリングスラッシュありとなしどちらに統一しても特に問題はないとGoogleのウェブマスターブログには書かれてありますが、ディレクトリであれば一般的にはトレイリングスラッシュありが自然かと思います。

尚、Googleはトレイリングスラッシュありなしどちらも同じコンテンツの場合、もし仮にリダイレクトなどの対策を行わなくても、インデックスのプロセスで多くの場合よしなにハンドルしてくれるのでそのまま放置でも(最適解ではないにせよ)特に大きな問題はない、としています。

Leave it as-is. Many sites have duplicate content. Our indexing process often handles this case for webmasters and users. While it’s not totally optimal behavior, it’s perfectly legitimate and a-okay. :)

とはいえ、できるのであれば301リダイレクトなどの対応は絶対にした方がいいです。

補足ですが、Googleのジョン・ミュラー氏の以下のツイートもとても参考になります。

このツイートでもルートドメインではトレイリングスラッシュありなしは同一、それ以外の場合は別と扱われる、ということになっています。

ページ(ファイル)もサブディレクトリと同様に注意が必要

ブログの記事ページなど、最下層のWebページの場合もサブディレクトリ同様、トレイリングスラッシュの有無を統一する方が良いです。WordPressなどはその設定項目があるようで、CMS側でちゃんとした処理をしてくれます。ウェブマスター界隈で有名な鈴木謙一さんのブログ「海外SEO情報ブログ」では、ディレクトリも各記事ページも両方トレイリングスラッシュありに統一されており、トレイリングスラッシュなしでアクセスするとありにリダイレクトされるようでした。

もしトレイリングスラッシュを付ける場合でも、ファイル名(.phpや.pdfなどの拡張子)が最後に付いている場合はトレイリングスラッシュがつかないよう気をつける必要があります。

サイト内で一貫性を持たせる

ジョン・ミュラー氏も強調しているように、301リダイレクトにせよ rel="canonical" にせよ、大切なのは正規化した方をサイト内で統一して使うことです。内部リンクにおいても、サイトマップにおいても、統一してどちらかを使うようにしましょう。

Chromeはルートドメインのトレイリングスラッシュを表示しない

補足情報ですが、Chromeではバージョン76(?)から http:// や www、そしてルートドメインではトレイリングスラッシュが表示されないようになっており、これは設定などでユーザーが変更できません。他のブラウザでもブラウザ側でトレイリングスラッシュなどを表示していないケースがあります。

画像1

まとめ

ルートドメインの場合

Googleはトレイリングスラッシュありでもなしでも同じように扱うので特別対策は必要ない。ただ、301リダイレクトか rel="canonical"タグを設定しているサイトは多いように思います。

サブディレクトリの場合

トレイリングスラッシュありとなしでは別のページとGoogleが認識するため、どちらかに統一がベター。これも301リダイレクトあるいは rel="canonical" でOKで、どちらに統一しても問題ない。ただ最悪、そのまま放置でもGoogleがインデックス時にうまく対処してくれるようなので致命的な問題にはならない。

最下層のページ(ファイル)の場合

サブディレクトリ同様、トレイリングスラッシュありかなしどちらかに統一がベター。どちらに統一してもSEO的に問題はない。

---

技術的にはケースバイケースでトレイリングスラッシュをつけるかつけないかでブラウザの挙動やロードタイムが微妙に変わってくるかとは思いますが、そこまで気にする必要は特になく、SEO的にもそれが顕著にマイナスに働くことはないはずです。

大事なのはどちらに合わせるかよりも、合わせた方を一貫してサイト内で使う統一性かと思います。

役立つhtaccessジェネレーター

http --> https、www有無などの301リダイレクト含め、リダイレクトチェーン(複数回にわたるリダイレクト)を起こさず一回のリダイレクトだけでどんなケースも対応できる htaccess ファイルを生成できるツールのようです。

https://www.danielmorell.com/tools/htaccess/redirect-generator

正直使ったことがないので品質の保証まではできないのですが、ロジックは以下のブログ記事で解説されていました。