docusaurusのURL末尾のスラッシュを統一する

問題

docusaurusを使用しているとURLの末尾に「/」(スラッシュ)が付くことがあります。

このスラッシュは「トレイニングスラッシュ」と言われるもので、docusaurusでは、トレーニングスラッシュの有無どちらでもアクセスできるように、デフォルトでは2つのページを生成します。

docusaurusの開発者によれば、ホスト先によって対応・非対応が異なるため両方を生成しているとのことです。Githubに表があるので参考まで。

GitHub - slorber/trailing-slash-guide: Understand and fix your static website trailing slash issues!
Understand and fix your static website trailing slash issues! - slorber/trailing-slash-guide

しかし、docusaurusではバグなのかデフォルトでは、Web上のメニューからページを開くと「スラッシュ無し」となり、F5でリロードすると「スラッシュ有り」になります。

また、やっかいなのがGoogleで、デフォルトで「スラッシュ有り」のページをインデックスに登録するため、ページ表示との齟齬が出ます。重複ページがあることはGoogleが問題ないと言っていますが、ページ表示と異なるのはあまりよろしくありません。

特に問題はありません。というのも、多くのサイトが重複するコンテンツを保有しているため、Google ではサイトをインデックスする際、ウェブマスターとユーザーに配慮してこのようなケースにもおおむね対応しているからです。

https://developers.google.com/search/blog/2010/04/to-slash-or-not-to-slash?hl=ja

Google では、ファイルかディレクトリか、または URL 末尾にスラッシュがあるかどうかに関わらず、上記の URL はそれぞれ別物として(そして、同等に)扱われます。

https://developers.google.com/search/blog/2010/04/to-slash-or-not-to-slash?hl=ja

対策

trailingSlashの設定でどちらかを選ぶことで、スラッシュの有無を統一できます。

私はGoogleのインデックスがすでに登録されていたため、スラッシュありの方を選びました。

ホスト先もnginxですので変更に何の問題もなし。

trailingSlash: true,

公式の設定資料は以下です。

docusaurus.config.js | Docusaurus
API reference for Docusaurus configuration file.

コメント

タイトルとURLをコピーしました