SlideShare a Scribd company logo
@RobinRozhon
@RobinRozhon
Grey.comWhite.com
@RobinRozhon
Grey.comWhite.com
All content is server-side rendered with
some JavaScript features.
@RobinRozhon
Grey.com
All content is loaded via JavaScript in the
browser (SPA).
White.com
All content is server-side rendered with
some JavaScript features.
@RobinRozhon
Chrome 41 Latest Chromium
@RobinRozhon
Crawl
Index
Render
Instant,
first wave of indexing
New links to be
crawled
As rendering
resources become
available
Second wave of
indexing
Source: Google
@RobinRozhon
White.com
All content is server-side rendered with
some JavaScript features.
@RobinRozhon
@RobinRozhon
Opacity is a CSS property
that adds transparency to
elements.
body {
opacity: 0;
}
@RobinRozhon
Opacity is a CSS property
that adds transparency to
elements.
body {
opacity: 1;
}
@RobinRozhon
Grey.com
All content is loaded via JavaScript in the
browser (SPA).
@RobinRozhon
@RobinRozhon
Server
Source: Google
Browser
SPA
Dynamic Rendering
@RobinRozhon
Server
Crawler
Static HTML
Source: Google
Renderer
Browser
SPA
SPA
Dynamic Rendering
@RobinRozhon
Renderer
Prerender.io
@RobinRozhon
User Agents
@RobinRozhon
User Agents
@RobinRozhon
User Agents
@RobinRozhon
Party time?
@RobinRozhon
Server
Render
Static HTML
Source: Google
Renderer
Browser
SPA
SPA
Dynamic Rendering
@RobinRozhon
MonitoringTesting
@RobinRozhon
MonitoringTesting
Checking code updates before deploying
to the production site.
@RobinRozhon
Monitoring
Checking the production site on a
regular basis (i.e. daily).
Testing
Checking code updates before deploying
to the production site.
@RobinRozhon
Request URLs for each page type.
Monitoring
@RobinRozhon
Request URLs for each page type.
Monitoring
Ensure that JavaScript is disabled.
@RobinRozhon
Request URLs for each page type.
Monitoring
Ensure that JavaScript is disabled.
Set the user agent to Googlebot Smartphone.
@RobinRozhon
Request URLs for each page type.
Monitoring
Ensure that JavaScript is disabled.
Set the user agent to Googlebot Smartphone.
Verify the values, not only if an element is present.
@RobinRozhon
Rendering success rate.
@RobinRozhon
62.7% 73.6% 99.6%
Period 1 – Period 3
Initial state
Period 4 – Period 7
Extending JS timeout
Period 8 – Period 10
Allowing the site to load with
cookies and storage turned off
Rendering Success Rate
@RobinRozhon
@RobinRozhon
@RobinRozhon
62.7% 73.6% 99.6%
Period 1 – Period 3
Initial state
Period 4 – Period 7
Extending JS timeout
Period 8 – Period 10
Allowing the site to load with
cookies and storage turned off
Rendering Success Rate
@RobinRozhon
62.7% 73.6% 99.6%
Period 1 – Period 3
Initial state
Period 4 – Period 7
Extending JS timeout
Period 8 – Period 10
Allowing the site to load with
cookies and storage turned off
Rendering Success Rate
@RobinRozhon
62.7% 73.6% 99.6%
Period 1 – Period 3
Initial state
Period 4 – Period 7
Extending JS timeout
Period 8 – Period 10
Allowing the site to load with
cookies and storage turned off
Rendering Success Rate
@RobinRozhon
Verify content visibility.
@RobinRozhon
Detect search engines and social media
crawlers.
@RobinRozhon
Set up daily monitoring.
@RobinRozhon
Watch rendering success rate over time.
@RobinRozhon
Dynamic rendering is a workaround.
@RobinRozhon

More Related Content

Similar to The New Renaissance of JavaScript - SMX Advanced 2019

