SlideShare a Scribd company logo
1 of 74
SEO vs Angular
Website Migration
https://www.gokam.co.uk/ June 2018
“
Why are we
talking about
this?
2
3
Enjoy this graph of a website migrated to
full JS #SEO
https://twitter.com/operbet/status/1016234468997255169
SEO Migration
What's at stake?
How does Google
analyze websites?
Crawl & Index
Illustration :
HP
HP
HP
HP
Steps
10
Listing /
prioritisation
New URLs
Indexation
Words/links extraction
performed by the Web Rendering
Service (included in 'Caffeine')
Crawl/fetch
URLs by Googlebot
03
01 02
Limit crawl rates based on several criteria.
Officialised in Jan. 2017 by Google
Crawl budget
11
Crawl Budget criteria
12
- Difficulty: Google will crawl more or less assiduously
depending on the server's response times, or even on the
server sending errors rate.
- Need for updating: a static site, not often updated, will not
be crawled often.
- Need for exploration: according to popularity
HP
HP
Duplicat
content
Empty
HP
Deindexed
How to make an “SEO”
migration
Crawl & Index
Google wants to make sure that
1. same owner
17
Make sure of the owner
- No whois change
- No domain name change
- No topic change
18
Make sure of the owner
- No whois change
- No domain name change
- No topic change
(if possible)
19
Google wants to make sure that
1. same owner
2. same content
20
“
For Google, there is no
greater irrelevance than
sending users to empty
pages or error pages
21
Old New
Old New
Ideal: The URLs remain the same
Old
New
Redirection 301 "page by page"
Google wants to make sure that
1. same owner
2. same content
3. popularity is not usurped
25
Old
New
New
A migration often means:
29
- In the case of a domain name update, it is essential
to make the minimum change at the same time and
explicitly declare the migration in the search console.
Significant increase in crawl rate for a few days.
New website can go down as web cache is not fully
available yet.
A migration often means:
30
A migration often means:
If 301's is too high. The site's SEO traffic will be lowered
until Google "understands" the new site
If there are still old' urls on the Web and even worse in
internal navigation, the 301s can stay for a long time.
31
What about Angular ?
Crawl & Index
“
Google say :
we are generally able to
render and understand your
web pages like modern
browsers
33Source : https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
“
Just because Google is the
one behind Angular, it
doesn't mean that the
framework is the best for
SEO."
34
“
35Source : https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
Google : “we recommend
following the principles of
progressive enhancement.”
What are the options?
No architecture modifications
Optimize
client side rendering
37
option n°1
Critical part
38
03
01 02
⚠
Listing /
prioritisation
New URLs
Indexation
Words/links extraction
performed by the Web Rendering
Service (included in 'Caffeine')
Crawl/fetch
URLs by Googlebot
Requirement : It is absolutely necessary to let
Googlebot access all js/css files
Beware of robots.txt file
Good practices
39
option n°1
“5 seconds rule
“There’s no specific timeout value that we
define, mostly because the time needed
for fetching the resources is not
deterministic or comparable to a browser
(due to caching, server load, etc). 5
seconds is a good thing to aim for, I
suspect many sites will find it challenging
to get there though ”
40
option n°1
*Source : John Muller, Webmaster Trends Analyst at Google, 19/05/2017
Good practices: ensure links discoverability
- Use Push-state to ensure accounting of user/bots behaviors
- Expose to Google all the links necessary to discover all the
pages
41
option n°1
*Source : https://developers.google.com/search/docs/guides/rendering
- The rendering service uses Chrome 41
- Version that is 3 years old
- ES6 javascript partially compatible, no "let" for example
- Cookies, and local and session storage are cleared across page
loads
- Use Google's rendering tools to test:
- Google mobile / Speed test
- Chrome dev tool / audit
- Fetch in the search console
Good practices : test everything
42
option n°1
*Source : https://developers.google.com/search/docs/guides/rendering
Good practices
43
Don't forget metadata:
- for Google: title, meta description, canonical tag
- For Facebook og:title, og:description
You should not rely on the XML sitemap to index the pages
option n°1
*Source : https://developers.google.com/search/docs/guides/rendering
The indexing/interpretation sentence will require a lot more
resources for Google.
If the list of pages to be processed grows longer for the WRS,
the pages will sometimes be considered empty until the service
does its job.
Indexation will be slower no matter what happens and will go
"less far". "Good SEO is Efficiency"
The limits of the approach
44
option n°1
*Source : https://developers.google.com/search/docs/guides/rendering
Flawed & Google only solution
The limits of the approach
45
option n°1
*Source : https://developers.google.com/search/docs/guides/rendering
#! & to _escaped_fragment_ format
Google Ajax Crawling Specification
46
option n°2
47*Source : https://developers.google.com/webmasters/ajax-crawling/docs/specification
Officiellement
deprecated since
October 2015
Not a option
48
Equivalence between app URL and backend URL
User browse
/#!key1=value1&key2=valu
e2
Googlebot crawl
/?_escaped_fragment_=ke
y1=value1%26key2=value2
Not a option
Popular Hack
Prerender.io
49
option n°3
50
In a few words
It is a service that interprets your
Javascript code in a virtual browser, then
distributes the result as static HTML to
bots indexing.
option n°3
“
"Make sure this content is
strictly identical."
Otherwise it's cloaking 💀
52
option n°3
https://support.google.com/webmasters/answer/66355?hl=en&ref_topic=6001971
https://support.google.com/webmasters/answer/66353
Prerender.io was still using the syntax
_escaped_fragment_ a short time ago
Today the setting should be the same for all bots.
53
_escaped_fragment_
option n°3
54
- Open source
- Popular
- Multi-framework (Angular/React/Vue.js)
- Quite old, quite well documented solution
- Possibility to install the service yourself or pay via an
online service ($35 per month for 50,000 with a 7-
day cache)
- Makes the crawl very fast / resource efficient
Pro’s
option n°3
- Considered a hack
- Complexify architecture (to maintain / monitor)
- Many are looking to replace this solution with
something more "elegant".
55
Con’s
option n°3
Sponsored Hack
Rendertron
56
option n°4
57
In a few words
Like prerender, Renderstron is a service
that interprets your Javascript code in a
virtual browser, but it distributes the result
on the fly to Bots
option n°4
Rendertron
Rendertron
Open source
"Dockerized
Supported by the Chrome and Firebase team
Multibots
60
Pro’s
option n°4
61
Con’s
Very recent (1 year)
option n°4
server side rendering
Angular Universal
62
option n°5
63
- The idea is to use the SSR to display the
first page of the application. When the user
navigates, we go back to side rendering
client
- Same behavior for users/bots
- The "best of two worlds"
In a few words
option n°5
SSR
SSR
CSR
SSR
CSR
The best solution in the best of all worlds
Open source
Most flexible / powerful solution
Easy to test, it is "enough" to deactivate the JS
Speed grain
Google and especially the web quality team seems to
think that this will be the main solution in the future
68
Pro’s
option n°5
Most complex solution
Unproven/tested with Angular, interested people turned
to other solutions (Hacks, React/Next, Vue/Nuxt)
Add a lot of constraint on both sides.
Examples :
- Only CommonJS for Node.js' (babel-node/ts-node)
- "Universal is not able to use global objects" (document, window,
localStorage, etc.) but potentially injectable
- "the DOM must only be handled by Angular"
69
Con’s
option n°5
Thanks to the SSR, it is possible to make a fast /
ergonomic and SEO friendly application
But this requires substantial resources
Airbnb did so using React but to do so had to become an
active contributor to the project.
70
Airbnb
option n°5
...
Keep the current tech....
71
option n°6
72
Cut things in half
Serve SEO content with
legacy tech
http://www.example.com/
Serve the app using Angular
http://app.example.com/
option n°6
The End
Thanks
73https://www.gokam.co.uk/ June 2018
74
Open Source Google
Slides themes by
slidesgala.com
https://www.gokam.co.uk/ June 2018

