SlideShare a Scribd company logo
#SMX #23A2 @maxxeight
SEO Best Practices for JavaScript
What To Do When
Google Can't
Understand Your
JavaScript
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
How Search Engines Typically Work
#SMX #23A2 @maxxeight
Everything is there!
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
Web Development Technologies
#SMX #23A2 @maxxeight
Search Engines’ Mission:
Serving the best result
#SMX #23A2 @maxxeight
No page title
No content
Etc.
#SMX #23A2 @maxxeight
It’s in the DOM!
#SMX #23A2 @maxxeight
How Search Engines Typically Work
Render “Understanding web pages better”
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
So, what now?
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
– onclick + window.location != <a href=”link.html”>
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
– onclick + window.location != <a href=”link.html”>
– 1 unique “clean” URL per piece of content (and vice-versa)
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
URL Structures (with AJAX websites)
 Fragment Identifier: example.com/#url
– Not supported. Ignored. URL = example.com
 Hashbang: example.com/#!url (pretty URL)
– Google and Bing will request:
example.com/?_escaped_fragment_=url (ugly URL)
– The escaped_fragment URL should return an HTML snapshot
 Clean URL: example.com/url
– Leveraging the pushState function from the History API
– Must return a 200 status code when loaded directly
#SMX #23A2 @maxxeight
History API - pushState()
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
– onclick + window.location != <a href=”link.html”>
– 1 unique “clean” URL per piece of content (and vice-versa)
 Rendering
– Load content automatically, not based on user interaction (click,
mouseover, scroll)
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
– onclick + window.location != <a href=”link.html”>
– 1 unique “clean” URL per piece of content (and vice-versa)
 Rendering
– Load content automatically, not based on user interaction (click,
mouseover, scroll)
– the 5-second rule
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
Google Fetch & Render PageSpeed Insights
The 5-second rule
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
– onclick + window.location != <a href=”link.html”>
– 1 unique “clean” URL per piece of content (and vice-versa)
 Rendering
