SlideShare a Scribd company logo
1 of 66
Download to read offline
Think like a bot,
Rank like a boss:
How Googlebot renders
Jamie Alberico // Not a Robot
SLIDESHARE.NET/JAMIEALBERICO
@JAMMER_VOLTS
Jamie Alberico
My name means Usurper Elf
King.
I’m a Technical SEO, Search
Advocate, & Wood Elf Druid.
Oh yeah, and I’m Not a
Robot.
#brightonSEO @Jammer_Volts
Masters of unlocking magic in everyday
objects, Technical SEOs are extremely
resourceful.
They see magic as a complex system
waiting to be decoded and controlled.
Proficiencies (recommended)
Chrome Developer Tools, Lighthouse,
Google Search Console, webcrawlers
Technical SEOs
Class Details
#brightonSEO @Jammer_Volts
Our Technical
SEO Quest
To protect site visibility by delivering
our content to Google’s index.
To do this, we must pass
through a powerful construct.
#brightonSEO @Jammer_Volts
When Googlebot retrieves your pages,
Googlebot runs your code, and assess your
content to understand the layout or structure of
your site.
What is Rendering?
#brightonSEO @Jammer_Volts
All information Google collects during the
rendering process is then used to rank the quality
and value of your site content against other sites
and what people are searching for with Google
Search.
How Google Search Works, Search Console Help Center
Rendering’s role in Rank
#brightonSEO @Jammer_Volts
Initial HTML
(1st wave of indexing)
Rendered HTML
(2nd Wave of indexing)
Rendering
#brightonSEO @Jammer_Volts
If Google cannot render the pages on
your site, it becomes more difficult to
understand your web content because we
are missing key visual layout information
about your web pages.
As a result, the visibility of your site
content in Google Search can suffer.
Rendering Risks
#brightonSEO @Jammer_Volts
Until 2018, we thought our quest looked
like this
Crawl
Index
Rank
#brightonSEO @Jammer_Volts
Now, we know that Rendering is part of the process
and that Google has two waves of indexing.
Crawl Index
Render
Rank
First Wave
SecondWave
#brightonSEO @Jammer_Volts
If Google can’t render content, we fail our quest
Crawl Index
#brightonSEO @Jammer_Volts
Google’s Web
Rendering Service
(WRS)
Insight Check
#brightonSEO @Jammer_Volts
Google Web Rendering Service
Large Construct (legendary), lawful neutral
Languages HTML, CSS, JavaScript, Images
Skills Perception +12, Dexterity +10
Senses Robots.txt, Robots directives
#brightonSEO @Jammer_Volts
Takes action using threads
Each requests to made by a thread. A thread is a single
connection. It sequentially moves through each action,
one at a time, until it’s task is complete.
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
SEOs call this Crawl Budget
“Simply put, [crawl budget] represents the number of
simultaneous parallel connections Googlebot may use to
crawl the site, as well as the time it has to wait between
the fetches.”
What Crawl Budget Means for Googlebot, Google Webmaster Blog
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Stateless
● Does not retain state across page loads
● Local Storage and Session Storage data are cleared
across pages loads
● HTTP Cookies are cleared across page loads
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Obedient
Obeys HTML/HTML5 protocol
Literal
“Googlebot, go to the apothecary and buy a
healing potion. If they have shields, buy 2. “
Googlebot comes back with 2 potions.
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Politeness is priority 0
Crawling is its main priority while making sure it doesn't
degrade the experience of users visiting the site. We call
this the "crawl rate limit," which limits the maximum
fetching rate for a given site.
What Crawl Budget Means for Googlebot, Google Webmaster Central Blog
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Multi-thread
Googlebot can execute more than one request at a time
if demand and server stability allows.
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Request URI
Googlebot send a request for content at a unique
resource instance (URI).
Googlebot can discover a URL
via link or submission
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Read HTTP response and headers
Q. Does the thing I asked for exist?
A. HTTP Status Codes
Q. Anything I should know before looking at this?
A. Cache-Control, and Directives
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Parse
Download the response from
server
Features & Traits Equipment Actions
#brightonSEO @Jammer_Volts
Identify Resources
Googlebot identifies resources
needed to complete the request.
It feeds identified resources into
the crawling queue.
Features & Traits Actions Equipment
Use Network tab to see how many
resources a page calls
#brightonSEO @Jammer_Volts
Cache
If the requested website implements a cache, a copy of
the data is made or requested
Features & Traits Actions Equipment
#brightonSEO @Jammer_Volts
Actions
WRS, web rendering service
Features & Traits Equipment
Googlebot queues pages for both crawling and rendering. It is not
immediately obvious when a page is waiting for crawling and when it is
waiting for rendering.
WRS is the name used to represent the collective elements involved in
Google’s rendering service. Many details are not publically available.
#brightonSEO @Jammer_Volts
Web Rendering Service (WRS)
Blink Browser Engine
V8 Rendering Engine
Ignition TurboFan Liftoff Display backend
GoogleMagic
Chromium Headless Browser
#brightonSEO @Jammer_Volts
Actions
WRS process
Features & Traits Equipment
1. A URL is pulled from the crawl queue
2. Googlebot requests the URL and downloads the initial HTML
3. The Initial HTML is passed to the processing stage which extracts links
4. Links go back on the crawl queue
5. Once resources are crawled, the page queues for rendering
#brightonSEO @Jammer_Volts
Actions
WRS process
Features & Traits Equipment
6. When resources become available, the request moves from the render
queue to the renderer
7. Renderer passes the rendered HTML back to processing
8. Processing indexes the content
9. Extracts links from the rendered HTML to put them into the crawl
queue
#brightonSEO @Jammer_Volts
Chromium, headless browser
EquipmentActionsFeatures & Traits
● Headless means that there is no GUI (visual representation)
● Used to load web pages and extract metadata
● reading from and writing to the DOM
● observing network events
● capturing screenshots
● inspecting worker scripts
● recording Chrome Traces
#brightonSEO @Jammer_Volts
Blink, browser engine
● Allows for querying and manipulating the rendering
engine settings (ex: mobile vs. desktop)
● Blink loves service workers. Blink may create multiple
worker threads to run Web Workers, ServiceWorker
and Worklets
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
Blink, browser engine
Blink is responsible for 2 major elements:
Memory heap: stores the result of script execution
(Memory Heap results are added to DOM.)
Call stack: queue of sequential next steps
(Each entry in the call stack is called a Stack Frame.)
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
Blink, browser engine
Local storage and Session storage are key-value pairs
that can store any JS objects and functions in the
browser
These keys are a weak point in your rendering offense
against a stateless Googlebot.
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
V8, JavaScript engine
JavaScript is a single-threaded process and each entry or
execution step is a stack frame.
Googlebot can opt run simultaneous parallel
connections.
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
V8, JavaScript engine
Each thread will runs through a process of:
1. Loading
2. Parsing
3. Compiling
4. Executing
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
V8, JavaScript engine
● open-source JavaScript engine and WebAssembly
engine
● developed by Google & The Chromium Project
● Use in Node.js, Google Chrome, and Chromium web
browsers
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
V8’s components
● Ignition, a fast low-level register-based JavaScript
interpreter written using the backend of TurboFan
● TurboFan, one of V8’s optimizing compilers
● Liftoff, a new baseline compiler for WebAssembly
EquipmentActionsFeatures & Traits
#brightonSEO @Jammer_Volts
Optimized Rendering
Roll with Advantage
#brightonSEO @Jammer_Volts
Parse content critical to
user intent in initial HTML
#brightonSEO @Jammer_Volts
Crawl
Index
Render
HTML
DOM
1st wave of
indexing
2nd wave of
indexing
#brightonSEO @Jammer_Volts
Critical = why the user came
#brightonSEO @Jammer_Volts
Define it for your site, by template
#brightonSEO @Jammer_Volts
Use clean, consistent signals
Googlebot won’t see past a noindex directive in initial HTML
to see an index placed in DOM.
Duplicative content without a canonical in initial HTML is
crawl waste until rendering.
Inconsistent title tags and descriptions can result from
overwriting the initial HTML with rendered HTML.
#brightonSEO @Jammer_Volts
Focus rendering efforts with nofollow
If a resource is not valuable to the construction of the page,
add a nofollow directive to resources that are not necessary
or beneficial to page construction.
#brightonSEO @Jammer_Volts
Mobile vs Desktop Rendering
Layout matters for both.
If you want to rank for
position zero, remember that
the content must be exposed
on initial mobile load.
#brightonSEO @Jammer_Volts
Choose the rendering strategy that’s
right for your business and stack.
You don’t have to be 100% client-side, 100% server-side, or
100% both (dynamic).
Load what matters when it matters.
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
Rendering
Challenges
Survival Check
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
Rendering
&
Performance
DOM
HTML
Style
Sheets
HTML
Parser
CSS
Parser
DOM
Tree
Style
Rules
Render
Tree
Attachment
Layout
Painting Display
TTFB
TTI
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
More Pages Resources require more
rendering resources
Each resource must be fetched independently before the
page can be accurately rendered.
This is a major part of the issue with client-side rendering.
More client-side calls mean more blindspots for you.
#brightonSEO @Jammer_Volts
Excessive scripts
runs the risk of
hitting thread/rest
thresholds.
This is most often
observed as Other
error .
#brightonSEO @Jammer_Volts
Call Stacks have a maximum size
While the Call Stack has functions to execute, the browser
can’t actually do anything else — it’s getting blocked.
#brightonSEO @Jammer_Volts
Session and Local web storage limits
5MB per object, and 50MB per system
If your CSR resources are too large, you risk hitting the upper
limit. Elements in queue once the limit is reached may not be
considered by Googlebot.
#brightonSEO @Jammer_Volts
Load scripts & images without blocking
Asynchronous calls are supported with async attributes
<rel=”myscript.js” async defer>
Lazy load images in Chrome with native attributes
<img src=”the-traveler.jpg” loading=”lazy”>
#brightonSEO @Jammer_Volts
Broken Structured Data Markup
#brightonSEO @Jammer_Volts
Don’t trust document.write( )
Dynamic code (such as script elements containing
document.write() calls) can add extra tokens, so the parsing
process actually modifies the input.
#brightonSEO @Jammer_Volts
Render Testing
Check for traps
#brightonSEO @Jammer_Volts
Test local/firewalled with tunneling
SimpleHTTPServer (http.server in Python 3) is a Simple HTTP
request handler for QA
#brightonSEO @Jammer_Volts
Test local or firewalled with tunneling
ngrok exposes that page on a publicly accessible URL
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
#brightonSEO @Jammer_Volts
Make Allies
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
DON'T BE AFRAID
TO LEARN IN PUBLIC
|___________|
(__/) ||
(•ㅅ•) ||
/   づ #brightonSEO @Jammer_Volts
Resources
● Get started with Chrome Developer
Tools
● HTML/HTML5 Parsing Standards
● Debugging your pages
● SimpleHTTPServer
● Ngrok
● Fix Search-related JavaScript
problems
● TurboFan overview
● Liftover overview
● Tame the Bots Portals
● Blink Rendering, life of a pixel
● The Rendering Critical Path
● JavaScript Sites in Search Working Group
#brightonSEO @Jammer_Volts