More Related Content

What's hot

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
 
SEO for developers in e-commerce business
SEO for developers in e-commerce businessSEO for developers in e-commerce business
SEO for developers in e-commerce businessMirumee Software
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEOMichael King
 
Welcome to a new reality - DeepCrawl Webinar 2018
Welcome to a new reality - DeepCrawl Webinar 2018Welcome to a new reality - DeepCrawl Webinar 2018
Welcome to a new reality - DeepCrawl Webinar 2018Bastian Grimm
 
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...Izabela Wisniewska
 
Optimize URL for Performance
Optimize URL for PerformanceOptimize URL for Performance
Optimize URL for PerformanceMorgan Cheng
 
Accelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMPAccelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMPJono Alderson
 
DeepCrawl Webinar: Performing SEO on the Edge
DeepCrawl Webinar: Performing SEO on the EdgeDeepCrawl Webinar: Performing SEO on the Edge
DeepCrawl Webinar: Performing SEO on the EdgeDan Taylor
 
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry WhiteGTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry WhiteGerry White
 
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
 
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
 
RankWatch Analysis
RankWatch AnalysisRankWatch Analysis
RankWatch AnalysisPavel Samuta
 
The New Renaissance of JavaScript
The New Renaissance of JavaScriptThe New Renaissance of JavaScript
The New Renaissance of JavaScriptHamlet Batista
 
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Bastian Grimm
 
