際際滷

際際滷Share a Scribd company logo
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 cant render page properly
JetOctopus Serge Bezborodov
JavaScript SEO is mostly about
pages rendered properly
JetOctopus Serge Bezborodov
JavaScript SEO = QA
JetOctopus Serge Bezborodov
Lets go with the most usual
JavaScript bugs
JetOctopus Serge Bezborodov
JS Bug #1: Page cant be fully rendered
-page loads quite a long time
-page cant be fully rendered (you dont 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 (Im 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
Its 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 wont go shortly
-JavaScript SEO is all about troubleshooting
-you can do almost nothing by yourself
-make strong communication with the developers' team
-without tools, its impossible to do it on a scale
JetOctopus Serge Bezborodov
Thank you
@sergebezborodov
Extended JavaScript Crawler JetOctopus.com
7 days free trial

More Related Content

How to fix JavaScript SEO problems on a scale