More Related Content

What's hot

How to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performanceHow to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performanceSimon Lesser
 
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)Kristina Azarenko
 
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptxBrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptxJosephineHaagen
 
Crawl Budget: Everything you Need to Know
Crawl Budget: Everything you Need to KnowCrawl Budget: Everything you Need to Know
Crawl Budget: Everything you Need to KnowSallyR7
 
Improving Crawling and Indexing using Real-Time Log File Insights
Improving Crawling and Indexing using Real-Time Log File InsightsImproving Crawling and Indexing using Real-Time Log File Insights
Improving Crawling and Indexing using Real-Time Log File InsightsSteven van Vessum
 
We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!
We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!
We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!DanielCartland
 
What Makes your SEO Fail (and how to fix it) #BrightonSEO
What Makes your SEO Fail (and how to fix it) #BrightonSEO What Makes your SEO Fail (and how to fix it) #BrightonSEO
What Makes your SEO Fail (and how to fix it) #BrightonSEO Aleyda Solís
 
Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...Rebecca Moss
 
Probabilistic Thinking in SEO - BrightonSEO October 2022
Probabilistic Thinking in SEO - BrightonSEO October 2022Probabilistic Thinking in SEO - BrightonSEO October 2022
Probabilistic Thinking in SEO - BrightonSEO October 2022Andrew Charlton
 
