問題
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.
コメント