SlideShare une entreprise Scribd logo
1  sur  22
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

Contenu connexe

Tendances

Tendances (20)

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

Similaire à Dynamic Rendering for SEO by Nati Elimelech

Evolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldEvolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native World
Iain Hull
 

Similaire à Dynamic Rendering for SEO by Nati Elimelech (20)

KharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themKharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address them
 
Building Web Applications Without a Framework
Building Web Applications Without a FrameworkBuilding Web Applications Without a Framework
Building Web Applications Without a Framework
 
JS Fest 2019/Autumn. Александр Товмач. JAMstack
JS Fest 2019/Autumn. Александр Товмач. JAMstackJS Fest 2019/Autumn. Александр Товмач. JAMstack
JS Fest 2019/Autumn. Александр Товмач. JAMstack
 
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
 
Professional Services Insights into Improving Sitecore XP
Professional Services Insights into Improving Sitecore XPProfessional Services Insights into Improving Sitecore XP
Professional Services Insights into Improving Sitecore XP
 
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME ServerHow to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
 
3 Tips to Deliver Fast Performance Across Mobile Web
3 Tips to Deliver Fast Performance Across Mobile Web3 Tips to Deliver Fast Performance Across Mobile Web
3 Tips to Deliver Fast Performance Across Mobile Web
 
#Webperf Choreography
#Webperf Choreography#Webperf Choreography
#Webperf Choreography
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
 
Netflix Webkit-Based UI for TV Devices
Netflix Webkit-Based UI for TV DevicesNetflix Webkit-Based UI for TV Devices
Netflix Webkit-Based UI for TV Devices
 
How NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscape
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
 
Rendering engine
Rendering engineRendering engine
Rendering engine
 
Web II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentWeb II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side development
 
Building high performing web pages
Building high performing web pagesBuilding high performing web pages
Building high performing web pages
 
An Introduction to Pagespeed Optimisation
An Introduction to Pagespeed OptimisationAn Introduction to Pagespeed Optimisation
An Introduction to Pagespeed Optimisation
 
The Speed Update: Faster is Better for Everyone [Aleh Barysevich, SMXeast 2018]
The Speed Update: Faster is Better for Everyone [Aleh Barysevich, SMXeast 2018]The Speed Update: Faster is Better for Everyone [Aleh Barysevich, SMXeast 2018]
The Speed Update: Faster is Better for Everyone [Aleh Barysevich, SMXeast 2018]
 
HTML5 Comprehensive Guide
HTML5 Comprehensive GuideHTML5 Comprehensive Guide
HTML5 Comprehensive Guide
 
Evolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldEvolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native World
 
Site Speed Optimization for Elementor Websites
Site Speed Optimization for Elementor WebsitesSite Speed Optimization for Elementor Websites
Site Speed Optimization for Elementor Websites
 

Dernier

Dernier (20)

Aligarh Hire 💕 8250092165 Young and Hot Call Girls Service Agency Escorts
Aligarh Hire 💕 8250092165 Young and Hot Call Girls Service Agency EscortsAligarh Hire 💕 8250092165 Young and Hot Call Girls Service Agency Escorts
Aligarh Hire 💕 8250092165 Young and Hot Call Girls Service Agency Escorts
 
Alpha Media March 2024 Buyers Guide.pptx
Alpha Media March 2024 Buyers Guide.pptxAlpha Media March 2024 Buyers Guide.pptx
Alpha Media March 2024 Buyers Guide.pptx
 
Best 5 Graphics Designing Course In Chandigarh
Best 5 Graphics Designing Course In ChandigarhBest 5 Graphics Designing Course In Chandigarh
Best 5 Graphics Designing Course In Chandigarh
 
VIP Call Girls Dongri WhatsApp +91-9833363713, Full Night Service
VIP Call Girls Dongri WhatsApp +91-9833363713, Full Night ServiceVIP Call Girls Dongri WhatsApp +91-9833363713, Full Night Service
VIP Call Girls Dongri WhatsApp +91-9833363713, Full Night Service
 
How consumers use technology and the impacts on their lives
How consumers use technology and the impacts on their livesHow consumers use technology and the impacts on their lives
How consumers use technology and the impacts on their lives
 
SP Search Term Data Optimization Template.pdf
SP Search Term Data Optimization Template.pdfSP Search Term Data Optimization Template.pdf
SP Search Term Data Optimization Template.pdf
 
10 Email Marketing Best Practices to Increase Engagements, CTR, And ROI
10 Email Marketing Best Practices to Increase Engagements, CTR, And ROI10 Email Marketing Best Practices to Increase Engagements, CTR, And ROI
10 Email Marketing Best Practices to Increase Engagements, CTR, And ROI
 
Press Release Distribution Evolving with Digital Trends.pdf
Press Release Distribution Evolving with Digital Trends.pdfPress Release Distribution Evolving with Digital Trends.pdf
Press Release Distribution Evolving with Digital Trends.pdf
 
[Expert Panel] New Google Shopping Ads Strategies Uncovered
[Expert Panel] New Google Shopping Ads Strategies Uncovered[Expert Panel] New Google Shopping Ads Strategies Uncovered
[Expert Panel] New Google Shopping Ads Strategies Uncovered
 
Elevate Your Advertising Game: Introducing Billion Broadcaster Lift Advertising
Elevate Your Advertising Game: Introducing Billion Broadcaster Lift AdvertisingElevate Your Advertising Game: Introducing Billion Broadcaster Lift Advertising
Elevate Your Advertising Game: Introducing Billion Broadcaster Lift Advertising
 
Optimizing Your Marketing with AI-Powered Prompts
Optimizing Your Marketing with AI-Powered PromptsOptimizing Your Marketing with AI-Powered Prompts
Optimizing Your Marketing with AI-Powered Prompts
 
Unveiling the Legacy of the Rosetta stone A Key to Ancient Knowledge.pptx
Unveiling the Legacy of the Rosetta stone A Key to Ancient Knowledge.pptxUnveiling the Legacy of the Rosetta stone A Key to Ancient Knowledge.pptx
Unveiling the Legacy of the Rosetta stone A Key to Ancient Knowledge.pptx
 
personal branding kit for music business
personal branding kit for music businesspersonal branding kit for music business
personal branding kit for music business
 
2024 Social Trends Report V4 from Later.com
2024 Social Trends Report V4 from Later.com2024 Social Trends Report V4 from Later.com
2024 Social Trends Report V4 from Later.com
 
Rise and fall of Kulula.com, an airline won consumers by different marketing ...
Rise and fall of Kulula.com, an airline won consumers by different marketing ...Rise and fall of Kulula.com, an airline won consumers by different marketing ...
Rise and fall of Kulula.com, an airline won consumers by different marketing ...
 
SALES-PITCH-an-introduction-to-sales.pptx
SALES-PITCH-an-introduction-to-sales.pptxSALES-PITCH-an-introduction-to-sales.pptx
SALES-PITCH-an-introduction-to-sales.pptx
 
Tata Punch brochure with complete detail of all the variants
Tata Punch brochure with complete detail of all the variantsTata Punch brochure with complete detail of all the variants
Tata Punch brochure with complete detail of all the variants
 
Distribution Ad Platform_ The Role of Distribution Ad Network.pdf
Distribution Ad Platform_ The Role of  Distribution Ad Network.pdfDistribution Ad Platform_ The Role of  Distribution Ad Network.pdf
Distribution Ad Platform_ The Role of Distribution Ad Network.pdf
 
Micro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdf
Micro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdfMicro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdf
Micro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdf
 
HOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATION
HOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATIONHOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATION
HOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATION
 

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