SlideShare a Scribd company logo
<h2>The Chaotic Landscape of JavaScript </h4>
What is JavaScript SEO?
What it takes for a
modern JavaScript-
powered website to
be properly indexed
by search crawlers?
7 Random Statements
1. SEO was never this dynamic
2. Google is pushing more changes than ever, they aren’t as popular as
Penguin and Panda
3. I still see too many SEOs who live in a fantasy world made out out of
MOZ DA scores, keyword density and SEO “hacks”
4. That tiny pocket in jeans was designed to store pocket watches
5. Looking at some of the biggest websites in the world, it seems that most
didn’t hear about Technical SEO yet.
6. McDonald’s once made bubblegum-flavored broccoli
7. JavaScript is here to stay and JavaScript SEO is not a geeky option
anymore (YAY!)
Have you heard about the
2 waves of JavaScript
indexing?
Deep crawl the chaotic landscape of JavaScript
Web development
HTML → HTML + CSS → HTML + a little JS → HTML + a lot of JS → JS
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Read more: ele.ph/budget
Read more: ele.ph/googleio
Why isn’t this process instant?
Read more: ele.ph/budget
Source: Google I/O 2018
“…Rendering pages at the scale of the web
requires a lot of time and computational
resources. And make no mistake, this is a
serious challenge for search crawlers,
Googlebot included.”
“Rendering the JavaScript powered
web pages takes processor power
and memory. While Googlebot is very
powerful, it doesn’t have infinite
resources.”
1 user = 60 Watt lightbulb
lit for 3 hours*
*Data from 2011
THE REAL COST
of
JavaScript
JavaScript “lives”
in your CPU
JavaScript HTML
Enter JavaScript
1 100
USA TODAY Case Study
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
“The European Union Experience”
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
USA Today without JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
The Guardian vs. CPU
A Case Study
It is believed that
The Guardian
& Amazon are
performance
superstars.
“…Many of us still look at sites
like Amazon’s or the Guardian’s in awe…”
How fast do you think
The Guardian loads?
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
137
Deep crawl the chaotic landscape of JavaScript
But this performance comes with a price…
CPU
Go to Chrome Dev Tools → Performance
CMD + OPT + I
CTRL + ALT + I
HIGH END MACHINE - THE BEST CPU YOU
CAN HAVE IN A MACBOOK - 10 seconds
Deep crawl the chaotic landscape of JavaScript
Slower CPU
Load Time – 90 seconds
CPUs 1-on-1
Deep crawl the chaotic landscape of JavaScript
Source: https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Unfortunately not all websites are
like The Guardian…
accuweather.com
SECONDS TO FIRST
MEANINGFUL PAINT HIGH
END CPU
6sec
Deep crawl the chaotic landscape of JavaScript
SECONDS TO FIRST
MEANINGFUL PAINT (Moto
G4’s CPU)
Deep crawl the chaotic landscape of JavaScript
13 SECOND DIFFERENCE
BETWEEN A HIGH END CPU
AND A SLOW CPU (!)
Deep crawl the chaotic landscape of JavaScript
…enter
Rewriting
JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
• Technical SEO in 2018 - New metrics, new technologies and new challenges.
What did they need
React for?
Language switcher
Buttons on the bottom of
the page
Client side login library
~300 lines of code written
~200 kB removed
performance improvement
Netflix’s performance (and
SEO) doesn’t depend on the
client’s CPU that much
AMP – BBC.COM
Netflix.com Netflix.com @ Moto G4
~200 KB to process
4 seconds
0.065 seconds
How about ~400KB?
Source: Google I/O 2018
Read more: ele.ph/googleio
How do you ensure you are not caught up
between the waves?
You need to embrace chaos!
There are
And a lot of those “documents” are getting more and more
complex!
With the exponential
growth of JavaScript
frameworks...
With the exponential
growth of JavaScript
frameworks...
artoszCoin
barti
How to be cool in 2018
Deep crawl the chaotic landscape of JavaScript
The Big Three
Source: https://javascriptreport.com/the-ultimate-guide-to-javascript-frameworks/
Notable frameworks
Rest of the pack
Are they OK for SEO?
JavaScript Frameworks
&
?
?
?
??
??
??
?
?
?
?
?
?? ??
?
??
?
???
?
?
?
?
?
?
Let’s hear the framework
creators talk about
JavaScript & SEO
...if you care about
SEO, you still need to
have server-rendered
content.
Jeff Whelpley
Angular U conference, June 22-25, 2015, Hyatt Regency, San Francisco Airport
“Angular 2 Server Rendering”
ele.ph/angularU
...we are generally able
to render and
understand your web
pages like modern
browsers.
Chaos?
Indexing vs. Ranking
Can you
rank with a
JS website?
As Googlers would say
“there are factors at play here”
client rendered JS
Let’s search for Hulu’s exclusive shows.
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Ctrl+C
Ctrl+V
Everyone hates him for telling the truth!
Here’s why you’re
wasting your time on
client-rendered JS
websites…
Findoutnow!
SEO – where the giants fight!
YouTube vs. Vimeo
Why is their
visibility declining?
Vimeo’s
homepage
without JS!
I’m about to
reveal the
YouTube secret
no one ever
told you.
YouTube is a
client-rendered
JS website…
YouTube with JS disabled
…and they are
prerendering for
Googlebot
Why would YouTube prerender
for Googlebot? Doesn’t
Google render JS just fine?
Deep crawl the chaotic landscape of JavaScript
SEO – where the giants fight
Deep crawl the chaotic landscape of JavaScript
JavaScript vs. Crawler budget (crawl demand)
JavaScript vs. Crawler budget (crawl demand)
Oh no!
ele.ph/budget
JavaScript vs. Crawler budget (crawl demand)
Oh no!
(…) Also, crawling &
indexing is currently
a bit slower than
static HTML (...)
ele.ph/crawldemand
Crawling and
indexing
JavaScript is not
a 0/1 thing
GSC
fetch
URL
Indexed?
Content
Indexed?
Test
URL
External Ajax callInline
JavaScript
dozens of different frameworks
their different configurations
transpiling
inline vs. external
On top of that, there are hundreds of factors
affecting crawling and indexing
?How about Search Engines other than
Get ready for real chaos!
Search Engines
SEO
statements
reality
guy @ Pubcon
our experiment
THE BING THING
Fabrice Canel of
Bing said that
Bing processes
JS.
True story!
Patrick Stox @ DTD Conference 2018
Deep crawl the chaotic landscape of JavaScript
Rich media cautions
don’t bury links to
content inside JavaScript
Rich media cautions
Graceful degradation
enable a clean down-
level experience so
crawlers can see your
content
Rich media cautions
Graceful degradation
Down-level experience
enhances discoverability
avoid housing content
inside Flash or JavaScript
– these block crawlers
from finding the content
It can process JS vs. It DOES process JS
Proof
1. Go to Angular.io
2. Copy any text from the website
CTRL+C
3. Try to find it in Bing.com
CTRL+V
4. Find everything BUT the angular.io
website
Or search for any content from jsseo.expert
Google vs. Bing
Thanks, Dan Petrovic!
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
ele.ph/beyondgoogle
63,4%
22,8%
11,7%
1,3% 0,8%
Google Bing Yahoo! Ask AOL
Search Engine market share
Source: https://www.statista.com/statistics/267161/market-share-of-search-engines-in-the-united-states/
83,5%
11,1%
3,8% 0,8% 0,6%
Google Bing Yahoo! MSN DuckDuckGo
Search Engine market share
Source: https://www.statista.com/statistics/280269/market-share-held-by-search-engines-in-the-united-kingdom/
94,5%
4,2% 1,0% 0,1% 0,1%
Google Bing Yahoo! T-Online Ask.com
Search Engine market share
Source: https://www.statista.com/statistics/445002/market-shares-leading-search-engines-germany/
ele.ph/beyondgoogle
Let’s take a closer look at Google
Deep crawl the chaotic landscape of JavaScript
JavaScript is REALLY easy to break
It’s all very shaky,
based on duct tape rather than…
Let’s start from Angular.io
and their GitHub issue
noindex meta tag?
Deep crawl the chaotic landscape of JavaScript
https://angular.io/guide/language-service
https://angular.io/guide/security
https://angular.io/guide/architecture
https://angular.io/api/animations/group
https://angular.io/guide/quickstart
https://angular.io/guide/language-service
https://angular.io/guide/security
https://angular.io/guide/architecture
https://angular.io/api/animations/group
https://angular.io/guide/quickstart
https://angular.io
https://angular.io/events
https://angular.io/api
https://angular.io/resources
https://angular.io/about?group=Angular
https://angular.io/guide/language-service
https://angular.io/guide/security
https://angular.io/guide/architecture
https://angular.io/api/animations/group
https://angular.io/guide/quickstart
https://angular.io
https://angular.io/events
https://angular.io/api
https://angular.io/resources
https://angular.io/about?group=Angular
url / / url /
UPSIDE DOWN
The only thing [those] pages (…)
have in common is the number of
path segments in the url.
Igor Minar
Deep crawl the chaotic landscape of JavaScript
SEO Visibility
http://yourdomain.com/category/shoes/
url / / url /
How much would that cost you?
http://yourdomain.com/category/
Prerender.io – is partial indexing in Google possible?
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Visibility
vs. Developers
SEOs
vs. Search Engines
vs. Framework creators
Developers are confused af…
…We’ve created what will be
remembered as the world’s
most confusing JavaScript
survey ever.
…it contained only
1 question…
…but proved to be the most
difficult question you can
ask your developer.
Can client-side rendered JavaScript
websites rank high in Google?
Node.js developers group
35
7
ReactJS group
6
21
Angular2+ group
4
9
JavaScript group
2
34
Solution?
SEO
team
Solution?
SEO
team
Can you rank well with a Client
Rendered JavaScript Website?
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Quick check
JavaScript Enabled
JavaScript Disabled
React Native
How about
their rankings?
.com
#1
for
#1 for
Is there hope for client-rendered JS websites?
Well…
.No
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Ranking with a CSR JavaScript
website
Ranking without it
Google Flights
ele.ph/flights
Google Flights
ele.ph/flights
Deep crawl the chaotic landscape of JavaScript
A look behind the curtain
Deep crawl the chaotic landscape of JavaScript
Source: Google I/O 2018
Deep crawl the chaotic landscape of JavaScript
What is partial indexing?
This means that if your site is using a heavy amount of client side
JS, you can be tripped up at times when the content is being
indexed due to this two phase indexing process.
It’s possible that some details may
be missed.
And this effectively means that if
your site is using a heavy amount of
client-side JavaScript for rendering,
you could be tripped up at times
when your content is being indexed
due to the nature of this two phase
indexing process.
…it’s possible some details might be
missed.
Tom Greenaway
2 waves
WAVE 1 WAVE 2
• JS dependent
content only
• HTML content
• Canonicals
• Meta data
• HTTP Codes
Indexing of modern JavaScript
websites is a challenge.
John Mueller
Rendering
Client Side rendering
Source: Google I/O 2018
Server-side rendering
Source: Google I/O 2018
Hybrid Rendering*
*Google’s Long-Term
recommendation
Source: Google I/O 2018
Google’s policy change?
Dynamic Rendering
(aka prerendering)
Deep crawl the chaotic landscape of JavaScript
Prerendering/Dynamic Rendering issues
1. Computing power – A LOT of servers
2. Prone to issues (often load related)
3. Downtime = ranking loss
4. More complex and difficult from an SEO perspective (crawls, 2 sets
of code, etc.)
5. Requires a lot of SEO knowledge
6. Requires a great dev team to make it run smoothly
When to use dynamic
rendering (according
to Google)
A dynamic website
“Is if your site is large and
rapidly changing for, example
if you have a news website.”
Your website is relying on
features that are not
supported in Chrome 41
Libraries that cannot be
transpiled back to ES5, APIs
that don’t suport Chrome 41
Troubleshooting JavaScript indexing
Google Search
Console – fetch
and render
Google Search
Console – fetch
and render
Google mobile-friendly test
g.co/MobileFriendly
Google mobile-friendly test
ele.ph/hulu-test
Google mobile-friendly test
ele.ph/hulu-test
COPY THIS CODE
Diff Checker
Google mobile-friendly test
Google mobile-
friendly test
Homework
#SMX #XXA @McCieslak
1. The Source Code vs. DOM
Source code DOM
#SMX #XXA @McCieslak
GSC
fetch
URL
Indexed?
Content
Indexed?
Test
URL
InlineInlineV2 Inline
2. Crawling - server log
#SMX #XXA @McCieslak
#SMX #XXA @McCieslak
Make sure your content is indexed
ctrl+c
ctrl+v
hulu.com/casual
Under the right URL
https://angular.io/features
Deep crawl the chaotic landscape of JavaScript
To Do:
1. Diff Check is your new best friend
2. Experiment and make sure to monitor
your server logs
3. Compare your setup with Chrome 41
4. Make sure that your content is indexed
in Google
5. Under the right URL
Wrap up JS
Wrap up JS
1
JS can kill
crawler budget
Wrap up JS
1
JS can kill a
crawler budget
2
JS websites have
ranking problems
Ranking well with
CSR JavaScript
websites is very
hard if not
impossible.
2
yet
Make sure you choose a right frawework
Deep crawl the chaotic landscape of JavaScript
We are still looking for a pioneer!
Bartosz@Goralewicz.com
@bart_Goralewicz

