SlideShare a Scribd company logo
Challenges of building a search
engine like web rendering service
Giacomo Zecchini | Verve Search
@giacomozecchini
Hi, I’m Giacomo
Technical Director at
Technical background and
previous experiences in
development
Love: understanding how things work and Web
Performance
@giacomozecchini
@giacomozecchini
As always happens in all the
worst stories, everything started
with a website migration.
One of the largest brands in the
UK, with millions of pounds on the
line.
@giacomozecchini
The client was migrating platform,
moving from a Server Side
rendering website to a Client Side
Rendering one.
@giacomozecchini
..and of course SSR was going to
be put in place.
@giacomozecchini
But.. two days before the migration
the client told us “SSR is not
working”.
@giacomozecchini
We were already at code freeze.
@giacomozecchini
We implemented a short term
solution* static rendering the site
and using the user-agent to serve
the right content.
*A sort of customized Rendertron script.
@giacomozecchini
After the migration we helped the
client to move to a medium-long
term solution (Prerender.io).
@giacomozecchini
Implementation is always harder
than it seems.
@giacomozecchini
My curiosity made me start to
research web rendering services.
@giacomozecchini
* Icons made by Freepik from www.flaticon.com
In the past the html was the most important thing to
download in order to access the content of a page
@giacomozecchini
Today, JavaScript is a big part of the web and
makes everything more complex
* Icons made by Freepik from www.flaticon.com @giacomozecchini
In the past we had a Crawling-Indexing process
Crawler Processing Index
URLs
Crawl
Queue
URL HTML
@giacomozecchini
Now, we’ve moved to a
crawling-rendering-indexing process
https://developers.google.com/search/docs/guides/javascript-seo-basics
Crawler Processing Index
Renderer
URLs
Crawl
Queue
URL HTML
Render Queue
@giacomozecchini
Google calls the rendering element WRS
Crawler Processing Index
Renderer
URLs
Crawl
Queue
URL HTML
Render Queue
WRS
@giacomozecchini
Martin Splitt’s TechSEO Boost 2019 talk
https://www.youtube.com/watch?v=Qxd_d9m9vzo
In his presentation, Martin
covered a lot of interesting
implementation details.
If you’re interested in
Google’s WRS, this is the
presentation to watch.
@giacomozecchini
These are three of the most important thing you
can get from a Web Rendering Service
DOM Tree
Render Tree +
Layout
Rendered
HTML
@giacomozecchini
DOM Tree & Render Tree
https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-tree-construction @giacomozecchini
Layout information
https://youtu.be/WjMSfTK1_SY?t=239
The layout information
helps to understand where
elements are positioned on
a page, their dimensions,
and their importance.
@giacomozecchini
The layout information is useful when it comes to:
- Understand the semantics of a page
- Check if a page is mobile friendly
- Find intrusive interstitials
- Understand above the fold content
https://youtu.be/WjMSfTK1_SY?t=239 @giacomozecchini
Crawler
Renderer
Render
queue
Fetch
Server
Cache
Server
Chrome
instances
Robots.txt
Server
DNS
Server
My toy web rendering service implementation
Fetchers
@giacomozecchini
Crawler
Renderer
Render
queue
Fetch
Server
Cache
Server
Chrome
instances
Robots.txt
Server
DNS
Server
It uses a first in first out queue
Fetchers
@giacomozecchini
Crawler
Renderer
Render
queue
Fetch
Server
Cache
Server
Chrome
instances
Robots.txt
Server
DNS
Server
...utilises Chrome DevTools Protocol
Fetchers
https://chromedevtools.github.io/devtools-protocol/ @giacomozecchini
Crawler
Renderer
Render
queue
Fetch
Server
Cache
Server
Chrome
instances
Robots.txt
Server
DNS
Server
I’m currently working on the fetch server
Fetchers
@giacomozecchini
Crawler
Renderer
Render
queue
Fetch
Server
Cache
Server
Chrome
instances
Robots.txt
Server
DNS
Server
It uses the cache when possible
Fetchers
@giacomozecchini
Crawler
Renderer
Render
queue
Fetch
Server
Cache
Server
Chrome
instances
Robots.txt
Server
DNS
Server
If the URL is not cached, the crawler fetches it
Fetchers
@giacomozecchini
The real problems start when you
have to make choices about the
actual rendering of pages!
@giacomozecchini
What about the viewport? Do you
want to limit the number of
fetches? Are you going to render a
page multiple times?
@giacomozecchini
Developing software is a matter
of choices and context.
@giacomozecchini
The same group of people in a
different context may end up
developing the same project in a
totally different way.
@giacomozecchini
You can’t replicate Google’s WRS
without having the same data they
have.
@giacomozecchini
This is where I began to realise
the case to build your own rather
than relying on tools.
@giacomozecchini
You can’t replicate Google’s WRS
but you can learn from it.
@giacomozecchini
Understanding Google's WRS behaviour
@giacomozecchini
Understanding Google's WRS behaviour
@giacomozecchini
If you need JavaScript console message data you
can use the Mobile Friendly test or Search Console
Live Test but be careful!
@giacomozecchini
Mobile-Friendly Test, Search
Console Live Test, AMP Test, and
Rich Results Test are using the
WRS infrastructure, but bypassing
cache, using shorter timeouts,
and few other differences.
@giacomozecchini
Hic sunt dracones / Here be Dragons
What follows is based on my own tests and
assumptions, results may be false positives.
Google can change implementation details at any
time without notice, explanation, or justification.
@giacomozecchini
How we’ll approach the edge cases
1. Define the edge case
2. Understand Google's WRS support and
behaviour (personal assumption)
3. Check for tools support and behaviour
4. Propose a solution
@giacomozecchini
Some of the tested tools
I did multiple tests for each edge case. @giacomozecchini
This is not an evaluation of those
tools, but just a comparison
between their results and those of
Google’s WRS.
@giacomozecchini
Edge Case #1
HTTPS/HTTP mixed content
@giacomozecchini
Mixed content occurs when initial
HTML is loaded over a secure
HTTPS connection, but other
resources are loaded over an
insecure HTTP connection.
https://youtu.be/WjMSfTK1_SY?t=239 @giacomozecchini
Website:
https://www.example.com
CSS:
http://www.example.com/style.css
@giacomozecchini
Chrome will automatically upgrade mixed content
from HTTP to HTTPS. If the fetch fails that asset
won’t be loaded.
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
* this was not the case until recently
@giacomozecchini
Google’s WRS seems to behave like Chrome
Tools support
10% of tests showed a
different result
@giacomozecchini
Solution
When visiting an HTTPS website, upgrade the
URLs of assets from HTTP to HTTPS.
Using Chromium-based browsers you should
already have the right solution in place.
@giacomozecchini
Edge Case #2
Infinite scrolling / Lazy loading
@giacomozecchini
@giacomozecchini
SCROLL
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
VIEWPORT
Google starts the rendering
using a fixed viewport:
Mobile: 412 X 732
Desktop: 1024 x 1024
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
VIEWPORT
PAGE
HEIGHT
Then calculate the new viewport:
Viewport = Page Height + pixels
The amount of additional pixels
depends on the page, it could be
thousands of pixels
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
VIEWPORT
PAGE
HEIGHT
A bigger viewport
triggers Infinite
loading or lazy loading
events.
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
10,000,000 px
This seems to be the maximum viewport height
@giacomozecchini
Tools support
95% of tests showed a
different result
* for very tall pages @giacomozecchini
Solution
Start with a fixed viewport
@giacomozecchini
Solution
Wait for an event:
onload
DOMContentLoaded
If you’re using puppeteer:
networkidle0
networkidle2
@giacomozecchini
Solution
VIEWPORT
PAGE
HEIGHT
Check for the page height
and compare it to the initial
viewport.
https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-getLayoutMetrics @giacomozecchini
Solution
VIEWPORT
PAGE
HEIGHT
If the viewport is shorter
than the page
Viewport = Page Height + pixels
@giacomozecchini
Solution
The simplest solution is then
to wait for X seconds and
stop rendering or check
viewport and Page Height
again.
VIEWPORT
PAGE
HEIGHT
* for more complex solutions you can look at ongoing requests or an
event-based approach. @giacomozecchini
Edge Case #3
Content-visibility
@giacomozecchini
https://web.dev/content-visibility/
content-visibility is a
CSS property that enables
the browser to skip an
element's rendering.
@giacomozecchini
https://web.dev/content-visibility/
content-visibility is used together
with contain-intrinsic-size,
a CSS property allow you to
specify natural size of an
element if the element is
affected by size containment.
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
VIEWPORT
Google starts the rendering
using a fixed viewport:
Mobile: 412 X 732
Desktop: 1024 x 1024
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
VIEWPORT
PAGE
HEIGHT
Viewport = Page Height + pixels
When the browser starts the
rendering the Page Height is
calculated using the
contain-intrinsic-size
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
VIEWPORT
PAGE
HEIGHT
A bigger viewport
makes the browser
rendering the element
affected by size
containment.
@giacomozecchini
Tools support
97% of tests showed a
different result
* for very tall pages @giacomozecchini
Solution
Start with a fixed viewport
@giacomozecchini
Solution
Wait for an event:
onload
DOMContentLoaded
If you’re using puppeteer:
networkidle0
networkidle2
@giacomozecchini
Solution
VIEWPORT
PAGE
HEIGHT
Check for the page height
and compare that to the
initial viewport.
https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-getLayoutMetrics @giacomozecchini
Solution
VIEWPORT
PAGE
HEIGHT
If the viewport is shorter
than the page
Viewport = Page Height + Pixels
@giacomozecchini
Solution
The simplest solution is then
to wait for X seconds and
stop rendering or check
viewport and Page Height
again.
VIEWPORT
PAGE
HEIGHT
@giacomozecchini
Edge Case #4
Shadow DOM
@giacomozecchini
Shadow DOM
https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM @giacomozecchini
Google is able to render
and use Shadow DOM content.
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow. @giacomozecchini
Tools support
?
93% of tests showed a
different result
@giacomozecchini
Solution
Using the document.documentElement.outerHTML
returns a DOMString containing an HTML
serialization of the element and its descendants
but not the Shadow DOM.
*Puppeter’s Page.content() returns the outerHTML
@giacomozecchini
Solution
The solution is to get
the DOM tree, traverse it
and serialize it into HTML.
https://www.w3schools.com/js/js_htmldom_navigation.asp @giacomozecchini
Solution
Document
HTML
BODY
DIV
P
P
Text
Text
HEAD
@giacomozecchini
Solution
dom2html library:
https://github.com/GoogleChromeLabs/dom2html
Chrome DevTools Protocol:
DOM.getDocument
DOMSnapshot.getSnapshot
DOMSnapshot.captureSnapshot
https://chromedevtools.github.io/devtools-protocol/
* If interested in Shadow DOM, have a look at: https://web.dev/declarative-shadow-dom/
@giacomozecchini
Edge Case #5
Iframe
@giacomozecchini
IFRAME
Page A
Page B
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
Google is able to render
an Iframe inlining the <body>
content in a <div>.
@giacomozecchini
N.B. These are just personal assumptions based on tests.
Tests could be wrong and implementation details may change tomorrow.
If the page included through the
Iframe has a noindex, the content
is not included in the page.
@giacomozecchini
Iframe - Tools support
?
95% of tests showed a
different result
@giacomozecchini
Solution
Get the DOM tree, traverse it, and serialize it into
HTML.
N.B. When traversing the DOM you only need the
content of <body>, remove other HTML elements
and tags such as the <head>. Remember to check
for the noindex.
@giacomozecchini
Solution
dom2html library:
https://github.com/GoogleChromeLabs/dom2html
Chrome DevTools Protocol:
DOM.getDocument
DOMSnapshot.getSnapshot
DOMSnapshot.captureSnapshot
https://chromedevtools.github.io/devtools-protocol/ @giacomozecchini
Are those the only problems that
exist?
@giacomozecchini
Web rendering services
What we can learn from this?
@giacomozecchini
Sometimes you should reinvent
the wheel.
It’s fun and you can learn a lot
from that!
@giacomozecchini
When you change the way you look
at things, the things you look at
change.
Understanding these limitations
should change, in those edge cases,
the advice that you provide.
@giacomozecchini
Don’t use tools blindly!
Tools are great and save us a huge
amount of time in all our tasks. The
majority of pages on the web are
not affected by those edge cases.
@giacomozecchini
If your website uses or is affected
by one of the mentioned edge
cases, you can open a support
ticket to check with your tool
provider if they are already covering
that.
@giacomozecchini
Thank You!
Got questions? DM on Twitter are open @giacomozecchini