The most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDX
The most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDXThe most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDX
The most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDXAleyda Solís
 
Crawling, indexation & the impact on performance | Brighton SEO
Crawling, indexation & the impact on performance | Brighton SEOCrawling, indexation & the impact on performance | Brighton SEO
Crawling, indexation & the impact on performance | Brighton SEOMartin Sean Fennon
 
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)Gianna Brachetti-Truskawa 🐙
 
The Elusive ROI of Content Marketing (by Tim Soulo)
The Elusive ROI of Content Marketing (by Tim Soulo)The Elusive ROI of Content Marketing (by Tim Soulo)
The Elusive ROI of Content Marketing (by Tim Soulo)Ahrefs
 
How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...
How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...
How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...LazarinaStoyanova
 
Why Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardWhy Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardAhrefs
 
Martin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth SouthgateMartin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth SouthgateMartin McGarry
 
Core Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdf
Core Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdfCore Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdf
Core Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdfSophie Gibson
 
HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO Apri...
HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO  Apri...HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO  Apri...
HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO Apri...Jessica Maloney
 
Swipe left: Why your content is getting ghosted
Swipe left: Why your content is getting ghostedSwipe left: Why your content is getting ghosted
Swipe left: Why your content is getting ghostedEleni Cashell
 

What's hot (20)

How to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performanceHow to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performance
 
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
eCommerce Internal Linking - Into the Spider-Verse (BrightonSEO edition)
 
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptxBrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
BrightonSEO - NLP for SEOs - How to optimise your content for BERT.pptx
 