Site Performance Optimization - Joomla!
Site Performance Optimization - Joomla!Site Performance Optimization - Joomla!
Site Performance Optimization - Joomla!
Hans Kuijpers
 
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
Jamie Indigo
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Amazon Web Services
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deck
Alexey Bokov
 
Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...
Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...
Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...
haber atv
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
hugs
 
Test Automation using Ruby
Test Automation using Ruby Test Automation using Ruby
Test Automation using Ruby
Sla Va
 
How Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSocketsHow Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSockets
Sajjad "JJ" Arshad
 
Combining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Combining Heritrix and PhantomJS for Better Crawling of Pages with JavascriptCombining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Combining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Michael Nelson
 
Log files: The Overlooked Source of SEO Opportunities
Log files: The Overlooked Source of SEO OpportunitiesLog files: The Overlooked Source of SEO Opportunities
Log files: The Overlooked Source of SEO Opportunities
Robin Rozhon
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerce
Jamie Maria Schouren
 
Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.
Rachel Anderson
 
Are you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevToolsAre you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevTools
Jamie Indigo
 
Browser-level testing
Browser-level testingBrowser-level testing
Browser-level testing
Martin Kleppmann
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站areyouok
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
topgeek
 
Christian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsChristian Mladenov @ Intuitics
Christian Mladenov @ Intuitics
PAPIs.io
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
Patrick Chanezon
 
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Badoo
 
Building Reactive, Realtime Apps Without Writing Javascript
Building Reactive, Realtime Apps Without Writing JavascriptBuilding Reactive, Realtime Apps Without Writing Javascript
Building Reactive, Realtime Apps Without Writing Javascript
All Things Open
 

Similar to The New Renaissance of JavaScript - SMX Advanced 2019 (20)

Site Performance Optimization - Joomla!
Site Performance Optimization - Joomla!Site Performance Optimization - Joomla!
Site Performance Optimization - Joomla!
 
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deck
 
Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...
Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...
Beyaz eşya yetkili servis -www.ikinox.com-yetkili servisi - beyaz eşya tamir ...
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
 
Test Automation using Ruby
Test Automation using Ruby Test Automation using Ruby
Test Automation using Ruby
 
How Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSocketsHow Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSockets
 
Combining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Combining Heritrix and PhantomJS for Better Crawling of Pages with JavascriptCombining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
Combining Heritrix and PhantomJS for Better Crawling of Pages with Javascript
 
Log files: The Overlooked Source of SEO Opportunities
Log files: The Overlooked Source of SEO OpportunitiesLog files: The Overlooked Source of SEO Opportunities
Log files: The Overlooked Source of SEO Opportunities
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerce
 
Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.
 
Are you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevToolsAre you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevTools
 
Browser-level testing
Browser-level testingBrowser-level testing
Browser-level testing
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
Christian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsChristian Mladenov @ Intuitics
Christian Mladenov @ Intuitics
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
 
Building Reactive, Realtime Apps Without Writing Javascript
Building Reactive, Realtime Apps Without Writing JavascriptBuilding Reactive, Realtime Apps Without Writing Javascript
Building Reactive, Realtime Apps Without Writing Javascript
 

Recently uploaded

What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...
What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...
What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...
Demandbase
 
Grow Your Business Online: Introduction to Digital Marketing
Grow Your Business Online: Introduction to Digital MarketingGrow Your Business Online: Introduction to Digital Marketing
Grow Your Business Online: Introduction to Digital Marketing
Digital Discovery Institute
 
Playlist and Paint Event with Sony Music U
Playlist and Paint Event with Sony Music UPlaylist and Paint Event with Sony Music U
Playlist and Paint Event with Sony Music U
SemajahParker
 
DMF Portfolio Piece Smart Goals - Artist Management.docx
DMF Portfolio Piece Smart Goals - Artist Management.docxDMF Portfolio Piece Smart Goals - Artist Management.docx
DMF Portfolio Piece Smart Goals - Artist Management.docx
TravisMalana
 
