SlideShare a Scribd company logo
SMX Next
*
Dynamic rendering
at scale
What we learned from rendering over 200 million
websites in React.
Nati Elimelech, Tech SEO Lead, Wix @netanel November 2021
@netanel
Dynamic rendering at scale
SMX
Next
JS Frameworks aren’t going anywhere
@netanel
Dynamic rendering at scale
SMX
Next
The Rise of JS Frameworks
- Rapid development
- Better UX
- Better performance
- Enhanced functionality
React
@netanel
Dynamic rendering at scale
SMX
Next
When you visit a web page that
requires JS
Browser
executes JS &
updates DOM
Produces rendered
HTML
Your browser sends
a request to a URL
Server responds
w/ skeleton
HTML + JS
Browser
constructs the
web page
@netanel
Dynamic rendering at scale
SMX
Next
Client-side rendering
(CSR)
The client (browser) does all the heavy
lifting—needs to run JS to render the
final HTML.
Compatibility: clients with relevant
JS capabilities
@netanel
Dynamic rendering at scale
SMX
Next
The Dark Side
- Need to execute JS to get important
HTML
- Requires more resources from client
- Not all bots & crawlers support JS
- Things can break
Yes, another
Star Wars™
joke
@netanel
Dynamic rendering at scale
SMX
Next
When you visit a web page with
server side rendering
Browser gets
fully rendered
HTML
response HTML = rendered HTML
Your browser sends
a request to a URL
JS is executed &
HTML rendered
on server side
Browser
constructs the
web page
@netanel
Dynamic rendering at scale
SMX
Next
Server-side rendering
(SSR)
The server does all of the heavy lifting so
the client doesn’t need to execute JS to
see important HTML.
Compatibility: all bots and clients, most
animals, some furniture
@netanel
Dynamic rendering at scale
SMX
Next
🙎♂️🙍♀️
Introducing dynamic rendering
(oh so very simplified)
Request to URL
Is this
a known
bot?
No
Ye
s
Initial
response
Rest of
response
Render
HTML on
server side
Client Side Rendering
🤖🤖🤖
Serve
skeleton
HTML + JS
Serve fully
rendered HTML
as the response
Server Side Rendering
@netanel
Dynamic rendering at scale
SMX
Next
Server-side rendering
(SSR) for bots
Client-side rendering
(CSR) for users
@netanel
Dynamic rendering at scale
SMX
Next
More flexibility
➔ Serve content and HTML
regardless of client capabilities
➔ You can optimize HTML for bots
➔ User performance not impacted
More complications
➔ Requires maintaining a UA list
➔ Multiple flows to maintain
➔ Multiple flows 🠆 more cache misses
➔ Parity between flows requires auditing
Dynamic rendering brings:
@netanel
Dynamic rendering at scale
SMX
Next
What user clients see
@netanel
Dynamic rendering at scale
SMX
Next
What bots see (much tidier!)
@netanel
Dynamic rendering at scale
SMX
Next
A short PSA
SMX Next
*
More stuff I wanted
to say but didn't have
enough time for
@netanel
Dynamic rendering at scale
SMX
Next
Consistency is key
1. Main content of page inc. images
2. Title, canonical & robots tags
3. Internal links
4. Alternate / hreflang tags
5. Structured Data Markup
6. Other important elements on the page
7. Page layout doesn't break
Check your "SEO stuff" - sending mixed
signals to search engines is always a bad
thing.
By importance:
@netanel
Dynamic rendering at scale
SMX
Next
Checking for parity issues
2 sets of parity checks you want to be performing regularly:
Googlebot Vs. Regular Chrome UA
make sure bots see what users see, with JS
rendering on
1️⃣
Bot Rendered HTML Vs. Bot Response HTML
make sure bots that don't execute JS see
what bots that don't execute JS see (at
least for the important stuff)
2️⃣
@netanel
Dynamic rendering at scale
SMX
Next
Checking for parity issues
Human - Bot wars
Keep the following settings in mind when auditing a webpage
Bot Wars
1️⃣ 2️⃣
User agents:
- UA1: Googlebot for Smartphones
- UA2: Latest Chrome UA
JS settings:
Enable JS execution (limit to 5 seconds)
for both
User agents:
Googlebot for Smartphones for both
JS settings:
- UA 1: Enable JS execution (limit to 5
seconds)
- UA 2: Disable JS
@netanel
Dynamic rendering at scale
SMX
Next
Manually auditing for
parity issues
Your Chrome browser & SEO extensions can
be used to find rendering issues!
1. Change UA on browser using 'Network Conditions' or
an extension
2. Disable or leave JS as required (extension)
3. Open your favorite SEO extension and record output
4. Change settings and use SEO extension again
5. Compare
@netanel
Dynamic rendering at scale
SMX
Next
Tools you can use for free
1. Manual labor (prev. slide)
2. Mobile-Friendly Test, GSC and other
Google tools will return rendered HTML as
Googlebot
3. If you have the time - python
@netanel
Dynamic rendering at scale
SMX
Next
Features you want in your
paid auditing tool
1. Fully customizable UA
2. JS rendering setting / compare
3. Crawl comparisons
4. Render a visual preview of the page
SMX Next
*
Got questions?
Follow me on @netane
l