Crawl Budget: Everything you Need to Know
Crawl Budget: Everything you Need to KnowCrawl Budget: Everything you Need to Know
Crawl Budget: Everything you Need to Know
 
Improving Crawling and Indexing using Real-Time Log File Insights
Improving Crawling and Indexing using Real-Time Log File InsightsImproving Crawling and Indexing using Real-Time Log File Insights
Improving Crawling and Indexing using Real-Time Log File Insights
 
We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!
We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!
We’ve analysed the SEO of over 100 eCom sites - this is what we’ve learned!
 
What Makes your SEO Fail (and how to fix it) #BrightonSEO
What Makes your SEO Fail (and how to fix it) #BrightonSEO What Makes your SEO Fail (and how to fix it) #BrightonSEO
What Makes your SEO Fail (and how to fix it) #BrightonSEO
 
Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...Product, service and category page links (and how to get them) - Rebecca Moss...
Product, service and category page links (and how to get them) - Rebecca Moss...
 
Probabilistic Thinking in SEO - BrightonSEO October 2022
Probabilistic Thinking in SEO - BrightonSEO October 2022Probabilistic Thinking in SEO - BrightonSEO October 2022
Probabilistic Thinking in SEO - BrightonSEO October 2022
 
How to control googlebot
How to control googlebotHow to control googlebot
How to control googlebot
 
The most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDX
The most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDXThe most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDX
The most Damaging SEO Mistakes & Issues in 2021 and How to Avoid Them #EngagePDX
 
Crawling, indexation & the impact on performance | Brighton SEO
Crawling, indexation & the impact on performance | Brighton SEOCrawling, indexation & the impact on performance | Brighton SEO
Crawling, indexation & the impact on performance | Brighton SEO
 
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
TECHNICAL SEO QA - SHINING A LIGHT ON INVISIBLE WORK (BrightonSEO April 2022)
 
The Elusive ROI of Content Marketing (by Tim Soulo)
The Elusive ROI of Content Marketing (by Tim Soulo)The Elusive ROI of Content Marketing (by Tim Soulo)
The Elusive ROI of Content Marketing (by Tim Soulo)
 
How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...
How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...
How to Implement Machine Learning in Your Internal Linking Audit - Lazarina S...
 
Why Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardWhy Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody Hard
 
Martin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth SouthgateMartin McGarry - SEO strategy c/o England manager Gareth Southgate
Martin McGarry - SEO strategy c/o England manager Gareth Southgate
 
Core Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdf
Core Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdfCore Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdf
Core Web Vitals Audit - Sophie Gibson - PDF - BrightonSEO.pdf
 
HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO Apri...
HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO  Apri...HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO  Apri...
HELP! I've Been Hit By An Algorithm Update - Jess Maloney - BrightonSEO Apri...
 
Swipe left: Why your content is getting ghosted
Swipe left: Why your content is getting ghostedSwipe left: Why your content is getting ghosted
Swipe left: Why your content is getting ghosted
 

Similar to How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D style)

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 rankWeLoveSEO
 
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, DevToolsJamie Indigo
 
Javascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicelyJavascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicelyPeter Mead
 
JavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick StoxJavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick Stoxpatrickstox
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018patrickstox
 
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
 
Architecture in Ajax Applications
Architecture in Ajax ApplicationsArchitecture in Ajax Applications
Architecture in Ajax ApplicationsAlois Reitbauer
 