Etsy Marketing Guide - Tips For Selling Digital Products
Etsy Marketing Guide - Tips For Selling Digital ProductsEtsy Marketing Guide - Tips For Selling Digital Products
Etsy Marketing Guide - Tips For Selling Digital Products
kcblog21
 
Digital Strategy Master Class - Andrew Rupert
Digital Strategy Master Class - Andrew RupertDigital Strategy Master Class - Andrew Rupert
Top digital marketing institutein noida
Top digital marketing institutein noidaTop digital marketing institutein noida
Top digital marketing institutein noida
aditisingh6607
 
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdfMastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Ibrandizer
 
Enhancing a Luxury Furniture E-commerce Store with Expert Shopify Management
Enhancing a Luxury Furniture E-commerce Store with Expert Shopify ManagementEnhancing a Luxury Furniture E-commerce Store with Expert Shopify Management
Enhancing a Luxury Furniture E-commerce Store with Expert Shopify Management
SunTec India
 
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya KellyHow to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
Digital Marketing Trends - Experts Insights on How
Digital Marketing Trends - Experts Insights on HowDigital Marketing Trends - Experts Insights on How
Gokila digital marketing| consultant| Coimbatore
Gokila digital marketing| consultant| CoimbatoreGokila digital marketing| consultant| Coimbatore
Gokila digital marketing| consultant| Coimbatore
dmgokila
 
Monthly Social Media News Update May 2024
Monthly Social Media News Update May 2024Monthly Social Media News Update May 2024
Monthly Social Media News Update May 2024
Andy Lambert
 
Winning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis YuWinning local SEO in the Age of AI - Dennis Yu
My Personal Brand Exploration by Mariano
My Personal Brand Exploration by MarianoMy Personal Brand Exploration by Mariano
My Personal Brand Exploration by Mariano
marianooscos
 
SEO Master Class - Steve Wiideman, Wiideman Consulting Group
SEO Master Class - Steve Wiideman,  Wiideman Consulting GroupSEO Master Class - Steve Wiideman,  Wiideman Consulting Group
SEO Master Class - Steve Wiideman, Wiideman Consulting Group
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina KillgoConsumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
15 ideas and frameworks on the art of storytelling
15 ideas and frameworks on the art of storytelling15 ideas and frameworks on the art of storytelling
15 ideas and frameworks on the art of storytelling
Aatir Abdul Rauf
 
Search Engine Optimization Strategies for Local Businesses.pdf
Search Engine Optimization Strategies for Local Businesses.pdfSearch Engine Optimization Strategies for Local Businesses.pdf
Search Engine Optimization Strategies for Local Businesses.pdf
seodigitalbraino
 
The What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital CommerceThe What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital Commerce
PushON Ltd
 

Recently uploaded (20)

What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...
What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...
What’s “In” and “Out” for ABM in 2024: Plays That Help You Grow and Ones to L...
 
Grow Your Business Online: Introduction to Digital Marketing
Grow Your Business Online: Introduction to Digital MarketingGrow Your Business Online: Introduction to Digital Marketing
Grow Your Business Online: Introduction to Digital Marketing
 
Playlist and Paint Event with Sony Music U
Playlist and Paint Event with Sony Music UPlaylist and Paint Event with Sony Music U
Playlist and Paint Event with Sony Music U
 
DMF Portfolio Piece Smart Goals - Artist Management.docx
DMF Portfolio Piece Smart Goals - Artist Management.docxDMF Portfolio Piece Smart Goals - Artist Management.docx
DMF Portfolio Piece Smart Goals - Artist Management.docx
 
Etsy Marketing Guide - Tips For Selling Digital Products
Etsy Marketing Guide - Tips For Selling Digital ProductsEtsy Marketing Guide - Tips For Selling Digital Products
Etsy Marketing Guide - Tips For Selling Digital Products
 