More Related Content

What's hot

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
 
Corrie Jones BrightonSEO deck
Corrie Jones BrightonSEO deckCorrie Jones BrightonSEO deck
Corrie Jones BrightonSEO deck
Corrie Jones
 
How to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google DiscoverHow to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google Discover
Felipe Bazon
 
Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...
Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...
Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...
Ahrefs
 
BrightonSEO April 2023 Similar AI: Automation recipes for SEO success
BrightonSEO April 2023 Similar AI: Automation recipes for SEO successBrightonSEO April 2023 Similar AI: Automation recipes for SEO success
BrightonSEO April 2023 Similar AI: Automation recipes for SEO success
Dylan Fuler
 
Extreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture EditionExtreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture Edition
Kavi Kardos
 
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 🐙
 
Canonicalization for SEO BrightonSEO April 2023 Patrick Stox
Canonicalization for SEO BrightonSEO April 2023 Patrick StoxCanonicalization for SEO BrightonSEO April 2023 Patrick Stox
Canonicalization for SEO BrightonSEO April 2023 Patrick Stox
Ahrefs
 
How to rethink the traditional SEO workspace to promote team wellbeing and pr...
How to rethink the traditional SEO workspace to promote team wellbeing and pr...How to rethink the traditional SEO workspace to promote team wellbeing and pr...
How to rethink the traditional SEO workspace to promote team wellbeing and pr...
Varn
 
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
Martin McGarry
 