Knowledge of web ui for automation testing
Knowledge  of web ui for automation testingKnowledge  of web ui for automation testing
Knowledge of web ui for automation testingArtem Korchevyi
 
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013Andreas Grabner
 
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...Jamie Indigo
 
How to make React Applications SEO-friendly
How to make React Applications SEO-friendlyHow to make React Applications SEO-friendly
How to make React Applications SEO-friendlyFibonalabs
 
Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?Petra Kis-Herczegh
 
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 Stoxpatrickstox
 
Debugging rendering problems at scale
Debugging rendering problems at scaleDebugging rendering problems at scale
Debugging rendering problems at scaleGiacomo Zecchini
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development PresentationTurnToTech
 
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 Onely
 
Scraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPScraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPPaul Redmond
 
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 Slowdmethvin
 

Similar to How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D style) (20)

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
 
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
 
Javascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicelyJavascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicely
 
JavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick StoxJavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick Stox
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
 
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...
 
Architecture in Ajax Applications
Architecture in Ajax ApplicationsArchitecture in Ajax Applications
Architecture in Ajax Applications
 
Knowledge of web ui for automation testing
Knowledge  of web ui for automation testingKnowledge  of web ui for automation testing
Knowledge of web ui for automation testing
 
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
 
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
 
How to make React Applications SEO-friendly
How to make React Applications SEO-friendlyHow to make React Applications SEO-friendly
How to make React Applications SEO-friendly
 
Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?
 
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
 
Debugging rendering problems at scale
Debugging rendering problems at scaleDebugging rendering problems at scale
Debugging rendering problems at scale
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
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
 
Scraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPScraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHP
 
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
 
Angular SEO
Angular SEO Angular SEO
Angular SEO
 

More from Jamie Indigo

Rendering strategies: Measuring the devil's details in core web vitals - Jam...
Rendering strategies:  Measuring the devil's details in core web vitals - Jam...Rendering strategies:  Measuring the devil's details in core web vitals - Jam...
Rendering strategies: Measuring the devil's details in core web vitals - Jam...Jamie Indigo
 
Navigating the critical rendering path - Jamie Alberico - VirtuaCon
Navigating the critical rendering path -  Jamie Alberico - VirtuaConNavigating the critical rendering path -  Jamie Alberico - VirtuaCon
Navigating the critical rendering path - Jamie Alberico - VirtuaConJamie Indigo
 
Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...
Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...
Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...Jamie Indigo
 
Tech SEO + Site Migrations - SMX Munich
Tech SEO + Site Migrations - SMX MunichTech SEO + Site Migrations - SMX Munich
Tech SEO + Site Migrations - SMX MunichJamie Indigo
 
Technical Foundations of Successful Internationalization - SMX Munich
Technical Foundations of Successful Internationalization - SMX MunichTechnical Foundations of Successful Internationalization - SMX Munich
Technical Foundations of Successful Internationalization - SMX MunichJamie Indigo
 
Render v Rank SEO for JavaScript - SEMPDX EngagePDX 2019
Render v Rank  SEO for JavaScript - SEMPDX EngagePDX 2019Render v Rank  SEO for JavaScript - SEMPDX EngagePDX 2019
Render v Rank SEO for JavaScript - SEMPDX EngagePDX 2019Jamie Indigo
 
Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018
Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018
Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018Jamie Indigo
 
Creating Effective Ecommerce Information Architecture #SearchLove 2018
Creating Effective Ecommerce Information Architecture #SearchLove 2018Creating Effective Ecommerce Information Architecture #SearchLove 2018
Creating Effective Ecommerce Information Architecture #SearchLove 2018Jamie Indigo
 
Site structure deep crawl webinar
Site structure  deep crawl webinarSite structure  deep crawl webinar
Site structure deep crawl webinarJamie Indigo
 
Optimizing for Mobile First Index
Optimizing for Mobile First IndexOptimizing for Mobile First Index
Optimizing for Mobile First IndexJamie Indigo
 
SEO for Angular - BrightonSEO 2018
SEO for Angular - BrightonSEO 2018SEO for Angular - BrightonSEO 2018
SEO for Angular - BrightonSEO 2018Jamie Indigo
 

More from Jamie Indigo (11)

Rendering strategies: Measuring the devil's details in core web vitals - Jam...
Rendering strategies:  Measuring the devil's details in core web vitals - Jam...Rendering strategies:  Measuring the devil's details in core web vitals - Jam...
Rendering strategies: Measuring the devil's details in core web vitals - Jam...
 