Digital Strategy Master Class - Andrew Rupert
Digital Strategy Master Class - Andrew RupertDigital Strategy Master Class - Andrew Rupert
Digital Strategy Master Class - Andrew Rupert
 
Top digital marketing institutein noida
Top digital marketing institutein noidaTop digital marketing institutein noida
Top digital marketing institutein noida
 
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdfMastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
 
Enhancing a Luxury Furniture E-commerce Store with Expert Shopify Management
Enhancing a Luxury Furniture E-commerce Store with Expert Shopify ManagementEnhancing a Luxury Furniture E-commerce Store with Expert Shopify Management
Enhancing a Luxury Furniture E-commerce Store with Expert Shopify Management
 
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya KellyHow to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
 
Digital Marketing Trends - Experts Insights on How
Digital Marketing Trends - Experts Insights on HowDigital Marketing Trends - Experts Insights on How
Digital Marketing Trends - Experts Insights on How
 
Gokila digital marketing| consultant| Coimbatore
Gokila digital marketing| consultant| CoimbatoreGokila digital marketing| consultant| Coimbatore
Gokila digital marketing| consultant| Coimbatore
 
Monthly Social Media News Update May 2024
Monthly Social Media News Update May 2024Monthly Social Media News Update May 2024
Monthly Social Media News Update May 2024
 
Winning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis YuWinning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis Yu
 
My Personal Brand Exploration by Mariano
My Personal Brand Exploration by MarianoMy Personal Brand Exploration by Mariano
My Personal Brand Exploration by Mariano
 
SEO Master Class - Steve Wiideman, Wiideman Consulting Group
SEO Master Class - Steve Wiideman,  Wiideman Consulting GroupSEO Master Class - Steve Wiideman,  Wiideman Consulting Group
SEO Master Class - Steve Wiideman, Wiideman Consulting Group
 
Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina KillgoConsumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
 
15 ideas and frameworks on the art of storytelling
15 ideas and frameworks on the art of storytelling15 ideas and frameworks on the art of storytelling
15 ideas and frameworks on the art of storytelling
 
Search Engine Optimization Strategies for Local Businesses.pdf
Search Engine Optimization Strategies for Local Businesses.pdfSearch Engine Optimization Strategies for Local Businesses.pdf
Search Engine Optimization Strategies for Local Businesses.pdf
 
The What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital CommerceThe What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital Commerce
 

The New Renaissance of JavaScript - SMX Advanced 2019

