Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
研修で学んだリクエスト毎に ページのレンダー方法を変える小技
Search
一ノ瀬裕斗
October 02, 2025
400
0
Share
研修で学んだリクエスト毎に ページのレンダー方法を変える小技
フロントエンド研修で学んだCSRとSSRをリクエストごとに切り替えて、パフォーマンスやコスト、SEOを良くする技術の説明
一ノ瀬裕斗
October 02, 2025
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
330
The Limits of Empathy - UXLibs8
cassininazir
1
290
Building Adaptive Systems
keathley
44
3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Paper Plane (Part 1)
katiecoart
PRO
0
6.5k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Prompt Engineering for Job Search
mfonobong
0
250
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Speed Design
sergeychernyshev
33
1.6k
A better future with KSS
kneath
240
18k
Writing Fast Ruby
sferik
630
63k
Transcript
© DMM CONFIDENTIAL 研修で学んだリクエスト毎に ページのレンダー方法を変える小技 SEOがちょこっと良くなる LC開発部 一ノ瀬 裕斗 2025/09/18
目次 2 1. 自己紹介 2. 研修の話 3. CSRとSSRのおさらいと使い分けの例 4. まとめ
自己紹介 3 名前: 一ノ瀬 裕斗 所属: LCのフロントエンドエンジニア Next.jsへのリプレイス 趣味: お酒・シーシャ
最近: 社会人満喫してます🥹
4 実は… まだ社会人として1ヶ月しか働いてない…🥹
5 4月〜7月末の3ヶ月間の技術研修 FE・BE・Android・iOS・インフラ・クラウド・AIなど幅広く学んだ 8月まで研修でした!!
6 Yatter演習でFE・BE・モバイルの開発!! SNSアプリ「Yatter」を作りながらモダンな技術スタックを身につけた! ↓自分が開発したYatter
7 クラウドの研修を受けたり、社員食堂でランチ😋 Google・AWSのオフィスに見学!!
8 スクラム研修のレゴブロックのグループワーク 最後にプロダクト発案をしてスクラムでチーム開発 スクラム研修やチーム開発!!
9 長くてたくさんの学びと思い出になった研修 そこで学んだことを紹介!!
10 リクエストによってレンダー方法(CSR・SSR) を変えなきゃいけない時ってある・・・!?
11 扱うプロダクトによってはあるかも・・・?
12 CSR • ブラウザにJSが読み込まれてからJSで画面を描画 ◦ 例:React・SPA ◦ クライアント側で処理 レンダー方法とは?(おさらい) SSR
• サーバー側で生成したHTMLをユーザーに返す ◦ 例:Next.jsのgetServerSideProps(Page Router)、RSC(App Router) ◦ サーバー側で処理
13 CSR • サーバー側の処理をクライアント側でするから表示速度(TTFB)は速い ◦ 一旦空のページを表示してから、クライアント側で REST APIからデータを取得する メリット SSR
• コンテンツのデータなどをサーバー側で取得して最初から表示できる ◦ FCP/LCPは上がる ◦ サーバー側でREST APIやDBにアクセスしてデータを取得
14 CSR • データやコンテンツの取得にワンテンポ遅れる ◦ 例:useEffectでデータフェッチとか、やりすぎると FCP/LCPとか下がる ◦ クローラーだとどんなコンテンツがあるか分からない デメリットもある
SSR • サーバー側でのデータ取得に時間がかかるとページの読み込みが遅くなる ◦ TTFB下がる ◦ サーバーの負荷がかかるのでコスト増 ◦ コンテンツによってSSR/CSR組み合わせてデータを取得するのが良い
15 研修で取り組んだ例を2つ紹介!!😎
16 • CSRだとクローラーには内容が伝わらない ◦ SSRにすれば…? ◦ クローラー・ユーザーからの全部のリクエストを SSRにするのはパフォーマンスやコスト的に良くない ◦ →普通のユーザーなら
CSR・クローラーならSSRにすれば良いのでは? クローラー判定
17 RSC上で UAからクローラーか判定
18 普通のユーザーからアクセスした時 投稿内容がクライアント側で取得される
19 クローラー(偽装)からアクセスした時 投稿内容がサーバー側で取得される
20 2018年3月、DMM.comの成人向け事業(現 FANZA)は株式会社デジタルコマース社に継 承されました。 ただし、システムの開発や運用、一部の営業業務はデジタルコマース社からDMM.comに 委託されており、プラットフォームはDMM.comが継続して提供することで合意しておりま す。 必読!!⚠
21 2018年3月、DMM.comの成人向け事業(現 FANZA)は株式会社デジタルコマース社に継 承されました。 ただし、システムの開発や運用、一部の営業業務はデジタルコマース社からDMM.comに 委託されており、プラットフォームはDMM.comが継続して提供することで合意しておりま す。 必読!!⚠
22 弊社には年齢確認が必要なコンテンツがあるので 試しに研修で年齢確認機能を作ってみました😆 年齢確認のページ
23 • クローラー ◦ 普通のユーザーなら年齢確認・クローラーならページ表示 年齢確認 • Cookie(年確済みの状態保存) ◦ サーバー側でCookieがあるならページ表示、ないなら年齢確認
24 RSC上でUAからクローラーか判定 Cookieを見て年齢確認済みか判定
UAがクローラーの時は表示しないように条件分岐 ←ユーザーアクセス時 年齢確認画面を表示 クローラーアクセス時→ 初期画面を表示
• ユーザー数が多く、コスト・パフォーマンス・SEOなど様々な要素を考慮しなければな らない ◦ そのためにCSRとSSRを使い分けている ◦ 例:RSC上でUAを判定してCSR/SSR切り替え 26 まとめ •
ページで表示するコンテンツの特性に合わせてレンダー方法を使い分ける ◦ ブログページならSEO踏まえてSSR ◦ SNS系ならRSCで使い分け
ご清聴ありがとうございました