Navigating the critical rendering path - Jamie Alberico - VirtuaCon
Navigating the critical rendering path -  Jamie Alberico - VirtuaConNavigating the critical rendering path -  Jamie Alberico - VirtuaCon
Navigating the critical rendering path - Jamie Alberico - VirtuaCon
 
Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...
Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...
Crafting Expertise, Authority and Trust with Entity-Based Content Strategy - ...
 
Tech SEO + Site Migrations - SMX Munich
Tech SEO + Site Migrations - SMX MunichTech SEO + Site Migrations - SMX Munich
Tech SEO + Site Migrations - SMX Munich
 
Technical Foundations of Successful Internationalization - SMX Munich
Technical Foundations of Successful Internationalization - SMX MunichTechnical Foundations of Successful Internationalization - SMX Munich
Technical Foundations of Successful Internationalization - SMX Munich
 
Render v Rank SEO for JavaScript - SEMPDX EngagePDX 2019
Render v Rank  SEO for JavaScript - SEMPDX EngagePDX 2019Render v Rank  SEO for JavaScript - SEMPDX EngagePDX 2019
Render v Rank SEO for JavaScript - SEMPDX EngagePDX 2019
 
Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018
Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018
Optimizing with Server Logs | Jamie Alberico @ #TechSEO Boost 2018
 
Creating Effective Ecommerce Information Architecture #SearchLove 2018
Creating Effective Ecommerce Information Architecture #SearchLove 2018Creating Effective Ecommerce Information Architecture #SearchLove 2018
Creating Effective Ecommerce Information Architecture #SearchLove 2018
 
Site structure deep crawl webinar
Site structure  deep crawl webinarSite structure  deep crawl webinar
Site structure deep crawl webinar
 
Optimizing for Mobile First Index
Optimizing for Mobile First IndexOptimizing for Mobile First Index
Optimizing for Mobile First Index
 
SEO for Angular - BrightonSEO 2018
SEO for Angular - BrightonSEO 2018SEO for Angular - BrightonSEO 2018
SEO for Angular - BrightonSEO 2018
 

Recently uploaded

AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistKHM Anwar
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...sonatiwari757
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 

Recently uploaded (20)

AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization Specialist
 
Call Girls In Noida 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Noida 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In Noida 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Noida 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 