– Load content automatically, not based on user interaction (click,
mouseover, scroll)
– the 5-second rule
– Avoid JavaScript errors (bots vs. browsers)
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 HTML snapshots are only required with
uncrawlable URLs (#!)
 When used with clean URLs:
– 2 URLs requested for each content (crawl budget!)
 Served directly to (other) crawlers (Facebook,
Twitter, Linkedin, etc.)
 Matching the content in the DOM
 No JavaScript (except JSON-LD markup)
 Not blocked from crawling
The “Old” AJAX Crawling Scheme And HTML Snapshots
DOM HTML
Snapshot
#SMX #23A2 @maxxeight
 HTML snapshots are only required with
uncrawlable URLs (#!)
 When used with clean URLs:
– 2 URLs requested for each content (crawl budget!)
 Served directly to (other) crawlers (Facebook,
Twitter, Linkedin, etc.)
 Matching the content in the DOM
 No JavaScript (except JSON-LD markup)
 Not blocked from crawling
The “Old” AJAX Crawling Scheme And HTML Snapshots
DOM HTML
Snapshot
#SMX #23A2 @maxxeight
 Crawling
– Don’t block resources via robots.txt
– onclick + window.location != <a href=”link.html”>
– 1 unique “clean” URL per piece of content (and vice-versa)
 Rendering
– Load content automatically, not based on user interaction (click,
mouseover, scroll)
– the 5-second rule
– Avoid JavaScript errors (bots vs. browsers)
 Indexing
– Mind the order of precedence (SEO signals and content)
How To Make Sure Google Can Understand Your Pages
#SMX #23A2 @maxxeight
HTTP
Headers
HTML
Source
DOM
HTML
Snapshot
#SMX #23A2 @maxxeight
 Google cache (unless HTML snapshots)
Tools For SEO And JavaScript
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Google cache (unless HTML snapshots)
 Google Fetch & Render (Search Console)
– limitation in terms of bytes (~200 KBs)
– doesn’t show HTML snapshot (DOM)
Tools For SEO And JavaScript
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Google cache (unless HTML snapshots)
 Google Fetch & Render (Search Console)
– limitation in terms of bytes (~200 KBs)
– doesn’t show HTML snapshot (DOM)
 Fetch & Render As Any Bot (TechnicalSEO.com)
Tools For SEO And JavaScript
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Google cache (unless HTML snapshots)
 Google Fetch & Render (Search Console)
– limitation in terms of bytes (~200 KBs)
– doesn’t show HTML snapshot (DOM)
 Fetch & Render As Any Bot (TechnicalSEO.com)
 Chrome DevTools (JavaScript Console)
Tools For SEO And JavaScript
#SMX #23A2 @maxxeight
#SMX #23A2 @maxxeight
 Google cache (unless HTML snapshots)
 Google Fetch & Render (Search Console)
– limitation in terms of bytes (~200 KBs)
– doesn’t show HTML snapshot (DOM)
 Fetch & Render As Any Bot (TechnicalSEO.com)
 Chrome DevTools (JavaScript Console)
 SEO Crawlers
– ScreamingFrog
– Botify
– Scalpel (Merkle proprietary tool)
Tools For SEO And JavaScript
#SMX #23A2 @maxxeight
LEARN MORE: UPCOMING @SMX EVENTS
THANK YOU!
SEE YOU AT THE NEXT #SMX

More Related Content

What's hot

skillshare organic search strategy
skillshare organic search strategyskillshare organic search strategy
skillshare organic search strategy
Alexis Sanders
 
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
DeepCrawl
 
Technical SEO Auditing Tips for the Modern Marketer by Melody Petulla at Merkle
Technical SEO Auditing Tips for the Modern Marketer by Melody Petulla at MerkleTechnical SEO Auditing Tips for the Modern Marketer by Melody Petulla at Merkle
Technical SEO Auditing Tips for the Modern Marketer by Melody Petulla at Merkle
BayAreaSearchSFMeetu
 
SMX West 2020 - Leveraging Structured Data for Maximum Effect
SMX West  2020 - Leveraging Structured Data for Maximum EffectSMX West  2020 - Leveraging Structured Data for Maximum Effect
SMX West 2020 - Leveraging Structured Data for Maximum Effect
Abby Hamilton
 
Technical SEO Beyond the Audit - Brighton SEO April 2017 - Philip Gamble
Technical SEO Beyond the Audit - Brighton SEO April 2017 - Philip GambleTechnical SEO Beyond the Audit - Brighton SEO April 2017 - Philip Gamble
Technical SEO Beyond the Audit - Brighton SEO April 2017 - Philip Gamble
Philip Gamble
 
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Semrush
 
Easier and faster tagging with Kermit
Easier and faster tagging with KermitEasier and faster tagging with Kermit
Easier and faster tagging with Kermit
Alban Gérôme
 
Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...
Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...
Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...
Link-Assistant.Com
 
Google’s tridente
Google’s tridenteGoogle’s tridente
Google’s tridente
Inbound Marketing Indonesia
 
SMX Keynote - SEO Horizons - Alexis' Section
SMX Keynote - SEO Horizons - Alexis' SectionSMX Keynote - SEO Horizons - Alexis' Section
SMX Keynote - SEO Horizons - Alexis' Section
Alexis Sanders
 
Technical seo
Technical seoTechnical seo
Technical seo
sunilkirangaddem
 

What's hot (11)

skillshare organic search strategy
skillshare organic search strategyskillshare organic search strategy
skillshare organic search strategy
 
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
 
Technical SEO Auditing Tips for the Modern Marketer by Melody Petulla at Merkle
Technical SEO Auditing Tips for the Modern Marketer by Melody Petulla at MerkleTechnical SEO Auditing Tips for the Modern Marketer by Melody Petulla at Merkle
Technical SEO Auditing Tips for the Modern Marketer by Melody Petulla at Merkle
 
SMX West 2020 - Leveraging Structured Data for Maximum Effect
SMX West  2020 - Leveraging Structured Data for Maximum EffectSMX West  2020 - Leveraging Structured Data for Maximum Effect
SMX West 2020 - Leveraging Structured Data for Maximum Effect
 
Technical SEO Beyond the Audit - Brighton SEO April 2017 - Philip Gamble
Technical SEO Beyond the Audit - Brighton SEO April 2017 - Philip GambleTechnical SEO Beyond the Audit - Brighton SEO April 2017 - Philip Gamble
Technical SEO Beyond the Audit - Brighton SEO April 2017 - Philip Gamble
 
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
 
Easier and faster tagging with Kermit
Easier and faster tagging with KermitEasier and faster tagging with Kermit
Easier and faster tagging with Kermit
 
Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...
Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...
Winning with mobile page speed: killer technologies, tools, and tips [by Aleh...
 
Google’s tridente
Google’s tridenteGoogle’s tridente
Google’s tridente
 
SMX Keynote - SEO Horizons - Alexis' Section
SMX Keynote - SEO Horizons - Alexis' SectionSMX Keynote - SEO Horizons - Alexis' Section
SMX Keynote - SEO Horizons - Alexis' Section
 
Technical seo
Technical seoTechnical seo
Technical seo
 

Viewers also liked

Your Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie Cary
Your Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie CaryYour Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie Cary
Your Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie Cary
Maddie Cary Deuel
 
Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...
Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...
Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...
Search Marketing Expo - SMX
 
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Daniel Leibson
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Search Marketing Expo - SMX
 
SEO Without SERPS By Bryson Meunier
SEO Without SERPS By Bryson MeunierSEO Without SERPS By Bryson Meunier
SEO Without SERPS By Bryson Meunier
Search Marketing Expo - SMX
 
How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...
How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...
How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...
AdStage
 
Creating a Customer-Driven Content Strategy | SMX West 2017
Creating a Customer-Driven Content Strategy | SMX West 2017Creating a Customer-Driven Content Strategy | SMX West 2017
Creating a Customer-Driven Content Strategy | SMX West 2017
Casie Gillette
 
Speak to Your Audience in Their Own Words By Brad Geddes
Speak to Your Audience in Their Own Words By Brad GeddesSpeak to Your Audience in Their Own Words By Brad Geddes
Speak to Your Audience in Their Own Words By Brad Geddes
Search Marketing Expo - SMX
 
Electrifying Your Online Marketing Message By Christine Churchill
Electrifying Your Online Marketing Message By Christine ChurchillElectrifying Your Online Marketing Message By Christine Churchill
Electrifying Your Online Marketing Message By Christine Churchill
Search Marketing Expo - SMX
 
Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...
Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...
Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...
Search Marketing Expo - SMX
 
Making Waves In Search By Virginia Tonning
Making Waves In Search By Virginia TonningMaking Waves In Search By Virginia Tonning
Making Waves In Search By Virginia Tonning
Search Marketing Expo - SMX
 
ETAs: Evolved Text Ads By Mark Irvine
ETAs: Evolved Text Ads By Mark IrvineETAs: Evolved Text Ads By Mark Irvine
ETAs: Evolved Text Ads By Mark Irvine
Search Marketing Expo - SMX
 
Using Experiments to Get Crazy(ier) But Still Be In Control By Susan Wenograd
Using Experiments to Get Crazy(ier) But Still Be In Control By Susan WenogradUsing Experiments to Get Crazy(ier) But Still Be In Control By Susan Wenograd
Using Experiments to Get Crazy(ier) But Still Be In Control By Susan Wenograd
Search Marketing Expo - SMX
 
Your Step By Step Guide to Testing Voice Search By Purna Virji
Your Step By Step Guide to Testing Voice Search By Purna VirjiYour Step By Step Guide to Testing Voice Search By Purna Virji
Your Step By Step Guide to Testing Voice Search By Purna Virji
Search Marketing Expo - SMX
 
Your Retargeting Doesn't Have to Suck - SMX West 2017
Your Retargeting Doesn't Have to Suck - SMX West 2017Your Retargeting Doesn't Have to Suck - SMX West 2017
Your Retargeting Doesn't Have to Suck - SMX West 2017
Elizabeth Marsten
 

Viewers also liked (16)

Your Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie Cary
Your Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie CaryYour Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie Cary
Your Mobile PPC Sucks (But It Doesn't Have To!) - SMX West 2017 - Maddie Cary
 
Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...
Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...
Busting Google's Black Box: Navigating Google Algorithms in a Post-Update Wor...
 
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
 
SEO Without SERPS By Bryson Meunier
SEO Without SERPS By Bryson MeunierSEO Without SERPS By Bryson Meunier
SEO Without SERPS By Bryson Meunier
 
How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...
How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...
How to Reach Ideal Customers Using Search & Social Tactics - SMX West 2017 - ...
 
Creating a Customer-Driven Content Strategy | SMX West 2017
Creating a Customer-Driven Content Strategy | SMX West 2017Creating a Customer-Driven Content Strategy | SMX West 2017
Creating a Customer-Driven Content Strategy | SMX West 2017
 
Speak to Your Audience in Their Own Words By Brad Geddes
Speak to Your Audience in Their Own Words By Brad GeddesSpeak to Your Audience in Their Own Words By Brad Geddes
Speak to Your Audience in Their Own Words By Brad Geddes
 
Electrifying Your Online Marketing Message By Christine Churchill
Electrifying Your Online Marketing Message By Christine ChurchillElectrifying Your Online Marketing Message By Christine Churchill
Electrifying Your Online Marketing Message By Christine Churchill
 
Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...
Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...
Using Paid Search & Social Together To Deliver The Ultimate Knock-Out Punch B...
 
Making Waves In Search By Virginia Tonning
Making Waves In Search By Virginia TonningMaking Waves In Search By Virginia Tonning
Making Waves In Search By Virginia Tonning
 
ETAs: Evolved Text Ads By Mark Irvine
ETAs: Evolved Text Ads By Mark IrvineETAs: Evolved Text Ads By Mark Irvine
ETAs: Evolved Text Ads By Mark Irvine
 
Using Experiments to Get Crazy(ier) But Still Be In Control By Susan Wenograd
Using Experiments to Get Crazy(ier) But Still Be In Control By Susan WenogradUsing Experiments to Get Crazy(ier) But Still Be In Control By Susan Wenograd
Using Experiments to Get Crazy(ier) But Still Be In Control By Susan Wenograd
 
Your Step By Step Guide to Testing Voice Search By Purna Virji
Your Step By Step Guide to Testing Voice Search By Purna VirjiYour Step By Step Guide to Testing Voice Search By Purna Virji
Your Step By Step Guide to Testing Voice Search By Purna Virji
 
Your Retargeting Doesn't Have to Suck - SMX West 2017
Your Retargeting Doesn't Have to Suck - SMX West 2017Your Retargeting Doesn't Have to Suck - SMX West 2017
Your Retargeting Doesn't Have to Suck - SMX West 2017
 

Similar to Max Prin - SMX West 2017 - What to do when Google can't understand your JavaScript

SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick StoxSMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
patrickstox
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
Sara Moccand-Sayegh
 
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Bastian Grimm
 
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick StoxSMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
patrickstox
 
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
MobileMoxie
 
Technical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdfTechnical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdf
Bluebash
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
Catalyst
 
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Bastian Grimm
 
Technical seo tips for web developers
Technical seo tips for web developersTechnical seo tips for web developers
Technical seo tips for web developers
Singsys Pte Ltd
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
dmethvin
 
Vegas slots online. play casino online
Vegas slots online. play casino onlineVegas slots online. play casino online
Vegas slots online. play casino online
karlisamayin
 
SEARCH Y : Benjamin Bussière - Javascript and seo misconceptions, misunders...
SEARCH Y :  Benjamin Bussière - Javascript and seo  misconceptions, misunders...SEARCH Y :  Benjamin Bussière - Javascript and seo  misconceptions, misunders...
SEARCH Y : Benjamin Bussière - Javascript and seo misconceptions, misunders...
SEARCH Y - Philippe Yonnet Evénements
 
Demystifying JavaScript & SEO
Demystifying JavaScript & SEODemystifying JavaScript & SEO
Demystifying JavaScript & SEO
Botify
 
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
SEO Camp Association
 
Rendering: Or why your perfectly optimized content doesn't rank
Rendering: Or why your perfectly optimized content doesn't rankRendering: Or why your perfectly optimized content doesn't rank
Rendering: Or why your perfectly optimized content doesn't rank
WeLoveSEO
 
rendre AJAX crawlable par les moteurs
rendre AJAX crawlable par les moteursrendre AJAX crawlable par les moteurs
rendre AJAX crawlable par les moteurs
Serge Esteves
 
Exploring Critical Rendering Path
Exploring Critical Rendering PathExploring Critical Rendering Path
Exploring Critical Rendering Path
Raphael Amorim
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizations
Chris Love
 
Crawl Budget - Some Insights & Ideas @ seokomm 2015
Crawl Budget - Some Insights & Ideas @ seokomm 2015Crawl Budget - Some Insights & Ideas @ seokomm 2015
Crawl Budget - Some Insights & Ideas @ seokomm 2015
Jan Hendrik Merlin Jacob
 
Alexis + Max - We Love SEO 19 - Bot X
Alexis + Max - We Love SEO 19 - Bot XAlexis + Max - We Love SEO 19 - Bot X
Alexis + Max - We Love SEO 19 - Bot X
Alexis Sanders
 

Similar to Max Prin - SMX West 2017 - What to do when Google can't understand your JavaScript (20)

SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick StoxSMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
 
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
 
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick StoxSMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
 
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
 
Technical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdfTechnical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdf
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
 
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
 
Technical seo tips for web developers
Technical seo tips for web developersTechnical seo tips for web developers
Technical seo tips for web developers
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
 
Vegas slots online. play casino online
Vegas slots online. play casino onlineVegas slots online. play casino online
Vegas slots online. play casino online
 
SEARCH Y : Benjamin Bussière - Javascript and seo misconceptions, misunders...
SEARCH Y :  Benjamin Bussière - Javascript and seo  misconceptions, misunders...SEARCH Y :  Benjamin Bussière - Javascript and seo  misconceptions, misunders...
SEARCH Y : Benjamin Bussière - Javascript and seo misconceptions, misunders...
 
Demystifying JavaScript & SEO
Demystifying JavaScript & SEODemystifying JavaScript & SEO
Demystifying JavaScript & SEO
 
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
 
Rendering: Or why your perfectly optimized content doesn't rank
Rendering: Or why your perfectly optimized content doesn't rankRendering: Or why your perfectly optimized content doesn't rank
Rendering: Or why your perfectly optimized content doesn't rank
 
rendre AJAX crawlable par les moteurs
rendre AJAX crawlable par les moteursrendre AJAX crawlable par les moteurs
rendre AJAX crawlable par les moteurs
 
Exploring Critical Rendering Path
Exploring Critical Rendering PathExploring Critical Rendering Path
Exploring Critical Rendering Path
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizations
 
Crawl Budget - Some Insights & Ideas @ seokomm 2015
Crawl Budget - Some Insights & Ideas @ seokomm 2015Crawl Budget - Some Insights & Ideas @ seokomm 2015
Crawl Budget - Some Insights & Ideas @ seokomm 2015
 
Alexis + Max - We Love SEO 19 - Bot X
Alexis + Max - We Love SEO 19 - Bot XAlexis + Max - We Love SEO 19 - Bot X
Alexis + Max - We Love SEO 19 - Bot X
 

Recently uploaded

How ActiveCampaign Can Grow Your Business.pptx
How ActiveCampaign Can Grow Your Business.pptxHow ActiveCampaign Can Grow Your Business.pptx
How ActiveCampaign Can Grow Your Business.pptx
Rakesh Jalan
 
online digital marketing training in telugu
online digital marketing training in teluguonline digital marketing training in telugu
online digital marketing training in telugu
lakshmie988
 
State of tokenization landscape 2024.pdf
State of tokenization landscape 2024.pdfState of tokenization landscape 2024.pdf
State of tokenization landscape 2024.pdf
nehapardhi711
 
Green Tech Solutions Paving the Way for a Sustainable Future.pptx
Green Tech Solutions Paving the Way for a Sustainable Future.pptxGreen Tech Solutions Paving the Way for a Sustainable Future.pptx
Green Tech Solutions Paving the Way for a Sustainable Future.pptx
elizabethella096
 
The Key Features of Social Marketing Strategies for Success www.eflot.com.pdf
The Key Features of Social Marketing Strategies for Success www.eflot.com.pdfThe Key Features of Social Marketing Strategies for Success www.eflot.com.pdf
The Key Features of Social Marketing Strategies for Success www.eflot.com.pdf
df2608021
 
Transforming Advertising with Billion Broadcaster
Transforming Advertising with Billion BroadcasterTransforming Advertising with Billion Broadcaster
Transforming Advertising with Billion Broadcaster
VikasYadav194549
 
3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf
3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf
3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf
search engine jornal
 
Do's and Don'ts: How to Pitch Your Press Release to Journalists
Do's and Don'ts: How to Pitch Your Press Release to JournalistsDo's and Don'ts: How to Pitch Your Press Release to Journalists
Do's and Don'ts: How to Pitch Your Press Release to Journalists
Aggregage
 
Snapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdf
Snapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdfSnapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdf
Snapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdf
Eastern Online-iSURVEY
 
Uncovering Marketo Engage's Target Account Management
Uncovering Marketo Engage's Target Account ManagementUncovering Marketo Engage's Target Account Management
Uncovering Marketo Engage's Target Account Management
GNW Consulting
 
Distribution Decision concept by sandesh acharya (1).pptx
Distribution Decision concept by sandesh acharya (1).pptxDistribution Decision concept by sandesh acharya (1).pptx
Distribution Decision concept by sandesh acharya (1).pptx
SandeshAcharya17
 
Marketing Plan for The Spark Foundation
Marketing Plan for The Spark Foundation Marketing Plan for The Spark Foundation
Marketing Plan for The Spark Foundation
SyrineTouati
 
Shravani Mela branding plan - static visibility across UP, Bihar and Jharkhand
Shravani Mela branding plan - static visibility across UP, Bihar and JharkhandShravani Mela branding plan - static visibility across UP, Bihar and Jharkhand
Shravani Mela branding plan - static visibility across UP, Bihar and Jharkhand
suyogkulkarni39
 
Segmentation, Targeting and positioning (1).pptx
Segmentation, Targeting and positioning (1).pptxSegmentation, Targeting and positioning (1).pptx
Segmentation, Targeting and positioning (1).pptx
SandeshAcharya17
 
Ranking in AI-powered Search - Berlin SEO & Content Club 2024
Ranking in AI-powered Search - Berlin SEO & Content Club  2024Ranking in AI-powered Search - Berlin SEO & Content Club  2024
Ranking in AI-powered Search - Berlin SEO & Content Club 2024
Flow Agency (formerly Flow SEO)
 
The Marketing Vunerabilities in Tech and IP-Led Companies
The Marketing Vunerabilities in Tech and IP-Led CompaniesThe Marketing Vunerabilities in Tech and IP-Led Companies
The Marketing Vunerabilities in Tech and IP-Led Companies
Bethan Vincent
 
Building A Powerful Brand on Any Platform
Building A Powerful Brand on Any PlatformBuilding A Powerful Brand on Any Platform
Building A Powerful Brand on Any Platform
Xpand Marketing
 
How to Build AI Chatbots in Minutes and Deploy Across Multi-Channels
How to Build AI Chatbots in Minutes and Deploy Across Multi-ChannelsHow to Build AI Chatbots in Minutes and Deploy Across Multi-Channels
How to Build AI Chatbots in Minutes and Deploy Across Multi-Channels
Vbout.com
 
TAM AdEx-Quarterly Report on Radio Advertising_2024.pdf
TAM AdEx-Quarterly Report on Radio Advertising_2024.pdfTAM AdEx-Quarterly Report on Radio Advertising_2024.pdf
TAM AdEx-Quarterly Report on Radio Advertising_2024.pdf
Social Samosa
 
MKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdf
MKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdfMKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdf
MKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdf
Mohammad Tauhidul Islam Khan Rifat
 

Recently uploaded (20)

How ActiveCampaign Can Grow Your Business.pptx
How ActiveCampaign Can Grow Your Business.pptxHow ActiveCampaign Can Grow Your Business.pptx
How ActiveCampaign Can Grow Your Business.pptx
 
online digital marketing training in telugu
online digital marketing training in teluguonline digital marketing training in telugu
online digital marketing training in telugu
 
State of tokenization landscape 2024.pdf
State of tokenization landscape 2024.pdfState of tokenization landscape 2024.pdf
State of tokenization landscape 2024.pdf
 
Green Tech Solutions Paving the Way for a Sustainable Future.pptx
Green Tech Solutions Paving the Way for a Sustainable Future.pptxGreen Tech Solutions Paving the Way for a Sustainable Future.pptx
Green Tech Solutions Paving the Way for a Sustainable Future.pptx
 
The Key Features of Social Marketing Strategies for Success www.eflot.com.pdf
The Key Features of Social Marketing Strategies for Success www.eflot.com.pdfThe Key Features of Social Marketing Strategies for Success www.eflot.com.pdf
The Key Features of Social Marketing Strategies for Success www.eflot.com.pdf
 
Transforming Advertising with Billion Broadcaster
Transforming Advertising with Billion BroadcasterTransforming Advertising with Billion Broadcaster
Transforming Advertising with Billion Broadcaster
 
3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf
3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf
3 Types Of PR & SEO Funnels That Will Maximize Conversions.pdf
 
Do's and Don'ts: How to Pitch Your Press Release to Journalists
Do's and Don'ts: How to Pitch Your Press Release to JournalistsDo's and Don'ts: How to Pitch Your Press Release to Journalists
Do's and Don'ts: How to Pitch Your Press Release to Journalists
 
Snapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdf
Snapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdfSnapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdf
Snapshot of Consumer Behaviors of June 2024-EOLiSurvey (EN).pdf
 
Uncovering Marketo Engage's Target Account Management
Uncovering Marketo Engage's Target Account ManagementUncovering Marketo Engage's Target Account Management
Uncovering Marketo Engage's Target Account Management
 
Distribution Decision concept by sandesh acharya (1).pptx
Distribution Decision concept by sandesh acharya (1).pptxDistribution Decision concept by sandesh acharya (1).pptx
Distribution Decision concept by sandesh acharya (1).pptx
 
Marketing Plan for The Spark Foundation
Marketing Plan for The Spark Foundation Marketing Plan for The Spark Foundation
Marketing Plan for The Spark Foundation
 
Shravani Mela branding plan - static visibility across UP, Bihar and Jharkhand
Shravani Mela branding plan - static visibility across UP, Bihar and JharkhandShravani Mela branding plan - static visibility across UP, Bihar and Jharkhand
Shravani Mela branding plan - static visibility across UP, Bihar and Jharkhand
 
Segmentation, Targeting and positioning (1).pptx
Segmentation, Targeting and positioning (1).pptxSegmentation, Targeting and positioning (1).pptx
Segmentation, Targeting and positioning (1).pptx
 
Ranking in AI-powered Search - Berlin SEO & Content Club 2024
Ranking in AI-powered Search - Berlin SEO & Content Club  2024Ranking in AI-powered Search - Berlin SEO & Content Club  2024
Ranking in AI-powered Search - Berlin SEO & Content Club 2024
 
The Marketing Vunerabilities in Tech and IP-Led Companies
The Marketing Vunerabilities in Tech and IP-Led CompaniesThe Marketing Vunerabilities in Tech and IP-Led Companies
The Marketing Vunerabilities in Tech and IP-Led Companies
 
Building A Powerful Brand on Any Platform
Building A Powerful Brand on Any PlatformBuilding A Powerful Brand on Any Platform
Building A Powerful Brand on Any Platform
 
How to Build AI Chatbots in Minutes and Deploy Across Multi-Channels
How to Build AI Chatbots in Minutes and Deploy Across Multi-ChannelsHow to Build AI Chatbots in Minutes and Deploy Across Multi-Channels
How to Build AI Chatbots in Minutes and Deploy Across Multi-Channels
 
TAM AdEx-Quarterly Report on Radio Advertising_2024.pdf
TAM AdEx-Quarterly Report on Radio Advertising_2024.pdfTAM AdEx-Quarterly Report on Radio Advertising_2024.pdf
TAM AdEx-Quarterly Report on Radio Advertising_2024.pdf
 
MKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdf
MKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdfMKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdf
MKT460: Strategic Marketing_ SeH_ Kishwan Cookies.pdf
 

Max Prin - SMX West 2017 - What to do when Google can't understand your JavaScript

  • 1. #SMX #23A2 @maxxeight SEO Best Practices for JavaScript What To Do When Google Can't Understand Your JavaScript
  • 3. #SMX #23A2 @maxxeight How Search Engines Typically Work
  • 7. #SMX #23A2 @maxxeight Web Development Technologies
  • 8. #SMX #23A2 @maxxeight Search Engines’ Mission: Serving the best result
  • 9. #SMX #23A2 @maxxeight No page title No content Etc.
  • 11. #SMX #23A2 @maxxeight How Search Engines Typically Work Render “Understanding web pages better”
  • 14. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt How To Make Sure Google Can Understand Your Pages
  • 17. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt – onclick + window.location != <a href=”link.html”> How To Make Sure Google Can Understand Your Pages
  • 19. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt – onclick + window.location != <a href=”link.html”> – 1 unique “clean” URL per piece of content (and vice-versa) How To Make Sure Google Can Understand Your Pages
  • 20. #SMX #23A2 @maxxeight URL Structures (with AJAX websites)  Fragment Identifier: example.com/#url – Not supported. Ignored. URL = example.com  Hashbang: example.com/#!url (pretty URL) – Google and Bing will request: example.com/?_escaped_fragment_=url (ugly URL) – The escaped_fragment URL should return an HTML snapshot  Clean URL: example.com/url – Leveraging the pushState function from the History API – Must return a 200 status code when loaded directly
  • 21. #SMX #23A2 @maxxeight History API - pushState()
  • 22. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt – onclick + window.location != <a href=”link.html”> – 1 unique “clean” URL per piece of content (and vice-versa)  Rendering – Load content automatically, not based on user interaction (click, mouseover, scroll) How To Make Sure Google Can Understand Your Pages
  • 24. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt – onclick + window.location != <a href=”link.html”> – 1 unique “clean” URL per piece of content (and vice-versa)  Rendering – Load content automatically, not based on user interaction (click, mouseover, scroll) – the 5-second rule How To Make Sure Google Can Understand Your Pages
  • 25. #SMX #23A2 @maxxeight Google Fetch & Render PageSpeed Insights The 5-second rule
  • 26. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt – onclick + window.location != <a href=”link.html”> – 1 unique “clean” URL per piece of content (and vice-versa)  Rendering – Load content automatically, not based on user interaction (click, mouseover, scroll) – the 5-second rule – Avoid JavaScript errors (bots vs. browsers) How To Make Sure Google Can Understand Your Pages
  • 28. #SMX #23A2 @maxxeight  HTML snapshots are only required with uncrawlable URLs (#!)  When used with clean URLs: – 2 URLs requested for each content (crawl budget!)  Served directly to (other) crawlers (Facebook, Twitter, Linkedin, etc.)  Matching the content in the DOM  No JavaScript (except JSON-LD markup)  Not blocked from crawling The “Old” AJAX Crawling Scheme And HTML Snapshots DOM HTML Snapshot
  • 29. #SMX #23A2 @maxxeight  HTML snapshots are only required with uncrawlable URLs (#!)  When used with clean URLs: – 2 URLs requested for each content (crawl budget!)  Served directly to (other) crawlers (Facebook, Twitter, Linkedin, etc.)  Matching the content in the DOM  No JavaScript (except JSON-LD markup)  Not blocked from crawling The “Old” AJAX Crawling Scheme And HTML Snapshots DOM HTML Snapshot
  • 30. #SMX #23A2 @maxxeight  Crawling – Don’t block resources via robots.txt – onclick + window.location != <a href=”link.html”> – 1 unique “clean” URL per piece of content (and vice-versa)  Rendering – Load content automatically, not based on user interaction (click, mouseover, scroll) – the 5-second rule – Avoid JavaScript errors (bots vs. browsers)  Indexing – Mind the order of precedence (SEO signals and content) How To Make Sure Google Can Understand Your Pages
  • 32. #SMX #23A2 @maxxeight  Google cache (unless HTML snapshots) Tools For SEO And JavaScript
  • 34. #SMX #23A2 @maxxeight  Google cache (unless HTML snapshots)  Google Fetch & Render (Search Console) – limitation in terms of bytes (~200 KBs) – doesn’t show HTML snapshot (DOM) Tools For SEO And JavaScript
  • 36. #SMX #23A2 @maxxeight  Google cache (unless HTML snapshots)  Google Fetch & Render (Search Console) – limitation in terms of bytes (~200 KBs) – doesn’t show HTML snapshot (DOM)  Fetch & Render As Any Bot (TechnicalSEO.com) Tools For SEO And JavaScript
  • 38. #SMX #23A2 @maxxeight  Google cache (unless HTML snapshots)  Google Fetch & Render (Search Console) – limitation in terms of bytes (~200 KBs) – doesn’t show HTML snapshot (DOM)  Fetch & Render As Any Bot (TechnicalSEO.com)  Chrome DevTools (JavaScript Console) Tools For SEO And JavaScript
  • 40. #SMX #23A2 @maxxeight  Google cache (unless HTML snapshots)  Google Fetch & Render (Search Console) – limitation in terms of bytes (~200 KBs) – doesn’t show HTML snapshot (DOM)  Fetch & Render As Any Bot (TechnicalSEO.com)  Chrome DevTools (JavaScript Console)  SEO Crawlers – ScreamingFrog – Botify – Scalpel (Merkle proprietary tool) Tools For SEO And JavaScript
  • 41. #SMX #23A2 @maxxeight LEARN MORE: UPCOMING @SMX EVENTS THANK YOU! SEE YOU AT THE NEXT #SMX

Editor's Notes

  1. Let’s start with the basics. Typically, search engines bots crawl, index and then rank pages. Crawl: request the URL from the server and download the HTML document. Index: parse and index the content of the HTML document. Rank: algorithmically rank the URL based on a bunch of factors, including the content of the HTML document.
  2. For a long time, this was enough. The HTML document including everything search engines (and users) needed to know about the page: meta data (title, description) and the main content of the page. So, what happened? Technology happened. New web development technologies took the Internet from…
  3. THIS…
  4. To this. Flipkart: one of the largest online retailer in India. Over the last couple of years, their web dev teams worked really hard to create a responsive/progressive web app website. It’s fast, mobile-friendly, works offline, sends push notifications, can be added to the phone home screen like a native app, etc.
  5. Those web dev technologies, including the ones shown of this slide, have allowed and helped webmasters creating fantastic websites, design and user experiences.
  6. Now, let’s remind ourselves a search engine’s mission: serving the best result. This means understanding web pages better. To be able to return the best results Google had to find the best results.
  7. Solely looking at the HTML document (i.e. source code) is not enough. When using JavaScript frameworks it’s often that the “source code” doesn’t include any relevant information for search engines to base their results on.
  8. Everything (meta data and content) is in the Document Object Model. When clicking “inspect element” in a browser, you access a visual representation of the DOM. It represents what the page looks like (from a code standpoint) after the browser has done its job of parsing, rendering/painting the page.
  9. “rendering” is the keyword. Google is, since a few years now, rendering web pages, after crawling and before indexing, in order to understand them better.
  10. The purpose of rendering goes further than simply getting the content dynamically inserted on the page. It’s about understand the user experience provided by the website. It’s because Google is rendering pages (loading CSS, executing media queries) that they’re able to determine their mobile-friendliness and make it a (important) ranking factor. Bing also render web pages to determine mobile-friendliness and we’ve seen instances where Bingbot also execute some JavaScript (redirect) but the search engine has not yet make any official announcement around their ability to fully render websites.
  11. “Is that it? Google can execute JavaScript. Great, so I don’t have to worry about using JavaScript framework?” Unfortunately, no. There is a few things to consider in order to make sure Google can understand your JavaScript. Let’s look at them from a search engine standpoint, in the following order: crawling, rendering and indexing.
  12. - First and foremost: do not block bots from accessing vital resources: CSS, JavaScript and Images.
  13. If CSS can’t be accessed, a responsive website won’t considered as mobile-friendly. Same goes for content in JavaScript -> if not seen, not indexed.
  14. Same goes for content in JavaScript -> if not seen, not indexed. This is a particular test that I ran to see if Google, in order to prevent spammy results, was considering the “severity” of the blocked resource for indexing. It appears that the URL was indexed and ranking for the “puppies” content. Source code: “puppies” content DOM (after JavaScript execution): “Amoxicillin” content Script blocked via robots.txt Now think about what is happening if your website doesn’t have anything in the source code and everything is the DOM, but the scripts are blocked from crawling.
  15. Remember that JavaScript functions, while they can include URLs paths and strings, are not regular “a href” links. Google might or might not be able to “crawl” those URLs. Even if they are crawled, it is unknown how much weight is given to those “links” and how they are considered within the site architecture. We all know the importance of internal linking.
  16. As Gary Illyes said: “URLs are the bridges between Google and your content”. It is essential to have every piece of content accessible via its own URL Single Page Applications (SPAs) should actually not be using a “single page” or single URL when delivering the content Each URL within the application should render and include the relevant content (the same applies to Infinite scroll implementation).
  17. Fragment identifier: this URL structure is already a concept in the web and relates to deep linking into content on a particular page (“jump links”). Can’t be accessed/crawled/indexed. Hashbang: Used with the “old” AJAX crawling scheme. Not recommended, more complex to implement. Clean URL using History API’s pushState function.
  18. With pushState, we can “manipulate” the browser’s address bar and history. The app can push URLs in the history stack so users can use the back and forward buttons. => With access to the resources, real <a href> links to follow and unique URLs to find content, Google will be able to crawl a website properly.
  19. Googlebot is a lame user: it doesn’t click on buttons or scroll down the page, etc. Therefore the content needs to be loaded in the DOM automatically, not based on user interactions
  20. Mega menu – mouseover + ajax Tabs/accordeons – click + ajax Load more/infinite scroll - click/scroll + ajax
  21. It appears that Google takes an HTML snapshot of the page around 5 secons after the Load event. This is important because it means that content inserted later won’t be seen and therefore won’t be indexed.
  22. Load event + 5 seconds = HTML snapshot from Googlebot
  23. This sounds like common sense but it happens. Real world example: Page is loading Script sets a JavaScript cookie Script instructs AJAX request to load a partial HTML file holding the content of a mega menu => regular users (browsers) have not issue seeing the full page. => Googlebot wasn’t “accepting” the JavaScript cookie – the script fails, stops being executed, the AJAX request is not made, Google doesn’t see the mega menu with all of the top nav links.
  24. => With content loaded automatically and not delayed over 5 seconds, Google should be able to render you pages properly.
  25. => With content loaded automatically and not delayed over 5 seconds, Google should be able to render you pages properly.
  26. Google can find SEO signals and/or content from different sources: the HTTP headers, the HTML source code, the DOM, and eventually the HTML snapshot. It is important to understand the order of precedence: For content and “hints” (such as a canonical tag) Google will take the last seen signal into consideration. Content in the source code not present in the DOM will be disregarded. It makes perfect sense as if the content is not in the DOM, it is not visible to the user. For directives, however, such as noindex tags, Google will respect them wherever they find them. A noindex tag in the source code will prevent the page from being indexed despite an explicit “index” tag in the DOM. Rel=“nofollow”. It appears that Google won’t respect a rel=“nofollow” dynamically inserted into a <ahref> present in the source code. If the link is found in the source code, without the rel=nofollow attribute, it will be queued for crawling – regardless if a rel=nofollow is added in the DOM.
  27. Don't use google cache: https://maxxeight.com/blog/google-cache-seo/ It doesn’t represent how Google rendered the page. The cache only shows the HTML document that was downloaded.
  28. Using the cache as a source of information can also be mis-leading. In this case, the Google cache domain can’t render the page as it doesn’t have access to the resources. https://webcache.googleusercontent.com can’t make AJAX requests to https://technicalseo.com
  29. Google’s Fetch & Render is limited: https://www.deepcrawl.com/blog/news/google-webmaster-hangout-notes-december-16th-2016/#link1?platform=hootsuite Large webpages might not be rendered properly in Fetch & Render. The tool doesn’t return an HTML snapshot of the page. The screenshot is a good way to see if the page is rendered but it won’t help confirming a mega menu has been loaded for example.
  30. But it’s still a better source of info than the cache. It fetches pages from a Google IP (it makes a difference sometimes for websites blocking “Googlebot” user-agent if not coming from a known Google IP) It leverages Googlebot’s JavaScript rendering engine which is likely to be more advanced than PhantomJS.
  31. In order to overcome those limitation I’ve built a tool accessible (for free) on TechnicalSEO.com. Only caveat: it’s not Googlebot. The headless browser is PhantomJS and is not as sophisticated as Googlebot, in some cases.
  32. TechnicalSEO.com Fetch as any bot: https://technicalseo.com/seo-tools/fetch-render/ GSC Fetch as Google Limitation: It doesn’t fully render “large” HTML document (> ~200KB). It doesn’t return a DOM snapshot (or “HTML snapshot”) of the rendered page. Only a screenshot, which is useful but not enough to make sure the page is properly rendered (e.g. dynamically generated mega menu, or content in tabs, etc.. => non-visible content). This tool gives you both. It always respects robots.txt files (no way to get an idea how the page would be rendered without blocked resources) – this tools lets you disregard robots.txt statement while still reporting potentially blocked URLs. It doesn’t follow redirects – this tool reports on HTTP (301, 302, etc.), meta refresh and JavaScript redirects (even pushState events). It doesn’t have the option to change the Accept-Language header and/or IP (for locale-adaptive pages or international redirects) when we know Googlebot can actually crawl with different settings and locations. And obviously, it doesn’t give the option to crawl with different (non-Google) user-agents.
  33. Probably the best and most useful SEO tool available. Use it to troubleshoot eventual JavaScript error that might occur in specific situations: change your user-agent to Googlebot, Googlebot smartphone, disable cookies, etc. and confirm that your pages are rendered properly.
  34. Lastly, some SEO crawlers have, finally, the ability of executing JavaScript and rendering webpages. ScreamingFrog has integrated the Chromium project library into the spider. This makes it the closest crawler to what Googlebot it. Botify is using PhantomJS but is a cloud-based crawler so more scalable for large websites (although SF can be installed on a very powerful virtual machine). Screamingfrog: https://www.screamingfrog.co.uk/crawl-javascript-seo/ Botify: https://www.botify.com/blog/crawling-javascript-for-technical-seo-audits/