Brighton SEO 2023 - ML Lessons For Total Search.pdf
Brighton SEO 2023 - ML Lessons For Total Search.pdfBrighton SEO 2023 - ML Lessons For Total Search.pdf
Brighton SEO 2023 - ML Lessons For Total Search.pdf
MaxFlajsner1
 
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
Sarah Presch
 
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
Levi Williams-Clucas
 
BrightonSEO - Apr 2022 - No excuses for doing UX
BrightonSEO - Apr 2022 - No excuses for doing UXBrightonSEO - Apr 2022 - No excuses for doing UX
BrightonSEO - Apr 2022 - No excuses for doing UX
Oban International
 
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
 
How to convince even the pickiest editors to take SEO more seriously :: brigh...
How to convince even the pickiest editors to take SEO more seriously :: brigh...How to convince even the pickiest editors to take SEO more seriously :: brigh...
How to convince even the pickiest editors to take SEO more seriously :: brigh...
Ian Helms
 
Data-driven SEO & content strategy to reduce your customer acquisition costs
Data-driven SEO & content strategy to reduce your customer acquisition costsData-driven SEO & content strategy to reduce your customer acquisition costs
Data-driven SEO & content strategy to reduce your customer acquisition costs
adlift
 
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
 
Freddy Krueger's Guide to Scary Good Reporting
Freddy Krueger's Guide to Scary Good ReportingFreddy Krueger's Guide to Scary Good Reporting
Freddy Krueger's Guide to Scary Good Reporting
Greg Gifford
 
GretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari - The redemption of content automation
GretaMunari - The redemption of content automation
GretaMunari1
 

What's hot (20)

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...
 
Corrie Jones BrightonSEO deck
Corrie Jones BrightonSEO deckCorrie Jones BrightonSEO deck
Corrie Jones BrightonSEO deck
 
How to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google DiscoverHow to Use Search Intent to Dominate Google Discover
How to Use Search Intent to Dominate Google Discover
 
Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...
Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...
Machine Learning use cases for Technical SEO Automation Brighton SEO Patrick ...
 
BrightonSEO April 2023 Similar AI: Automation recipes for SEO success
BrightonSEO April 2023 Similar AI: Automation recipes for SEO successBrightonSEO April 2023 Similar AI: Automation recipes for SEO success
BrightonSEO April 2023 Similar AI: Automation recipes for SEO success
 
Extreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture EditionExtreme Makeover: Site Architecture Edition
Extreme Makeover: Site Architecture Edition
 
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)
 
Canonicalization for SEO BrightonSEO April 2023 Patrick Stox
Canonicalization for SEO BrightonSEO April 2023 Patrick StoxCanonicalization for SEO BrightonSEO April 2023 Patrick Stox
Canonicalization for SEO BrightonSEO April 2023 Patrick Stox
 