Editor's Notes

  1. I don’t want to spend the next 30 minutes lecturing you about what you can read in Developer guides published by Google. I want to share my experiences. I want to show you examples of what I’ve encountered. I’ve heard on numerous occasions that JS is evil … pause … I’m not sure if I agree with that …. Pause … Yes, JS makes SEO more difficult but that’s simply how the Internet evolves. JS is here to stay so we need to learn how to deal with it. We need to make our websites accessible.
  2. I’d like to introduce our heroes for today.
  3. To do a quick testing, you can use your Chrome browser because Google upgraded its web rendering service to Evergreen Googlebot which is basically the latest version of Chromium (give and take a few weeks). The other tools such as Google URL Inspection tool still use Chrome 41. ES6 and newer JavaScript features IntersectionObserver for lazy-loading This means Google is able to more accurately replicate what the users are seeing on JavaScript websites than in the past but it doesn’t solve all the problems.
  4. Because of this diagram that we all have seen. Google has tremendously improved their JS rendering capabilities but other search engines and social media crawlers are still behind. Also, Google doesn't execute JS immediately, it's with a delay. The delay is usually on the order of days to a few weeks (John Mueller). Google has plans to render JS while crawling but there's no date for that. If your website changes often, waiting for the second wave of indexing may not be the best idea. (e.g. think of car dealerships, news websites, etc.) Also, only canonical tags available during the fist wave of indexing are considered by Google. Do you want to risk your revenue while hoping Google can render your website properly? I don’t! I want to make sure that search engines and other web crawlers don’t need to execute JS to understand the website. JS disabled – let’s go.
  5. We’re going to start with the white one
  6. This looks awful but actually it’s not that bad. All the content is there (server-side rendered) is there. We just can’t see it because the opacity of the entire body tag is set to 0.
  7. Once all the critical resources are loaded (fonts, images etc), the JS changes it to 1. It’s not ideal but it‘s not mission critical. The website still ranks very well and drives tons of traffic from search engines.
  8. Client side rendered SPA always means you will have some fun. What SPA is? A single-page application is a web application or web site that interacts with the user by dynamically rewriting the current page rather than loading entire new pages from a server Single-Page Applications (SPAs) are Web apps that load a single HTML page and dynamically update that page as the user interacts with the app. SPAs use AJAX and HTML5 to create fluid and responsive Web apps, without constant page reloads.
  9. Another beautiful page. You can see that I was very creative when coming up with the names for the sites. We don’t want to rely on Google to render JS. We want to serve static HTML to search engines and other crawlers. The solution used for this website is dynamic rendering. 
  10. Dynamic rendering means switching between client-side rendered and pre-rendered content for specific user agents.
  11. These are three popular options. All of them use a headless Chrome. A headless browser is a web browser without a graphical user interface. They do what your browser does – Execute the JS into HTML
  12. User agent is a string that identifies who makes the request for a page. Google and Bing are two most logical choices
  13. If you care about international markets, you may want to consider likes of Yandex, Baidu, Naver or Seznam
  14. Don’t forget about social media crawlers from Facebook, Twitter, LinkedIn and others
  15. User agent detection done. The prerendering solution is up and running. You’re all set to receive a phenomenal visibility in search results! Is it party time? Not yet.
  16. Dynamic rendering is tricky because it’s hard to notice prerendering problems as long as the site is fully functional for users. How do you notice that something is wrong? Decrease of traffic from search engines? Drop in rankings? That already too late and the business is losing money! Before you label the implementation of dynamic rendering as finished, set automated monitoring of the rendering process.
  17. Let’s define those two terms to make sure we all think of them in the same way.
  18. Testing We could talk about unit tests, integration tests, end-to-end tests for quite long. Testing needs to be baked into your development process which is more challenging to do. Especially, if you work for an external agency. This is very useful stuff but let’s leave it for the next time.
  19. Monitoring You want to make sure that the rendering is checked on a daily basis. You can use third party tools or write your own script.
  20. Monitoring Test SEO elements against predefined rules. Don’t check only if an element is present in the code. Check if it includes the right value. It’s nice to know that meta robots tag is present in the code but it’s useless if you don’t know if the value is “noindex, follow” or “index, follow”. Testing and monitoring ensures you discover a problem before you’re feeling it’s impacts.
  21. Monitoring of the grey.com over time helped us discover problems with the prerendering process we wouldn’t have discovered because the site worked perfectly fine for the users. This tells me how often a page was successfully rendered. The higher the number is the happier I am.
  22. The rendering success rate was only 62.7%. Which means we returned static HTML to Googlebot only for 6 pages out of 10. The other 4 times we returned this…
  23. There was absolutely no content. It was just this empty layout. That wasn’t good at all.
  24. Timeline 62.7% success rate before implementing any fixes (Period 1 – Period 3)
  25. 73.6% success rate after extending JS timeout (Period 4 – Period 7)
  26. 99.6% success rate after allowing the site to load with cookies and storage turned off (Period 8 – Period 10) I want to use the monitoring to ensure rendering success rate stays this high and it doesn’t drop down.
  27. Verify that content that is supposed to be visible is actually visible.
  28. Use universal JS when possible.
  29. Don’t see JS as something that’s bad for a site.