How to fix JavaScript SEO problems on a scale

Serge Bezborodov
Serge BezborodovCTO of JetOctopus logs analyzer and crawler em JetOctopus
How to fix JavaScript
SEO problems on a
scale
Serge Bezborodov
JetOctopus
slideshare.net/sergebezborodov
@sergebezborodov
JetOctopus Serge Bezborodov
What is the difference between
modern JavaScript websites
and
old-school
JetOctopus Serge Bezborodov
modern JavaScript website
JavaScript Application
old-school
HTML Documents
JetOctopus Serge Bezborodov
Applications have bugs
JetOctopus Serge Bezborodov
BUGS = Google can’t render page properly
JetOctopus Serge Bezborodov
JavaScript SEO is mostly about
pages rendered properly
JetOctopus Serge Bezborodov
JavaScript SEO = QA
JetOctopus Serge Bezborodov
Let’s go with the most usual
JavaScript bugs
JetOctopus Serge Bezborodov
JS Bug #1: Page can’t be fully rendered
-page loads quite a long time
-page can’t be fully rendered (you don’t see a footer)
-page became fully loaded after some interaction (scroll, click)
test cases:
JetOctopus Serge Bezborodov
JS Bug #2: Incomplete content
-page misses some content blocks
-JavaScript removes some content (I’m not joking)
test cases:
JetOctopus Serge Bezborodov
JS Bug #3: JavaScript redirects
window.location.href = “/new-page.html”
redirect without 301/302 server status codes
JavaScript Code:
JetOctopus Serge Bezborodov
JS Bug #4: Different content for User-agents
JetOctopus Serge Bezborodov
JS Bug #5: SSR is broken
-text/HTML ratio closer to 0
JetOctopus Serge Bezborodov
JS Bug #6: SSR misses some content
-SSR should have the same content as the client-rendered
page (with very few exceptions)
-make custom extraction rules for blocks, elements, or text
test cases:
JetOctopus Serge Bezborodov
JS Bug #7: Changed titles, meta by JS
-JavaScript may change page title, meta description
-JavaScript may change <meta name=“robots”>
test cases:
JetOctopus Serge Bezborodov
JS Bug #7: robots.txt - shot in the foot
- robots.txt rules are applied to JavaScript files as well
- subdomains may have their own robots.txt (huge attention here!!!)
- never analyze robots.txt only by eyes, use the tools!
JetOctopus Serge Bezborodov
JS Bug #7: robots.txt - shot in the foot
pages with ?utm_source will not be crawled by Googlebot
JetOctopus Serge Bezborodov
JS Bug #7: robots.txt - shot in the foot
and JavaScript files as well
page may be not rendered fully
JetOctopus Serge Bezborodov
JS Bug #7: robots.txt - shot in the foot
subdomains may have own robots.txt !!!!!!!
JetOctopus Serge Bezborodov
- I checked a bunch of template pages,
everything works fine
The common way of JS QA
JetOctopus Serge Bezborodov
- nope, check more
JetOctopus Serge Bezborodov
check more = crawl more
not hundreds of pages but tens of thousands
JetOctopus Serge Bezborodov
JavaScript Errors setup in Screaming Frog
JetOctopus Serge Bezborodov
in JetOctopus enabled by default
JetOctopus Serge Bezborodov
Bonus part
JetOctopus Serge Bezborodov
How JS can harm log file analysis
JetOctopus Serge Bezborodov
It’s not a page crawled by GBot but JS requests
JetOctopus Serge Bezborodov
Make sure, you exclude JS requests
from your log file analysis
JetOctopus Serge Bezborodov
Crawl budget is the amount of crawled
pages,
not JS requests made during pages
rendering
JetOctopus Serge Bezborodov
Conclusions
-JavaScript is already with us and won’t go shortly
-JavaScript SEO is all about troubleshooting
-you can do almost nothing by yourself
-make strong communication with the developers' team
-without tools, it’s impossible to do it on a scale
JetOctopus Serge Bezborodov
Thank you
@sergebezborodov
Extended JavaScript Crawler JetOctopus.com
7 days free trial
1 de 31

Recomendados

How to control googlebot por
How to control googlebotHow to control googlebot
How to control googlebotSerge Bezborodov
502 visualizações29 slides
Interlinking structure for big websites por
 Interlinking structure for big websites Interlinking structure for big websites
Interlinking structure for big websitesSerge Bezborodov
132 visualizações59 slides
Understand the impact of Javascript on SEO por
Understand the impact of Javascript on SEOUnderstand the impact of Javascript on SEO
Understand the impact of Javascript on SEOBotify
1K visualizações43 slides
Js unit testing por
Js unit testingJs unit testing
Js unit testingMihail Irintchev
662 visualizações33 slides
SearchLove Boston 2013_Will Critchlow_Technical SEO por
SearchLove Boston 2013_Will Critchlow_Technical SEOSearchLove Boston 2013_Will Critchlow_Technical SEO
SearchLove Boston 2013_Will Critchlow_Technical SEODistilled
55.9K visualizações105 slides
Shifting Gears por
Shifting GearsShifting Gears
Shifting GearsChristian Heilmann
6.7K visualizações130 slides

Mais conteúdo relacionado

Similar a How to fix JavaScript SEO problems on a scale

jQuery Conference 2012 keynote por
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
20.4K visualizações29 slides
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018 por
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
16.6K visualizações31 slides
JavaScript Libraries (@Media) por
JavaScript Libraries (@Media)JavaScript Libraries (@Media)
JavaScript Libraries (@Media)jeresig
2.6K visualizações89 slides
JavaScript Libraries (Kings of Code) por
JavaScript Libraries (Kings of Code)JavaScript Libraries (Kings of Code)
JavaScript Libraries (Kings of Code)jeresig
2.2K visualizações83 slides
BlackBerry 10 Browser por
BlackBerry 10 BrowserBlackBerry 10 Browser
BlackBerry 10 BrowserErik Johnson
173 visualizações29 slides
JavaScript Library Overview por
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overviewjeresig
32.3K visualizações94 slides