More Related Content

PDF
SMX Munich 2018 - Current State of JavaScript SEO
PDF
JavaScript Tips & Tricks 2018 - SMX East
PDF
The New Renaissance of JavaScript - SMX London 2019
PPTX
How Much Content is Not Indexed in Google in 2019?
PDF
Challenges of building a search engine like web rendering service
PPTX
SearchLove Boston 2018 - Bartosz Goralewicz - JavaScript: Looking Past the ...
PDF
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
PDF
Debugging rendering problems at scale
SMX Munich 2018 - Current State of JavaScript SEO
JavaScript Tips & Tricks 2018 - SMX East
The New Renaissance of JavaScript - SMX London 2019
How Much Content is Not Indexed in Google in 2019?
Challenges of building a search engine like web rendering service
SearchLove Boston 2018 - Bartosz Goralewicz - JavaScript: Looking Past the ...
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
Debugging rendering problems at scale

What's hot (20)

PDF
Web Performance & Search Engines - A look beyond rankings
PPTX
Too Long; Didn’t Render - The State of JS and HTML Indexing
PPTX
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
PDF
Browser Changes That Will Impact SEO From 2019-2020
PPTX
Three site speed optimisation tips to make your website REALLY fast - Brighto...
PDF
The State of the Web: Pagination and Infinite Scroll
PDF
Migration to a JS Framework without Losing Your Rankings and Mind
PDF
SearchLove Boston 2018 - Emily Grossman - The Marketer’s Guide to Performance...
PPTX
TFM - Using Google Tag Manager for ecom
PPTX
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
PPTX
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
PDF
SearchLove Boston 2018 - Tom Anthony - Hacking Google: what you can learn fro...
PDF
SMX London Technical SEO in 2018.
PPTX
On-Page SEO EXTREME - SEOZone Istanbul 2013
PPTX
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs
PDF
Introduction to PWAs & New JS Frameworks for Mobile
PDF
AMP - SMX München 2018
PDF
Implementing schema.org in the JSON-LD format with Google Tag Manager
PPTX
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
PDF
Mauro Cattaneo - Why hreflang is crucial to international SEO success - Brigh...
Web Performance & Search Engines - A look beyond rankings
Too Long; Didn’t Render - The State of JS and HTML Indexing
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
Browser Changes That Will Impact SEO From 2019-2020
Three site speed optimisation tips to make your website REALLY fast - Brighto...
The State of the Web: Pagination and Infinite Scroll
Migration to a JS Framework without Losing Your Rankings and Mind
SearchLove Boston 2018 - Emily Grossman - The Marketer’s Guide to Performance...
TFM - Using Google Tag Manager for ecom
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
SearchLove Boston 2018 - Tom Anthony - Hacking Google: what you can learn fro...
SMX London Technical SEO in 2018.
On-Page SEO EXTREME - SEOZone Istanbul 2013
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs
Introduction to PWAs & New JS Frameworks for Mobile
AMP - SMX München 2018
Implementing schema.org in the JSON-LD format with Google Tag Manager
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Mauro Cattaneo - Why hreflang is crucial to international SEO success - Brigh...
Ad

