本エントリーは、サイト高速化の一手法とされるファーストビューのインライン化に関する記事です。2020年にリニューアルしたGMOインターネットの採用サイトを高速化する試みのなかで行った、ヘッダーの改修について記しています。
目次
要約
- 目的:弊社採用サイトのヘッダーの読み込み速度を上げたい
- 方法:ヘッダー部分のCSS/JSを切り出してインライン化
- 結果:低速環境下でもヘッダーの挙動・デザインの崩れがなくなった
はじめに
Webページの表示スピードを改善する手法はさまざまありますが、その中の1つにページのファーストビュー部分のCSS/JSをインライン化する方法が挙げられます。
背景としては採用サイトリニューアル後、低速回線環境下だとページの読み込みが終わるまでヘッダーメニューの表示が崩れるという困り事がありました。
リニューアル後のヘッダーは、PC・タブレット・スマートフォンのデバイスサイズを問わず、メニューはハンバーガーメニューから開く形式になっています。
トップページからはヘッダーを経由しなくてもすべての下層ページへ遷移できますが、下層ページからはヘッダーを経由した遷移が基本になります。
そのため、採用サイトを開いたあるいは再読み込みが走った際、ヘッダーが読み込まれないと他のページへ移動する際に不便です。
就活、転職活動をしている方は面接前の移動時間等に採用サイトを確認される方も多いかと思います(※)が、とくにすべてのコンテンツが読み込まれるまで別ページ(ニュース、企業理念、会社概要など)への動線が早く利用できるように改修が必要でした。このため、採用サイトヘッダー部分のJavaScript(以下JS)/CSSを切り分け、インラインで読み込むことにより表示の高速化を図りました。
※2021年記事執筆時点でのGMOインターネットの選考フローにおいて、最終以外の面接はzoomを用いたオンライン面接になります。
改善前の挙動
ヘッダーインライン化前の表示速度を確認した動画がこちらです。chromeの開発者ツールでNetworkタブのThrottling Profileを変更し、最も遅い「slow 3G」でエミュレートしています。動画でページを更新してから開閉ボタンが表示された直後にヘッダーを開くと、ヘッダー内のメニューが正常に表示されていないのがわかります。
このときの採用サイトヘッダーの挙動は下記のようになっていました。
変更前のSCSS

変更後のJS

CSS、JSともにすべてのコードを1つのファイルから読み込んでいるため、ヘッダーのようにはじめに表示される箇所も、正常に動作するにはページ全体用のコードが読み込まれるまで待つ必要がありました。
基本的には読み込むCSS、JSは分かれていない単体のファイルが望ましいとされていますので、優先して表示したい箇所によりインライン化するかの判断は変わってきます。
ヘッダーインライン化のために行ったこと
変更後のSCSS

まずCSSでは、すべてのスタイルがコンパイルされていたのをヘッダーとそれ以外に切り分けました。
ヘッダーに必要なスタイルを個別にコンパイル、ページ内でコンパイルしたファイルをテキストとして展開します。
変更後のJS

JSも同様、ヘッダーに必要な記述のみを切り分けてコンパイルし、ページ内で展開しました。
採用サイトではjQueryを使用していますが、読み込みに時間がかかるためヘッダーの記述を純粋なJSのみを使用した記述に書き換えています。
最終的に、ブラウザ上では下記のような記述になっています。

