「動きのあるサイトにしたい。でも重くなるのは困る」。Web制作で必ず出てくるこの相談は、演出と速度がトレードオフになりがちだからこそ生まれます。結論は、両立は“設計”で実現できる。鍵は「どこに演出を効かせ、どこを削るか」です。
原則:軽快さ > 派手さ
まず順番を決めます。表示の軽快さが先、演出は後。特に集客サイトでは、表示が遅い時点で見られる前に離脱されます。速度はSEO(Core Web Vitals)にもCVにも直結する“土台”であり、演出はその上に乗せる“味付け”です。
1. 重い演出は限定的に
Three.jsのような重い演出は、ファーストビューなど一箇所に絞るのが基本です。全ページに3D表現を敷くのではなく、最も印象づけたい場所だけに使います。これだけで体感速度は大きく変わります。
2. transform と opacity だけでアニメーションする
スクロール連動やマイクロインタラクションは、transform と opacity に限定します。width や top をアニメーションするとレイアウト再計算(リフロー)が走り、カクつきの原因になります。
/* Good: GPUに乗りやすい */
.reveal { transform: translateY(20px); opacity: 0; }
.reveal.is-in { transform: none; opacity: 1; }
3. prefers-reduced-motion を尊重する
OSで「視差効果を減らす」を選んでいるユーザーには、アニメーションを止めて即時表示します。アクセシビリティ対応であると同時に、低スペック環境への配慮にもなります。
@media (prefers-reduced-motion: reduce) {
.reveal { opacity: 1 !important; transform: none !important; }
}
4. 静的生成で“速い”を前提にする
Next.jsのApp Routerでコンテンツを静的生成すれば、配信は速く、サーバー負荷も小さくなります。画像は最適化・遅延読込し、コードは分割する。速いことを前提に組むことで、演出を乗せても土台が崩れません。
5. WebGL非対応にはフォールバック
3D演出を使うなら、WebGLが使えない環境ではソリッドな背景に切り替えるフォールバックを用意します。「動かない環境でも成立する」ことが、堅牢なサイトの条件です。
まとめ
- 順番は「軽快さ > 派手さ」。速度が土台
- 重い演出は一箇所に絞る/
transformとopacityだけで動かす prefers-reduced-motionとWebGLフォールバックを用意する
このサイト自体が、演出と速度を両立させた制作サンプルです。同じ方針でWeb制作を承ります。