Mobile SEO - Technical, Content, Local, Apps and Beyond
Mobile SEO - Technical, Content, Local, Apps and BeyondMobile SEO - Technical, Content, Local, Apps and Beyond
Mobile SEO - Technical, Content, Local, Apps and BeyondNicole Hess
 
Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018Bastian Grimm
 
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...Distilled
 
SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...
SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...
SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...SearchLeeds
 
Headless SEO: Optimising Next Gen Sites | brightonSEO 2021
Headless SEO: Optimising Next Gen Sites | brightonSEO 2021Headless SEO: Optimising Next Gen Sites | brightonSEO 2021
Headless SEO: Optimising Next Gen Sites | brightonSEO 2021Alex Wright
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012Bastian Grimm
 

What's hot (20)

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 ...
 
SEO for developers in e-commerce business
SEO for developers in e-commerce businessSEO for developers in e-commerce business
SEO for developers in e-commerce business
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEO
 
Welcome to a new reality - DeepCrawl Webinar 2018
Welcome to a new reality - DeepCrawl Webinar 2018Welcome to a new reality - DeepCrawl Webinar 2018
Welcome to a new reality - DeepCrawl Webinar 2018
 
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
 
Optimize URL for Performance
Optimize URL for PerformanceOptimize URL for Performance
Optimize URL for Performance
 
Accelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMPAccelerated Mobile - Beyond AMP
Accelerated Mobile - Beyond AMP
 
DeepCrawl Webinar: Performing SEO on the Edge
DeepCrawl Webinar: Performing SEO on the EdgeDeepCrawl Webinar: Performing SEO on the Edge
DeepCrawl Webinar: Performing SEO on the Edge
 
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry WhiteGTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
 
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
 
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
 
RankWatch Analysis
RankWatch AnalysisRankWatch Analysis
RankWatch Analysis
 
The New Renaissance of JavaScript
The New Renaissance of JavaScriptThe New Renaissance of JavaScript
The New Renaissance of JavaScript
 
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
 
Mobile SEO - Technical, Content, Local, Apps and Beyond
Mobile SEO - Technical, Content, Local, Apps and BeyondMobile SEO - Technical, Content, Local, Apps and Beyond
Mobile SEO - Technical, Content, Local, Apps and Beyond
 
Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018
 
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
SearchLove San Diego 2018 | Tom Anthony | An Introduction to HTTP/2 & Service...
 
SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...
SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...
SearchLeeds 2019 - Luke Monaghan - Site speed: Time to meet the mobile expect...
 
Headless SEO: Optimising Next Gen Sites | brightonSEO 2021
Headless SEO: Optimising Next Gen Sites | brightonSEO 2021Headless SEO: Optimising Next Gen Sites | brightonSEO 2021
Headless SEO: Optimising Next Gen Sites | brightonSEO 2021
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
 

Similar to SEO vs Angular

JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...Leigh Hanney
 
Seo for Engineers
Seo for EngineersSeo for Engineers
Seo for EngineersCort Tafoya
 
JavaScript Doesn't Have to be Evil | Digital Olympus
JavaScript Doesn't Have to be Evil | Digital OlympusJavaScript Doesn't Have to be Evil | Digital Olympus
JavaScript Doesn't Have to be Evil | Digital OlympusOnely
 
Migration to a JS Framework without Losing Your Rankings and Mind
Migration to a JS Framework without Losing Your Rankings and MindMigration to a JS Framework without Losing Your Rankings and Mind
Migration to a JS Framework without Losing Your Rankings and MindMaria Cieślak
 
Agile and Technical SEO
Agile and Technical SEOAgile and Technical SEO
Agile and Technical SEOAdam Gent
 
SearchEngineOptimization-TheFullProcess.pdf
SearchEngineOptimization-TheFullProcess.pdfSearchEngineOptimization-TheFullProcess.pdf
SearchEngineOptimization-TheFullProcess.pdfwellshop shopping
 
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
 
Google Chronicles: Analytics And Chrome
Google Chronicles: Analytics And ChromeGoogle Chronicles: Analytics And Chrome
Google Chronicles: Analytics And ChromeSarah Dutkiewicz
 
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
 
Seo Sample Site Analysis Doc
Seo Sample Site Analysis DocSeo Sample Site Analysis Doc
Seo Sample Site Analysis DocAnuradha
 
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
 
7 Section Website Assessment
7 Section Website Assessment 7 Section Website Assessment
7 Section Website Assessment Corey84
 
An SEO optimized website is best charged up.pdf
An SEO optimized website is best charged up.pdfAn SEO optimized website is best charged up.pdf
An SEO optimized website is best charged up.pdfMindfire LLC
 
20150211 seo in drupal presentation
20150211 seo in drupal presentation20150211 seo in drupal presentation
20150211 seo in drupal presentationDagmar Muth
 
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014Bastian Grimm
 
Core web vitals is the thing you should focus on if you own a website in 2021
Core web vitals is the thing you should focus on if you own a website in 2021Core web vitals is the thing you should focus on if you own a website in 2021
Core web vitals is the thing you should focus on if you own a website in 2021World Web Technology Pvt Ltd
 
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...SEO Camp Association
 
Myths & true stories about JavaScript for SEO
Myths & true stories about JavaScript for SEOMyths & true stories about JavaScript for SEO
Myths & true stories about JavaScript for SEOSara Moccand-Sayegh
 

Similar to SEO vs Angular (20)

JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
JavaScript SEO: Testing and Debugging for Non-Developers - Search Marketing S...
 
Modern JavaScript and SEO
Modern JavaScript and SEOModern JavaScript and SEO
Modern JavaScript and SEO
 
Seo for Engineers
Seo for EngineersSeo for Engineers
Seo for Engineers
 
JavaScript Doesn't Have to be Evil | Digital Olympus
JavaScript Doesn't Have to be Evil | Digital OlympusJavaScript Doesn't Have to be Evil | Digital Olympus
JavaScript Doesn't Have to be Evil | Digital Olympus
 
Migration to a JS Framework without Losing Your Rankings and Mind
Migration to a JS Framework without Losing Your Rankings and MindMigration to a JS Framework without Losing Your Rankings and Mind
Migration to a JS Framework without Losing Your Rankings and Mind
 
