meta-tags側のtruncateでは、スペース文字のところで切り詰めが行われます

599 views Tweet
wakairo @wakairo
最終更新

問題

meta-tagsはtitleやdescriptionをSEOに適切な長さまでに切り詰めますが、titleなどの中にスペース文字が含まれていると、スペース文字のところで切り詰めてしまいます。そのため、文章の先頭付近のみにスペース文字がある文章は大幅に切り詰めが行われてしまいます。
例えば、次の文章にあるスペース文字は10文字目のところのみです。

Microsoft Copilotは、あなたの言葉をパワフルなコンテンツに変えるAIアシスタントです。あなたのニーズに合わせて、文章を生成、要約、編集、変換したり、コードや詩などの創造的なコンテンツを作成したりします。

したがって、80文字に切り詰める設定であっても、この10文字目のところで切り詰められて「Microsoft」となり、80文字に比べ大幅に短い文字数に切り詰められることになってしまいます。

回避策

meta-tagsに渡す前に、あらかじめアプリケーション側で切り詰めを行うことで、この問題は回避できます。なお、meta-tagsの設定によっては、meta-tags側での切り詰めをオフにすることも出来ます。設定方法についてはmeta-tagsのREADMEを参照してください。

(参考)内部的な原因

meta-tagsはRuby on Railsのtruncateヘルパーメソッドを最終的に呼び出しますが、このヘルパーメソッドをラップするメソッドを内部に持っています。このラッパーメソッドの引数であるnatural_separatorを省略してのメソッド呼び出しがmeta-tags内に存在し、この省略時のデフォルト値がスペース文字であるため、スペース文字のところでの切り詰めが発生しています。

0
Raw
https://www.techtips.page/ja/comments/269
😄1
🔄1
🔧1
😿1