How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D style)

  • 1. Think like a bot, Rank like a boss: How Googlebot renders Jamie Alberico // Not a Robot SLIDESHARE.NET/JAMIEALBERICO @JAMMER_VOLTS
  • 2. Jamie Alberico My name means Usurper Elf King. I’m a Technical SEO, Search Advocate, & Wood Elf Druid. Oh yeah, and I’m Not a Robot. #brightonSEO @Jammer_Volts
  • 3. Masters of unlocking magic in everyday objects, Technical SEOs are extremely resourceful. They see magic as a complex system waiting to be decoded and controlled. Proficiencies (recommended) Chrome Developer Tools, Lighthouse, Google Search Console, webcrawlers Technical SEOs Class Details #brightonSEO @Jammer_Volts
  • 4. Our Technical SEO Quest To protect site visibility by delivering our content to Google’s index. To do this, we must pass through a powerful construct. #brightonSEO @Jammer_Volts
  • 5. When Googlebot retrieves your pages, Googlebot runs your code, and assess your content to understand the layout or structure of your site. What is Rendering? #brightonSEO @Jammer_Volts
  • 6. All information Google collects during the rendering process is then used to rank the quality and value of your site content against other sites and what people are searching for with Google Search. How Google Search Works, Search Console Help Center Rendering’s role in Rank #brightonSEO @Jammer_Volts
  • 7. Initial HTML (1st wave of indexing) Rendered HTML (2nd Wave of indexing) Rendering #brightonSEO @Jammer_Volts
  • 8. If Google cannot render the pages on your site, it becomes more difficult to understand your web content because we are missing key visual layout information about your web pages. As a result, the visibility of your site content in Google Search can suffer. Rendering Risks #brightonSEO @Jammer_Volts
  • 9. Until 2018, we thought our quest looked like this Crawl Index Rank #brightonSEO @Jammer_Volts
  • 10. Now, we know that Rendering is part of the process and that Google has two waves of indexing. Crawl Index Render Rank First Wave SecondWave #brightonSEO @Jammer_Volts
  • 11. If Google can’t render content, we fail our quest Crawl Index #brightonSEO @Jammer_Volts
  • 12. Google’s Web Rendering Service (WRS) Insight Check #brightonSEO @Jammer_Volts
  • 13. Google Web Rendering Service Large Construct (legendary), lawful neutral Languages HTML, CSS, JavaScript, Images Skills Perception +12, Dexterity +10 Senses Robots.txt, Robots directives #brightonSEO @Jammer_Volts
  • 14. Takes action using threads Each requests to made by a thread. A thread is a single connection. It sequentially moves through each action, one at a time, until it’s task is complete. Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 15. SEOs call this Crawl Budget “Simply put, [crawl budget] represents the number of simultaneous parallel connections Googlebot may use to crawl the site, as well as the time it has to wait between the fetches.” What Crawl Budget Means for Googlebot, Google Webmaster Blog Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 16. Stateless ● Does not retain state across page loads ● Local Storage and Session Storage data are cleared across pages loads ● HTTP Cookies are cleared across page loads Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 17. Obedient Obeys HTML/HTML5 protocol Literal “Googlebot, go to the apothecary and buy a healing potion. If they have shields, buy 2. “ Googlebot comes back with 2 potions. Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 18. Politeness is priority 0 Crawling is its main priority while making sure it doesn't degrade the experience of users visiting the site. We call this the "crawl rate limit," which limits the maximum fetching rate for a given site. What Crawl Budget Means for Googlebot, Google Webmaster Central Blog Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 19. Multi-thread Googlebot can execute more than one request at a time if demand and server stability allows. Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 20. Request URI Googlebot send a request for content at a unique resource instance (URI). Googlebot can discover a URL via link or submission Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 21. Read HTTP response and headers Q. Does the thing I asked for exist? A. HTTP Status Codes Q. Anything I should know before looking at this? A. Cache-Control, and Directives Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 22. Parse Download the response from server Features & Traits Equipment Actions #brightonSEO @Jammer_Volts
  • 23. Identify Resources Googlebot identifies resources needed to complete the request. It feeds identified resources into the crawling queue. Features & Traits Actions Equipment Use Network tab to see how many resources a page calls #brightonSEO @Jammer_Volts
  • 24. Cache If the requested website implements a cache, a copy of the data is made or requested Features & Traits Actions Equipment #brightonSEO @Jammer_Volts
  • 25. Actions WRS, web rendering service Features & Traits Equipment Googlebot queues pages for both crawling and rendering. It is not immediately obvious when a page is waiting for crawling and when it is waiting for rendering. WRS is the name used to represent the collective elements involved in Google’s rendering service. Many details are not publically available. #brightonSEO @Jammer_Volts
  • 26. Web Rendering Service (WRS) Blink Browser Engine V8 Rendering Engine Ignition TurboFan Liftoff Display backend GoogleMagic Chromium Headless Browser #brightonSEO @Jammer_Volts
  • 27. Actions WRS process Features & Traits Equipment 1. A URL is pulled from the crawl queue 2. Googlebot requests the URL and downloads the initial HTML 3. The Initial HTML is passed to the processing stage which extracts links 4. Links go back on the crawl queue 5. Once resources are crawled, the page queues for rendering #brightonSEO @Jammer_Volts
  • 28. Actions WRS process Features & Traits Equipment 6. When resources become available, the request moves from the render queue to the renderer 7. Renderer passes the rendered HTML back to processing 8. Processing indexes the content 9. Extracts links from the rendered HTML to put them into the crawl queue #brightonSEO @Jammer_Volts
  • 29. Chromium, headless browser EquipmentActionsFeatures & Traits ● Headless means that there is no GUI (visual representation) ● Used to load web pages and extract metadata ● reading from and writing to the DOM ● observing network events ● capturing screenshots ● inspecting worker scripts ● recording Chrome Traces #brightonSEO @Jammer_Volts
  • 30. Blink, browser engine ● Allows for querying and manipulating the rendering engine settings (ex: mobile vs. desktop) ● Blink loves service workers. Blink may create multiple worker threads to run Web Workers, ServiceWorker and Worklets EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 31. Blink, browser engine Blink is responsible for 2 major elements: Memory heap: stores the result of script execution (Memory Heap results are added to DOM.) Call stack: queue of sequential next steps (Each entry in the call stack is called a Stack Frame.) EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 32. Blink, browser engine Local storage and Session storage are key-value pairs that can store any JS objects and functions in the browser These keys are a weak point in your rendering offense against a stateless Googlebot. EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 33. V8, JavaScript engine JavaScript is a single-threaded process and each entry or execution step is a stack frame. Googlebot can opt run simultaneous parallel connections. EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 34. V8, JavaScript engine Each thread will runs through a process of: 1. Loading 2. Parsing 3. Compiling 4. Executing EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 35. V8, JavaScript engine ● open-source JavaScript engine and WebAssembly engine ● developed by Google & The Chromium Project ● Use in Node.js, Google Chrome, and Chromium web browsers EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 36. V8’s components ● Ignition, a fast low-level register-based JavaScript interpreter written using the backend of TurboFan ● TurboFan, one of V8’s optimizing compilers ● Liftoff, a new baseline compiler for WebAssembly EquipmentActionsFeatures & Traits #brightonSEO @Jammer_Volts
  • 37. Optimized Rendering Roll with Advantage #brightonSEO @Jammer_Volts
  • 38. Parse content critical to user intent in initial HTML #brightonSEO @Jammer_Volts
  • 39. Crawl Index Render HTML DOM 1st wave of indexing 2nd wave of indexing #brightonSEO @Jammer_Volts
  • 40. Critical = why the user came #brightonSEO @Jammer_Volts
  • 41. Define it for your site, by template #brightonSEO @Jammer_Volts
  • 42. Use clean, consistent signals Googlebot won’t see past a noindex directive in initial HTML to see an index placed in DOM. Duplicative content without a canonical in initial HTML is crawl waste until rendering. Inconsistent title tags and descriptions can result from overwriting the initial HTML with rendered HTML. #brightonSEO @Jammer_Volts
  • 43. Focus rendering efforts with nofollow If a resource is not valuable to the construction of the page, add a nofollow directive to resources that are not necessary or beneficial to page construction. #brightonSEO @Jammer_Volts
  • 44. Mobile vs Desktop Rendering Layout matters for both. If you want to rank for position zero, remember that the content must be exposed on initial mobile load. #brightonSEO @Jammer_Volts
  • 45. Choose the rendering strategy that’s right for your business and stack. You don’t have to be 100% client-side, 100% server-side, or 100% both (dynamic). Load what matters when it matters. #brightonSEO @Jammer_Volts
  • 51. More Pages Resources require more rendering resources Each resource must be fetched independently before the page can be accurately rendered. This is a major part of the issue with client-side rendering. More client-side calls mean more blindspots for you. #brightonSEO @Jammer_Volts
  • 52. Excessive scripts runs the risk of hitting thread/rest thresholds. This is most often observed as Other error . #brightonSEO @Jammer_Volts
  • 53. Call Stacks have a maximum size While the Call Stack has functions to execute, the browser can’t actually do anything else — it’s getting blocked. #brightonSEO @Jammer_Volts
  • 54. Session and Local web storage limits 5MB per object, and 50MB per system If your CSR resources are too large, you risk hitting the upper limit. Elements in queue once the limit is reached may not be considered by Googlebot. #brightonSEO @Jammer_Volts
  • 55. Load scripts & images without blocking Asynchronous calls are supported with async attributes <rel=”myscript.js” async defer> Lazy load images in Chrome with native attributes <img src=”the-traveler.jpg” loading=”lazy”> #brightonSEO @Jammer_Volts
  • 56. Broken Structured Data Markup #brightonSEO @Jammer_Volts
  • 57. Don’t trust document.write( ) Dynamic code (such as script elements containing document.write() calls) can add extra tokens, so the parsing process actually modifies the input. #brightonSEO @Jammer_Volts
  • 58. Render Testing Check for traps #brightonSEO @Jammer_Volts
  • 59. Test local/firewalled with tunneling SimpleHTTPServer (http.server in Python 3) is a Simple HTTP request handler for QA #brightonSEO @Jammer_Volts
  • 60. Test local or firewalled with tunneling ngrok exposes that page on a publicly accessible URL #brightonSEO @Jammer_Volts
  • 65. | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| DON'T BE AFRAID TO LEARN IN PUBLIC |___________| (__/) || (•ㅅ•) || /   づ #brightonSEO @Jammer_Volts
  • 66. Resources ● Get started with Chrome Developer Tools ● HTML/HTML5 Parsing Standards ● Debugging your pages ● SimpleHTTPServer ● Ngrok ● Fix Search-related JavaScript problems ● TurboFan overview ● Liftover overview ● Tame the Bots Portals ● Blink Rendering, life of a pixel ● The Rendering Critical Path ● JavaScript Sites in Search Working Group #brightonSEO @Jammer_Volts