Agile and Technical SEO
Agile and Technical SEOAgile and Technical SEO
Agile and Technical SEO
 
SearchEngineOptimization-TheFullProcess.pdf
SearchEngineOptimization-TheFullProcess.pdfSearchEngineOptimization-TheFullProcess.pdf
SearchEngineOptimization-TheFullProcess.pdf
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
 
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
 
Google Chronicles: Analytics And Chrome
Google Chronicles: Analytics And ChromeGoogle Chronicles: Analytics And Chrome
Google Chronicles: Analytics And Chrome
 
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...
 
Seo Sample Site Analysis Doc
Seo Sample Site Analysis DocSeo Sample Site Analysis Doc
Seo Sample Site Analysis Doc
 
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
 
7 Section Website Assessment
7 Section Website Assessment 7 Section Website Assessment
7 Section Website Assessment
 
An SEO optimized website is best charged up.pdf
An SEO optimized website is best charged up.pdfAn SEO optimized website is best charged up.pdf
An SEO optimized website is best charged up.pdf
 
20150211 seo in drupal presentation
20150211 seo in drupal presentation20150211 seo in drupal presentation
20150211 seo in drupal presentation
 
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
Technical SEO: Crawl Space Management - SEOZone Istanbul 2014
 
Core web vitals is the thing you should focus on if you own a website in 2021
Core web vitals is the thing you should focus on if you own a website in 2021Core web vitals is the thing you should focus on if you own a website in 2021
Core web vitals is the thing you should focus on if you own a website in 2021
 
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
L’importance du crawl du JavaScript : pourquoi, comment et pour quels bénéfic...
 
Myths & true stories about JavaScript for SEO
Myths & true stories about JavaScript for SEOMyths & true stories about JavaScript for SEO
Myths & true stories about JavaScript for SEO
 

Recently uploaded

Semantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxSemantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxMike Bennett
 
2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING
2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING
2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSINGmarianagonzalez07
 
PKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptxPKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptxPramod Kumar Srivastava
 
GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]📊 Markus Baersch
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdfHuman37
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)jennyeacort
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Colleen Farrelly
 
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfPredicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfBoston Institute of Analytics
 
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...dajasot375
 
办理学位证纽约大学毕业证(NYU毕业证书)原版一比一
办理学位证纽约大学毕业证(NYU毕业证书)原版一比一办理学位证纽约大学毕业证(NYU毕业证书)原版一比一
办理学位证纽约大学毕业证(NYU毕业证书)原版一比一fhwihughh
 
Defining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryDefining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryJeremy Anderson
 
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort servicejennyeacort
 
Top 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In QueensTop 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In Queensdataanalyticsqueen03
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理e4aez8ss
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanMYRABACSAFRA2
 
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样vhwb25kk
 
RadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfRadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfgstagge
 
Multiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfMultiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfchwongval
 
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...Boston Institute of Analytics
 

Recently uploaded (20)

Semantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxSemantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptx
 
2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING
2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING
2006_GasProcessing_HB (1).pdf HYDROCARBON PROCESSING
 
PKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptxPKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptx
 
GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024
 
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfPredicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
 
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
 
办理学位证纽约大学毕业证(NYU毕业证书)原版一比一
办理学位证纽约大学毕业证(NYU毕业证书)原版一比一办理学位证纽约大学毕业证(NYU毕业证书)原版一比一
办理学位证纽约大学毕业证(NYU毕业证书)原版一比一
 
Defining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryDefining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data Story
 
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
 
Top 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In QueensTop 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In Queens
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population Mean
 
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
 
RadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfRadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdf
 
Multiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfMultiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdf
 
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
 