How to rethink the traditional SEO workspace to promote team wellbeing and pr...
How to rethink the traditional SEO workspace to promote team wellbeing and pr...How to rethink the traditional SEO workspace to promote team wellbeing and pr...
How to rethink the traditional SEO workspace to promote team wellbeing and pr...
 
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
 
Brighton SEO 2023 - ML Lessons For Total Search.pdf
Brighton SEO 2023 - ML Lessons For Total Search.pdfBrighton SEO 2023 - ML Lessons For Total Search.pdf
Brighton SEO 2023 - ML Lessons For Total Search.pdf
 
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
brightonSEO April 2023 - Sarah Presch - The Psychology Behind Inclusive iSEO ...
 
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
 
BrightonSEO - Apr 2022 - No excuses for doing UX
BrightonSEO - Apr 2022 - No excuses for doing UXBrightonSEO - Apr 2022 - No excuses for doing UX
BrightonSEO - Apr 2022 - No excuses for doing UX
 
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...
 
How to convince even the pickiest editors to take SEO more seriously :: brigh...
How to convince even the pickiest editors to take SEO more seriously :: brigh...How to convince even the pickiest editors to take SEO more seriously :: brigh...
How to convince even the pickiest editors to take SEO more seriously :: brigh...
 
Data-driven SEO & content strategy to reduce your customer acquisition costs
Data-driven SEO & content strategy to reduce your customer acquisition costsData-driven SEO & content strategy to reduce your customer acquisition costs
Data-driven SEO & content strategy to reduce your customer acquisition costs
 
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)
 
Freddy Krueger's Guide to Scary Good Reporting
Freddy Krueger's Guide to Scary Good ReportingFreddy Krueger's Guide to Scary Good Reporting
Freddy Krueger's Guide to Scary Good Reporting
 
GretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari - The redemption of content automation
GretaMunari - The redemption of content automation
 

Similar to Challenges of building a search engine like web rendering service

Validating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data IntegrityValidating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data Integrity
Giacomo Zecchini
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testing
Roman Ananev
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
Sara Moccand-Sayegh
 
Page Speed Insights: The Ballad of Improving Performance
Page Speed Insights: The Ballad of Improving PerformancePage Speed Insights: The Ballad of Improving Performance
Page Speed Insights: The Ballad of Improving Performance
James McNulty
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
Udi Bauman
 
Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.
Rachel Anderson
 