Similar to Deep crawl the chaotic landscape of JavaScript (20)

PPTX
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
PDF
Stapling and patching the web of now - ForwardJS3, San Francisco
PDF
Stefan Judis "Did we(b development) lose the right direction?"
PPTX
SEARCH Y : Benjamin Bussière - Javascript and seo misconceptions, misunders...
PPTX
SearchLove Boston 2017 | Dom Woodman | How to Get Insight From Your Logs
PPTX
Swf search final
PPTX
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
PDF
The Technical Seo Renaissance - Mike King
PPTX
Flash SEO Secrets
PPTX
A Guide to Log Analysis with Big Query
PDF
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
PPTX
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
PDF
The New Renaissance of JavaScript - SMX London 2019
PPTX
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
PDF
Javascript SEO Devs and SEOs playing nicely
PDF
The Technical SEO Renaissance
PPT
GWT + Gears : The browser is the platform
PPTX
SEO vs Angular
PPTX
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
PDF
Demystifying JavaScript & SEO
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
Stapling and patching the web of now - ForwardJS3, San Francisco
Stefan Judis "Did we(b development) lose the right direction?"
SEARCH Y : Benjamin Bussière - Javascript and seo misconceptions, misunders...
SearchLove Boston 2017 | Dom Woodman | How to Get Insight From Your Logs
Swf search final
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
The Technical Seo Renaissance - Mike King
Flash SEO Secrets
A Guide to Log Analysis with Big Query
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
The New Renaissance of JavaScript - SMX London 2019
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Javascript SEO Devs and SEOs playing nicely
The Technical SEO Renaissance
GWT + Gears : The browser is the platform
SEO vs Angular
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Demystifying JavaScript & SEO
Ad