結果
ヘッダーインライン化後の表示速度を確認した動画がこちらです。
改善前同様、chromeの開発者ツールを用いネットワーク速度をもっとも遅い「slow 3G」でエミュレートしています。
ヘッダー開閉ボタンが表示された直後にクリックしても、ヘッダー内メニューがすべて表示されていることがわかります。
変更前と変更後を比較した動画がこちらです。
レンダリングが始まってから、全メニューが表示できるようになるまでの時間に90秒程度差があることがわかります。
課題
改修後の課題として、ヘッダーを優先して読み込み・レンダリングするため、JSにおけるデバイスサイズの判定・CSSにおけるサイト内共通設定などもインライン化しており、一部共通ファイルとコードが重複しています。
ページで読み込むコードは可能な限り削減したいため、やむを得ず重複する箇所以外をなるべく棚卸しできればと考えています。
また、低速環境下でヘッダーを開いた際、矢印(>)が読み込まれず文字化けとして表示される場合があります。こちらは採用サイト用に作られたSVGをアイコンフォントとして読み込んでいるためで、今後合わせて読み込み速度か表示方法の改善を図りたいです。
おわりに
サイト高速化の一手法とされる、ファーストビューのインライン化に関する記事でした。
今回はページ読み込み直後のヘッダー表示を高速化する、という目的の改修だったため、ヘッダー箇所のJS/CSSをインライン化する方法を選択しました。
ファーストビュー箇所をインライン化する、という手法がすべてのWebサイトで有用であるかは未知数ですが、ページ表示スピードの改善、ひいては閲覧する方のストレスを軽減したいと考えている方へ、一つの改善例としてお役に立てたなら幸いです。
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(608)
-
イベント(242)
-
カルチャー(61)
-
デザイン(77)
TAG
- 5G
- Active Directory
- AI
- AI for DevOps
- AI TALK
- AI 機械学習強化学習
- AI/機械学習
- AIO
- AIエージェント
- AIコーディング
- AIコーディングエージェント
- AIセキュリティ
- AI人財
- AI教育
- AI活用
- AI研究
- AI駆動
- Behind the Scenes
- BIT VALLEY
- blockchain
- ChatGPT
- ChatGPT Team
- Claude Code
- Claude Team
- cloudflare
- cloudnative
- CNDO
- CNDT
- CODE BLUE
- ConoHa
- ConoHa VPS
- ConoHa VPS MCP
- CSS
- CTF
- DEF CON
- DEF CON 34
- Designship
- developer
- DevRel
- DevSecOpsThon
- Docker
- DTF
- EDR
- Engineering Journey
- expert
- EXPERT CROSS
- GMO AI&ロボティクス商事
- GMO AIR
- GMO DESIGN AWARD
- GMO Developers Day
- GMO Developers Night
- GMO Flatt Security
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOインターネット
- GMOインターネットグループ
- GMOインターネットグループ陸上部
- GMOグローバルサイン
- GMOコネクト
- GMOサイバーセキュリティ byイエラエ
- GMOサイバーセキュリティbyイエラエ
- GMOデジキッズ
- GMOヒューマノイド・ラボ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOメイクショップ
- GMOメディア
- GMOロボッツ
- GMO大会議
- GMO天秤AI
- Go
- GPUクラウド
- GTB
- Hack-1グランプリ
- IETF
- iOS
- IoT
- ISUCON
- Japan Drone
- JapanDrone
- Java
- JJUG
- JSAI2026
- K8s
- Kaigi on Rails
- Kerberos
- Kids VALLEY
- LLM
- LLMO
- MCP
- MetaMask
- MySQL
- NFT
- OpenStack
- OSS
- Perl
- PHP
- PHPcon
- PHPerKaigi
- Python
- QUIC
- RFC
- RPA
- Ruby
- SECCON
- Selenium
- Spectrum Tokyo Meetup
- splunk
- SRE
- Takumi byGMO
- Terraform
- TypeScript
- UI/UX
- vibe
- VLA
- VPN
- VPS
- VS Code
- WebRTC
- Webアプリケーション開発
- XR
- XSS
- Yoitoi Summit
- ZTNA
- アウトプット
- アドベントカレンダー
- イベントレポート
- インターンシップ
- インハウス
- インフラ
- エキスパート制度
- エキスパート座談会
- エンジニア採用
- エンジニア文化
- お名前.com
- クラウド
- クリエイターインタビュー
- クリエイティブ
- コーディングエージェント
- コンテナ
- コンピュータビジョン
- サイバーセキュリティ
- サマーインターン
- スクラム
- スパム対策
- スペシャリスト
- セキュリティ
- セキュリティカンファレンス
- セキュリティ人材
- センシング
- ソフトウェアサプライチェーン
- ソフトウェア開発
- チームビルディング
- データサイエンティスト
- デザイン
- ネットのセキュリティもGMO
- ハーネスエンジニアリング
- バイブコーディング
- バックエンド
- ヒューマノイド
- ヒューマノイドロボット
- フィジカルAI
- フルスタック開発
- プログラミング教育
- ブロックチェーン
- フロントエンド
- プロンプトインジェクション
- ペアリング暗号
- ペネトレーションテスト
- ホワイトハッカー
- ゆめみらいワーク
- リモートワーク
- レッドチーム
- レンタルサーバー
- ロボット
- ロボット導入
- ロボティクス
- ワークフロー
- 世界モデル
- 京大ミートアップ
- 京都大学
- 京都未踏
- 人型ロボット
- 人工知能
- 人工知能学会
- 光学
- 国際ロボット展
- 国際標準化
- 基礎
- 多拠点開発
- 大阪公立大学
- 宇宙セキュリティ
- 宮崎オフィス
- 強化学習
- 応用
- 技育プロジェクト
- 技術イベント
- 技術ブログ
- 技術同人誌
- 技術広報
- 技術書典
- 拡張知能
- 新卒
- 新卒研修
- 新規サービス開発
- 映像
- 映像クリエイター
- 映像制作
- 暗号
- 未踏
- 業務効率化
- 機械学習
- 次世代育成
- 決済
- 生成AI
- 産学連携
- 研究開発
- 社会実装
- 社内コミュニティ
- 組織横断
- 耐量子暗号
- 脆弱性診断
- 自動化
- 自律実行
- 若手人材育成
- 通信技術
- 開発組織
- 開発者
PICKUP
-
【エキスパート座談会 #1】生成AI活用の現在地:作業の自動化から「仕組みづくり」へ
技術情報
-
【第4回・AI TALK】GMOインターネットグループ・石丸智輝さんに聞く、AI時代に「人が書く意味」
技術情報
-
近畿圏の若手14名、半年の開発の起点に。「京都未踏」ブースト会議レポート
イベント
-
【第3回・AI TALK】GMOインターネットグループ・真次さんに聞く、ヒューマノイドの現在地と研究者としての挑戦
技術情報
-
【DEF CON 34 参加レポート】GMOインターネットグループが挑む、世界最高峰セキュリティカンファレンスの最前線
イベント
-
【Expert Cross #4・後編】「場づくり」を通じて新しい概念を組織に浸透。横のつながりと共に広がった「エキスパートとしての視野」
技術情報