Are you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevToolsAre you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevTools
Jamie Indigo
 
Web Performance & Search Engines - A look beyond rankings
Web Performance & Search Engines - A look beyond rankingsWeb Performance & Search Engines - A look beyond rankings
Web Performance & Search Engines - A look beyond rankings
Giacomo Zecchini
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Dan Taylor
 
Http/2 - What's it all about?
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?Andy Davies
 
Preconnect, prefetch, prerender...
Preconnect, prefetch, prerender...Preconnect, prefetch, prerender...
Preconnect, prefetch, prerender...
MilanAryal
 
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
Amir Zmora
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
Patrick Meenan
 
Focus sur les PWA par Loic de Saint-Andrieu de Google
Focus sur les PWA par Loic de Saint-Andrieu de GoogleFocus sur les PWA par Loic de Saint-Andrieu de Google
Focus sur les PWA par Loic de Saint-Andrieu de Google
Thiga
 
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
Jamie Indigo
 
DEF CON 27 - BEN SADEGHIPOUR - owning the clout through ssrf and pdf generators
DEF CON 27 - BEN SADEGHIPOUR  - owning the clout through ssrf and pdf generatorsDEF CON 27 - BEN SADEGHIPOUR  - owning the clout through ssrf and pdf generators
DEF CON 27 - BEN SADEGHIPOUR - owning the clout through ssrf and pdf generators
Felipe Prado
 
Debugging rendering problems at scale
Debugging rendering problems at scaleDebugging rendering problems at scale
Debugging rendering problems at scale
Giacomo Zecchini
 
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Bartek Igielski
 
DevChatt: The Wonderful World Of Html5
DevChatt: The Wonderful World Of Html5DevChatt: The Wonderful World Of Html5
DevChatt: The Wonderful World Of Html5Cameron Kilgore
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflow
WordPress
 

Similar to Challenges of building a search engine like web rendering service (20)

Validating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data IntegrityValidating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data Integrity
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testing
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
 
Page Speed Insights: The Ballad of Improving Performance
Page Speed Insights: The Ballad of Improving PerformancePage Speed Insights: The Ballad of Improving Performance
Page Speed Insights: The Ballad of Improving Performance
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
 
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
 
Web Performance & Search Engines - A look beyond rankings
Web Performance & Search Engines - A look beyond rankingsWeb Performance & Search Engines - A look beyond rankings
Web Performance & Search Engines - A look beyond rankings
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
 
Http/2 - What's it all about?
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?
 
Preconnect, prefetch, prerender...
Preconnect, prefetch, prerender...Preconnect, prefetch, prerender...
Preconnect, prefetch, prerender...
 
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
 
Focus sur les PWA par Loic de Saint-Andrieu de Google
Focus sur les PWA par Loic de Saint-Andrieu de GoogleFocus sur les PWA par Loic de Saint-Andrieu de Google
Focus sur les PWA par Loic de Saint-Andrieu de Google
 
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
How Googlebot Renders (Roleplaying as Google's Web Rendering Service-- D&D st...
 
DEF CON 27 - BEN SADEGHIPOUR - owning the clout through ssrf and pdf generators
DEF CON 27 - BEN SADEGHIPOUR  - owning the clout through ssrf and pdf generatorsDEF CON 27 - BEN SADEGHIPOUR  - owning the clout through ssrf and pdf generators
DEF CON 27 - BEN SADEGHIPOUR - owning the clout through ssrf and pdf generators
 
Debugging rendering problems at scale
Debugging rendering problems at scaleDebugging rendering problems at scale
Debugging rendering problems at scale
 
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
 
DevChatt: The Wonderful World Of Html5
DevChatt: The Wonderful World Of Html5DevChatt: The Wonderful World Of Html5
DevChatt: The Wonderful World Of Html5
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflow
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

Challenges of building a search engine like web rendering service