More Related Content

PDF
Core Web Vitals - The Modern Web Experience
PDF
Core Web Vitals Optimization for any website, especially WordPress
PPTX
Core web vitals is the thing you should focus on if you own a website in 2021
PPTX
Core web Vitals: Web Performance and Usability
PPTX
Satisfying the Need for Speed (By Aleh Barysevich of SEO PowerSuite, SMX Lond...
PPTX
Performace optimization (increase website speed)
PDF
Introduction core web vitals
PPT
Website speed optimization techniques
Core Web Vitals - The Modern Web Experience
Core Web Vitals Optimization for any website, especially WordPress
Core web vitals is the thing you should focus on if you own a website in 2021
Core web Vitals: Web Performance and Usability
Satisfying the Need for Speed (By Aleh Barysevich of SEO PowerSuite, SMX Lond...
Performace optimization (increase website speed)
Introduction core web vitals
Website speed optimization techniques

What's hot (20)

PPTX
A holistic approach to web performance
PDF
HPEC 2021 grblas
PPTX
Web Performance: 3 Stages to Success
PPTX
Browser Based Performance Testing and Tuning
PDF
Essential Steps to a Superior Page Speed Score
PDF
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
PDF
Client-side Web Performance Optimization [paper]
PDF
Automated Duplicate Content Consolidation with Google Cloud Functions
PDF
Demystifying Web Vitals
PDF
Poslovni Imenik BiH - Lokal d.o.o.
PPTX
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
PDF
17 Web Performance Metrics You Should Care About
PDF
Measuring Web Performance
PDF
How to construct your own SEO a b split tests (for free) - BrightonSEO July 2021
PPTX
Web performance
PPTX
Web worker in your angular application
PPTX
Developing high performance and responsive web apps using web worker
PDF
Improving user experience with real user measurements
PDF
Automating Google Lighthouse
PDF
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
A holistic approach to web performance
HPEC 2021 grblas
Web Performance: 3 Stages to Success
Browser Based Performance Testing and Tuning
Essential Steps to a Superior Page Speed Score
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
Client-side Web Performance Optimization [paper]
Automated Duplicate Content Consolidation with Google Cloud Functions
Demystifying Web Vitals
Poslovni Imenik BiH - Lokal d.o.o.
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
17 Web Performance Metrics You Should Care About
Measuring Web Performance
How to construct your own SEO a b split tests (for free) - BrightonSEO July 2021
Web performance
Web worker in your angular application
Developing high performance and responsive web apps using web worker
Improving user experience with real user measurements
Automating Google Lighthouse
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
Ad

Similar to Dynamic Rendering for SEO by Nati Elimelech (20)

PPTX
JavaScript SEO Ungagged 2019 Patrick Stox
PDF
Javascript SEO Devs and SEOs playing nicely
PPTX
Delivering search friendly java script-powered websites (Google io 18 summary)
PDF
A Deep Dive Into SEO Tactics For Modern Javascript Frameworks
PDF
Rendering: Or why your perfectly optimized content doesn't rank
PPTX
How to make React Applications SEO-friendly
PPTX
Javascript & SEO 2019
PDF
The New Renaissance of JavaScript - SMX London 2019
PDF
The New Renaissance of JavaScript - SMX London 2019
PPTX
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
PPTX
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
PDF
Migration to a JS Framework without Losing Your Rankings and Mind
PDF
JavaScript Doesn't Have to be Evil | Digital Olympus
PPTX
The Rise of JavaScript and What it Means for SEO
PPTX
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
PPTX
The New Renaissance of JavaScript
PDF
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
PPTX
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
PPTX
Dynamic rendering
PDF
Hey Googlebot, did you cache that ?
JavaScript SEO Ungagged 2019 Patrick Stox
Javascript SEO Devs and SEOs playing nicely
Delivering search friendly java script-powered websites (Google io 18 summary)
A Deep Dive Into SEO Tactics For Modern Javascript Frameworks
Rendering: Or why your perfectly optimized content doesn't rank
How to make React Applications SEO-friendly
Javascript & SEO 2019
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Migration to a JS Framework without Losing Your Rankings and Mind
JavaScript Doesn't Have to be Evil | Digital Olympus
The Rise of JavaScript and What it Means for SEO
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
The New Renaissance of JavaScript
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
Dynamic rendering
Hey Googlebot, did you cache that ?
Ad

Recently uploaded (20)

PPTX
Ranking a Webpage with SEO (And Tracking It with the Right Attribution Type a...
PPTX
Strategic Sage Digital-The Professional Digital Marketing Company in Mohali.pptx
DOCX
procubiz_modern digital marketingblog.docx
PDF
E_Book_Customer_Relation_Management_0.pdf
PDF
Pay-Per-Click Marketing: Strategies That Actually Work in 2025
PDF
EVOLUTION OF RURAL MARKETING IN INDIAN CIVILIZATION
PDF
Digital Marketing Agency vs Freelancers and VAs: Which Should You Hire in 2025
PPTX
Captain Morgan x FOS_Revised_8.8.25.pptx
PPTX
Kimberly Crossland Storytelling Marketing Class 5stars.pptx
PDF
How to Break Into AI Search with Andrew Holland
PPTX
Fixing-AI-Hallucinations-The-NeuroRanktm-Approach.pptx
PDF
Building a strong social media presence.
PDF
Mastering Content Strategy in 2025 ss.pdf
PDF
RC 14001 Certification: Enhancing ISO 14001 with EHS & Security Standards
PPTX
Tea and different types of tea in India
PDF
Missing skill for SEO in AI Era eSkydecode.pdf
PDF
Instagram Marketing Agency by IIS INDIA.pdf
PDF
Branding Basics: Building a Strong Brand Identity, Positioning, Storytelling ...
PPTX
Mastering eCommerce SEO: Strategies to Boost Traffic and Maximize Conversions
PDF
Digital Marketing - clear pictire of marketing
Ranking a Webpage with SEO (And Tracking It with the Right Attribution Type a...
Strategic Sage Digital-The Professional Digital Marketing Company in Mohali.pptx
procubiz_modern digital marketingblog.docx
E_Book_Customer_Relation_Management_0.pdf
Pay-Per-Click Marketing: Strategies That Actually Work in 2025
EVOLUTION OF RURAL MARKETING IN INDIAN CIVILIZATION
Digital Marketing Agency vs Freelancers and VAs: Which Should You Hire in 2025
Captain Morgan x FOS_Revised_8.8.25.pptx
Kimberly Crossland Storytelling Marketing Class 5stars.pptx
How to Break Into AI Search with Andrew Holland
Fixing-AI-Hallucinations-The-NeuroRanktm-Approach.pptx
Building a strong social media presence.
Mastering Content Strategy in 2025 ss.pdf
RC 14001 Certification: Enhancing ISO 14001 with EHS & Security Standards
Tea and different types of tea in India
Missing skill for SEO in AI Era eSkydecode.pdf
Instagram Marketing Agency by IIS INDIA.pdf
Branding Basics: Building a Strong Brand Identity, Positioning, Storytelling ...
Mastering eCommerce SEO: Strategies to Boost Traffic and Maximize Conversions
Digital Marketing - clear pictire of marketing

Dynamic Rendering for SEO by Nati Elimelech

  • 1. SMX Next * Dynamic rendering at scale What we learned from rendering over 200 million websites in React. Nati Elimelech, Tech SEO Lead, Wix @netanel November 2021
  • 2. @netanel Dynamic rendering at scale SMX Next JS Frameworks aren’t going anywhere
  • 3. @netanel Dynamic rendering at scale SMX Next The Rise of JS Frameworks - Rapid development - Better UX - Better performance - Enhanced functionality React
  • 4. @netanel Dynamic rendering at scale SMX Next When you visit a web page that requires JS Browser executes JS & updates DOM Produces rendered HTML Your browser sends a request to a URL Server responds w/ skeleton HTML + JS Browser constructs the web page
  • 5. @netanel Dynamic rendering at scale SMX Next Client-side rendering (CSR) The client (browser) does all the heavy lifting—needs to run JS to render the final HTML. Compatibility: clients with relevant JS capabilities
  • 6. @netanel Dynamic rendering at scale SMX Next The Dark Side - Need to execute JS to get important HTML - Requires more resources from client - Not all bots & crawlers support JS - Things can break Yes, another Star Wars™ joke
  • 7. @netanel Dynamic rendering at scale SMX Next When you visit a web page with server side rendering Browser gets fully rendered HTML response HTML = rendered HTML Your browser sends a request to a URL JS is executed & HTML rendered on server side Browser constructs the web page
  • 8. @netanel Dynamic rendering at scale SMX Next Server-side rendering (SSR) The server does all of the heavy lifting so the client doesn’t need to execute JS to see important HTML. Compatibility: all bots and clients, most animals, some furniture
  • 9. @netanel Dynamic rendering at scale SMX Next 🙎♂️🙍♀️ Introducing dynamic rendering (oh so very simplified) Request to URL Is this a known bot? No Ye s Initial response Rest of response Render HTML on server side Client Side Rendering 🤖🤖🤖 Serve skeleton HTML + JS Serve fully rendered HTML as the response Server Side Rendering
  • 10. @netanel Dynamic rendering at scale SMX Next Server-side rendering (SSR) for bots Client-side rendering (CSR) for users
  • 11. @netanel Dynamic rendering at scale SMX Next More flexibility ➔ Serve content and HTML regardless of client capabilities ➔ You can optimize HTML for bots ➔ User performance not impacted More complications ➔ Requires maintaining a UA list ➔ Multiple flows to maintain ➔ Multiple flows 🠆 more cache misses ➔ Parity between flows requires auditing Dynamic rendering brings:
  • 12. @netanel Dynamic rendering at scale SMX Next What user clients see
  • 13. @netanel Dynamic rendering at scale SMX Next What bots see (much tidier!)
  • 14. @netanel Dynamic rendering at scale SMX Next A short PSA
  • 15. SMX Next * More stuff I wanted to say but didn't have enough time for
  • 16. @netanel Dynamic rendering at scale SMX Next Consistency is key 1. Main content of page inc. images 2. Title, canonical & robots tags 3. Internal links 4. Alternate / hreflang tags 5. Structured Data Markup 6. Other important elements on the page 7. Page layout doesn't break Check your "SEO stuff" - sending mixed signals to search engines is always a bad thing. By importance:
  • 17. @netanel Dynamic rendering at scale SMX Next Checking for parity issues 2 sets of parity checks you want to be performing regularly: Googlebot Vs. Regular Chrome UA make sure bots see what users see, with JS rendering on 1️⃣ Bot Rendered HTML Vs. Bot Response HTML make sure bots that don't execute JS see what bots that don't execute JS see (at least for the important stuff) 2️⃣
  • 18. @netanel Dynamic rendering at scale SMX Next Checking for parity issues Human - Bot wars Keep the following settings in mind when auditing a webpage Bot Wars 1️⃣ 2️⃣ User agents: - UA1: Googlebot for Smartphones - UA2: Latest Chrome UA JS settings: Enable JS execution (limit to 5 seconds) for both User agents: Googlebot for Smartphones for both JS settings: - UA 1: Enable JS execution (limit to 5 seconds) - UA 2: Disable JS
  • 19. @netanel Dynamic rendering at scale SMX Next Manually auditing for parity issues Your Chrome browser & SEO extensions can be used to find rendering issues! 1. Change UA on browser using 'Network Conditions' or an extension 2. Disable or leave JS as required (extension) 3. Open your favorite SEO extension and record output 4. Change settings and use SEO extension again 5. Compare
  • 20. @netanel Dynamic rendering at scale SMX Next Tools you can use for free 1. Manual labor (prev. slide) 2. Mobile-Friendly Test, GSC and other Google tools will return rendered HTML as Googlebot 3. If you have the time - python
  • 21. @netanel Dynamic rendering at scale SMX Next Features you want in your paid auditing tool 1. Fully customizable UA 2. JS rendering setting / compare 3. Crawl comparisons 4. Render a visual preview of the page