Accelerated Mobile Page (AMP)はGoogleが主導する、モバイルサイトを構築するフレームワークです。123ishでは、導入後に検索経由でのユーザー数を有意に増やすことが出来ました。 AMPページと普通のモバイルページでは、コア指標であるLargest Contentful Paint (LCP)で圧倒的に差が出ます。 グーグルサーチコンソールの「拡張」欄に⚡マークのAMPもあります。 この「拡張」は英語だとEnhancementsで、強化、増強、向上の意味で使われていると思います。サイトSEOの強化、増強、向上に繋がる主要素だということですね。 でも、AMP導入は簡単ではありません。カスタムのjavascirptsが使えないしCSSは75kbまでと色々と制約があります。 123ishでは最初にrails_ampジャムを試しましたが、全く使えませんでした(このジャムは2017年から開発が止まっていますね・・・)。 ワードプレスでもプラグインを入れるだけではAMPページを上手く作れないあたり事情は似てると思います。 今回は、Railsの既存のモバイルページを、ジャムなど使…
サイトを運営していると、レスポンスを早くするにはどうすればいいかと常に考えますね。 サーバーの性能を上げたり、ネットワーク環境を良くしたりとハードウエアでの対応も重要ですが、実際に動いているコードの最適化が一番大切な所ですね。 123ishはRailsで出来ていますが、コードの最適化にBullet というジャムを使っています。 Rails の便利なオブジェクト関連性の定義によって、実は一つで済むようなSQL呼び出しが、関連するレコードをSQLから一つ一つ呼び出すという、とても時間のかかる実装に陥ってしまうことがあります。 一括読読み込みをすれば2回ですむSQL呼び出しが、そうでないと11回もSQL呼び出しをすることになってしまうという簡単な例と共に、このN+1クエリ問題についてRailsガイドに詳しく載っています。 このN+1クエリ問題を見つけてくれる便利なジャムがBullet です。 また、何時でも一括読み込みをすれば良いのでもなく、むしろ要らない読み込みはメモリーの浪費と逆にレスポンスを遅くしてしまいます。 この無駄な一括読み込みもBullet によってレポートされます。つまりBullet によ…
URLに関連するキーワードを入れることは、有効なSEO手段として使われているます。 ここではRuby on Rails にて、friendly_id gemを使った、日本語でのURLを表示する方法を紹介します。Railsのデフォルトでは、IDによってモデルが表示されています。たとえば、Entryというモデルがあるとすると、 /entries/12345 のようなURLでEntryが表示されます。このEntryにtitleという属性があれば、Friendly_id を導入によって、このtitleを使ってEntryを表示させることが出来ます。例えば、 /entries/日本語でもOK この123ishのサイトでもFriendly_id を導入しています。例えば、 https://www.123ish.com/jp/entries/1461-ヴァイオリンやヴィオラの試奏(試し弾き)で気をつけておきたい3つのポイント https://www.123ish.com/jp/entries/1316-イヤフォン越しではなく、日常に溢れる音を楽しもう! などです。friendly_idをそのまま導入しても、日本…