SEO vs Angular

  • 1. SEO vs Angular Website Migration https://www.gokam.co.uk/ June 2018
  • 2. “ Why are we talking about this? 2
  • 3. 3 Enjoy this graph of a website migrated to full JS #SEO https://twitter.com/operbet/status/1016234468997255169
  • 5. How does Google analyze websites? Crawl & Index
  • 7. HP
  • 8. HP
  • 9. HP
  • 10. Steps 10 Listing / prioritisation New URLs Indexation Words/links extraction performed by the Web Rendering Service (included in 'Caffeine') Crawl/fetch URLs by Googlebot 03 01 02
  • 11. Limit crawl rates based on several criteria. Officialised in Jan. 2017 by Google Crawl budget 11
  • 12. Crawl Budget criteria 12 - Difficulty: Google will crawl more or less assiduously depending on the server's response times, or even on the server sending errors rate. - Need for updating: a static site, not often updated, will not be crawled often. - Need for exploration: according to popularity
  • 13. HP
  • 16. How to make an “SEO” migration Crawl & Index
  • 17. Google wants to make sure that 1. same owner 17
  • 18. Make sure of the owner - No whois change - No domain name change - No topic change 18
  • 19. Make sure of the owner - No whois change - No domain name change - No topic change (if possible) 19
  • 20. Google wants to make sure that 1. same owner 2. same content 20
  • 21. “ For Google, there is no greater irrelevance than sending users to empty pages or error pages 21
  • 23. Old New Ideal: The URLs remain the same
  • 25. Google wants to make sure that 1. same owner 2. same content 3. popularity is not usurped 25
  • 26. Old
  • 27. New
  • 28. New
  • 29. A migration often means: 29 - In the case of a domain name update, it is essential to make the minimum change at the same time and explicitly declare the migration in the search console.
  • 30. Significant increase in crawl rate for a few days. New website can go down as web cache is not fully available yet. A migration often means: 30
  • 31. A migration often means: If 301's is too high. The site's SEO traffic will be lowered until Google "understands" the new site If there are still old' urls on the Web and even worse in internal navigation, the 301s can stay for a long time. 31
  • 32. What about Angular ? Crawl & Index
  • 33. “ Google say : we are generally able to render and understand your web pages like modern browsers 33Source : https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
  • 34. “ Just because Google is the one behind Angular, it doesn't mean that the framework is the best for SEO." 34
  • 35. “ 35Source : https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html Google : “we recommend following the principles of progressive enhancement.”
  • 36. What are the options?
  • 37. No architecture modifications Optimize client side rendering 37 option n°1
  • 38. Critical part 38 03 01 02 ⚠ Listing / prioritisation New URLs Indexation Words/links extraction performed by the Web Rendering Service (included in 'Caffeine') Crawl/fetch URLs by Googlebot
  • 39. Requirement : It is absolutely necessary to let Googlebot access all js/css files Beware of robots.txt file Good practices 39 option n°1
  • 40. “5 seconds rule “There’s no specific timeout value that we define, mostly because the time needed for fetching the resources is not deterministic or comparable to a browser (due to caching, server load, etc). 5 seconds is a good thing to aim for, I suspect many sites will find it challenging to get there though ” 40 option n°1 *Source : John Muller, Webmaster Trends Analyst at Google, 19/05/2017
  • 41. Good practices: ensure links discoverability - Use Push-state to ensure accounting of user/bots behaviors - Expose to Google all the links necessary to discover all the pages 41 option n°1 *Source : https://developers.google.com/search/docs/guides/rendering
  • 42. - The rendering service uses Chrome 41 - Version that is 3 years old - ES6 javascript partially compatible, no "let" for example - Cookies, and local and session storage are cleared across page loads - Use Google's rendering tools to test: - Google mobile / Speed test - Chrome dev tool / audit - Fetch in the search console Good practices : test everything 42 option n°1 *Source : https://developers.google.com/search/docs/guides/rendering
  • 43. Good practices 43 Don't forget metadata: - for Google: title, meta description, canonical tag - For Facebook og:title, og:description You should not rely on the XML sitemap to index the pages option n°1 *Source : https://developers.google.com/search/docs/guides/rendering
  • 44. The indexing/interpretation sentence will require a lot more resources for Google. If the list of pages to be processed grows longer for the WRS, the pages will sometimes be considered empty until the service does its job. Indexation will be slower no matter what happens and will go "less far". "Good SEO is Efficiency" The limits of the approach 44 option n°1 *Source : https://developers.google.com/search/docs/guides/rendering
  • 45. Flawed & Google only solution The limits of the approach 45 option n°1 *Source : https://developers.google.com/search/docs/guides/rendering
  • 46. #! & to _escaped_fragment_ format Google Ajax Crawling Specification 46 option n°2
  • 48. 48 Equivalence between app URL and backend URL User browse /#!key1=value1&key2=valu e2 Googlebot crawl /?_escaped_fragment_=ke y1=value1%26key2=value2 Not a option
  • 50. 50 In a few words It is a service that interprets your Javascript code in a virtual browser, then distributes the result as static HTML to bots indexing. option n°3
  • 51.
  • 52. “ "Make sure this content is strictly identical." Otherwise it's cloaking 💀 52 option n°3 https://support.google.com/webmasters/answer/66355?hl=en&ref_topic=6001971 https://support.google.com/webmasters/answer/66353
  • 53. Prerender.io was still using the syntax _escaped_fragment_ a short time ago Today the setting should be the same for all bots. 53 _escaped_fragment_ option n°3
  • 54. 54 - Open source - Popular - Multi-framework (Angular/React/Vue.js) - Quite old, quite well documented solution - Possibility to install the service yourself or pay via an online service ($35 per month for 50,000 with a 7- day cache) - Makes the crawl very fast / resource efficient Pro’s option n°3
  • 55. - Considered a hack - Complexify architecture (to maintain / monitor) - Many are looking to replace this solution with something more "elegant". 55 Con’s option n°3
  • 57. 57 In a few words Like prerender, Renderstron is a service that interprets your Javascript code in a virtual browser, but it distributes the result on the fly to Bots option n°4
  • 60. Open source "Dockerized Supported by the Chrome and Firebase team Multibots 60 Pro’s option n°4
  • 61. 61 Con’s Very recent (1 year) option n°4
  • 62. server side rendering Angular Universal 62 option n°5
  • 63. 63 - The idea is to use the SSR to display the first page of the application. When the user navigates, we go back to side rendering client - Same behavior for users/bots - The "best of two worlds" In a few words option n°5
  • 64.
  • 65. SSR
  • 68. The best solution in the best of all worlds Open source Most flexible / powerful solution Easy to test, it is "enough" to deactivate the JS Speed grain Google and especially the web quality team seems to think that this will be the main solution in the future 68 Pro’s option n°5
  • 69. Most complex solution Unproven/tested with Angular, interested people turned to other solutions (Hacks, React/Next, Vue/Nuxt) Add a lot of constraint on both sides. Examples : - Only CommonJS for Node.js' (babel-node/ts-node) - "Universal is not able to use global objects" (document, window, localStorage, etc.) but potentially injectable - "the DOM must only be handled by Angular" 69 Con’s option n°5
  • 70. Thanks to the SSR, it is possible to make a fast / ergonomic and SEO friendly application But this requires substantial resources Airbnb did so using React but to do so had to become an active contributor to the project. 70 Airbnb option n°5
  • 71. ... Keep the current tech.... 71 option n°6
  • 72. 72 Cut things in half Serve SEO content with legacy tech http://www.example.com/ Serve the app using Angular http://app.example.com/ option n°6
  • 74. 74 Open Source Google Slides themes by slidesgala.com https://www.gokam.co.uk/ June 2018

Editor's Notes

  1. Site rapide Site mobile
  2. amazon, blog
  3. amazon, blog
  4. amazon, blog
  5. Certains disent 4, certains disent 6
  6. Facebook ?