Recently uploaded (20)

PDF
Future Retail Disruption Trends and Observations
PDF
Modernizing IT for the age of AI - Jason Aloia, Freshworks
PDF
Digital Marketing Agency in Thrissur with Proven Strategies for Local Growth
PPTX
Fixing-AI-Hallucinations-The-NeuroRanktm-Approach.pptx
PDF
Mastering Content Strategy in 2025 ss.pdf
PDF
Wondershare Filmora Crack Free Download 2025
PPTX
Sumit Saxena IIM J Project Market segmentation.pptx
PDF
Master Fullstack Development Course in Chennai – Enroll Now!
PDF
20K Btc Enabled Cash App Accounts – Safe, Fast, Verified.pdf
PDF
Building a strong social media presence.
PDF
Fly Emirates SEO case study by Rakesh pathak.pdf
PPTX
Final Project parkville.............pptx
PPTX
Amazon - STRATEGIC.......................pptx
PDF
Pay-Per-Click Marketing: Strategies That Actually Work in 2025
PDF
EVOLUTION OF RURAL MARKETING IN INDIAN CIVILIZATION
PPTX
UNIT 3 - 5 INDUSTRIAL PRICING.ppt x
PPTX
Ranking a Webpage with SEO (And Tracking It with the Right Attribution Type a...
PDF
AFCAT Syllabus 2026 Guide by Best Defence Academy in Lucknow.pdf
PDF
Hidden gems in Microsoft ads with Navah Hopkins
PDF
Prove and Prioritize Profitability in Every Marketing Campaign - Zach Sherrod...
Future Retail Disruption Trends and Observations
Modernizing IT for the age of AI - Jason Aloia, Freshworks
Digital Marketing Agency in Thrissur with Proven Strategies for Local Growth
Fixing-AI-Hallucinations-The-NeuroRanktm-Approach.pptx
Mastering Content Strategy in 2025 ss.pdf
Wondershare Filmora Crack Free Download 2025
Sumit Saxena IIM J Project Market segmentation.pptx
Master Fullstack Development Course in Chennai – Enroll Now!
20K Btc Enabled Cash App Accounts – Safe, Fast, Verified.pdf
Building a strong social media presence.
Fly Emirates SEO case study by Rakesh pathak.pdf
Final Project parkville.............pptx
Amazon - STRATEGIC.......................pptx
Pay-Per-Click Marketing: Strategies That Actually Work in 2025
EVOLUTION OF RURAL MARKETING IN INDIAN CIVILIZATION
UNIT 3 - 5 INDUSTRIAL PRICING.ppt x
Ranking a Webpage with SEO (And Tracking It with the Right Attribution Type a...
AFCAT Syllabus 2026 Guide by Best Defence Academy in Lucknow.pdf
Hidden gems in Microsoft ads with Navah Hopkins
Prove and Prioritize Profitability in Every Marketing Campaign - Zach Sherrod...

Deep crawl the chaotic landscape of JavaScript