Similar a How to fix JavaScript SEO problems on a scale(20)

jQuery Conference 2012 keynote por dmethvin
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin20.4K visualizações
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018 por patrickstox
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
patrickstox16.6K visualizações
JavaScript Libraries (@Media) por jeresig
JavaScript Libraries (@Media)JavaScript Libraries (@Media)
JavaScript Libraries (@Media)
jeresig2.6K visualizações
JavaScript Libraries (Kings of Code) por jeresig
JavaScript Libraries (Kings of Code)JavaScript Libraries (Kings of Code)
JavaScript Libraries (Kings of Code)
jeresig2.2K visualizações
BlackBerry 10 Browser por Erik Johnson
BlackBerry 10 BrowserBlackBerry 10 Browser
BlackBerry 10 Browser
Erik Johnson173 visualizações
JavaScript Library Overview por jeresig
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
jeresig32.3K visualizações
Blazor - An Introduction por JamieTaylor112
Blazor - An IntroductionBlazor - An Introduction
Blazor - An Introduction
JamieTaylor1121.1K visualizações
Debugging secrets of the pros, for everyone por Jen Weber
Debugging secrets of the pros, for everyoneDebugging secrets of the pros, for everyone
Debugging secrets of the pros, for everyone
Jen Weber80 visualizações
JavaScript Library Overview por jeresig
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
jeresig30.7K visualizações
J query por David Giard
J queryJ query
J query
David Giard779 visualizações
Debugging rendering problems at scale por Giacomo Zecchini
Debugging rendering problems at scaleDebugging rendering problems at scale
Debugging rendering problems at scale
Giacomo Zecchini645 visualizações
LeapMotion for Web with React and Flux por Laura Moore
LeapMotion for Web with React and FluxLeapMotion for Web with React and Flux
LeapMotion for Web with React and Flux
Laura Moore819 visualizações
SearchLove Boston 2017 | Dom Woodman | How to Get Insight From Your Logs por Distilled
SearchLove Boston 2017 | Dom Woodman | How to Get Insight From Your LogsSearchLove Boston 2017 | Dom Woodman | How to Get Insight From Your Logs
SearchLove Boston 2017 | Dom Woodman | How to Get Insight From Your Logs
Distilled791 visualizações
Stefan Judis "Did we(b development) lose the right direction?" por Fwdays
Stefan Judis "Did we(b development) lose the right direction?"Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
Fwdays200 visualizações
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools por Ryan Weaver
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver54.9K visualizações
Deep crawl the chaotic landscape of JavaScript por Onely
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Onely11.7K visualizações
Print a web page using java script por zulhamsyamhari
Print a web page using java scriptPrint a web page using java script
Print a web page using java script
zulhamsyamhari1.7K visualizações
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs por Distilled
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your LogsSearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs
Distilled4.9K visualizações
A Guide to Log Analysis with Big Query por Dominic Woodman
A Guide to Log Analysis with Big QueryA Guide to Log Analysis with Big Query
A Guide to Log Analysis with Big Query
Dominic Woodman1.7K visualizações

Último

Introduction to Gradle por
Introduction to GradleIntroduction to Gradle
Introduction to GradleJohn Valentino
6 visualizações7 slides
Understanding HTML terminology por
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminologyartembondar5
7 visualizações8 slides
Dapr Unleashed: Accelerating Microservice Development por
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice DevelopmentMiroslav Janeski
15 visualizações29 slides
Ports-and-Adapters Architecture for Embedded HMI por
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIBurkhard Stubert
33 visualizações19 slides
The Era of Large Language Models.pptx por
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptxAbdulVahedShaik
7 visualizações9 slides
Playwright Retries por
Playwright RetriesPlaywright Retries
Playwright Retriesartembondar5
6 visualizações1 slide

Último(20)

Introduction to Gradle por John Valentino
Introduction to GradleIntroduction to Gradle
Introduction to Gradle
John Valentino6 visualizações
Understanding HTML terminology por artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar57 visualizações
Dapr Unleashed: Accelerating Microservice Development por Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski15 visualizações
Ports-and-Adapters Architecture for Embedded HMI por Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert33 visualizações
The Era of Large Language Models.pptx por AbdulVahedShaik
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptx
AbdulVahedShaik7 visualizações
Playwright Retries por artembondar5
Playwright RetriesPlaywright Retries
Playwright Retries
artembondar56 visualizações
predicting-m3-devopsconMunich-2023.pptx por Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 visualizações
Top-5-production-devconMunich-2023-v2.pptx por Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app8 visualizações
How Workforce Management Software Empowers SMEs | TraQSuite por TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite6 visualizações
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... por Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 visualizações
tecnologia18.docx por nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 visualizações
Generic or specific? Making sensible software design decisions por Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Bert Jan Schrijver7 visualizações
Quality Engineer: A Day in the Life por John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino7 visualizações
ADDO_2022_CICID_Tom_Halpin.pdf por TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 visualizações
AI and Ml presentation .pptx por FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8714 visualizações
Introduction to Maven por John Valentino
Introduction to MavenIntroduction to Maven
Introduction to Maven
John Valentino6 visualizações
JioEngage_Presentation.pptx por admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254558 visualizações
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation por HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 visualizações
nintendo_64.pptx por paiga02016
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptx
paiga020166 visualizações

How to fix JavaScript SEO problems on a scale