SlideShare a Scribd company logo
1 of 31
@patrickstox #DTDconf
Troubleshooting SEO for modern JS frameworks
@patrickstox #DTDconf
Who is Patrick Stox
Technical SEO for IBM - Opinions expressed are my own and not those of IBM.
I write, mainly for Search Engine Land
I speak at some conferences like this one, SMX, Pubcon, TechSEO Boost, etc.
Organizer for the Raleigh SEO Meetup (most successful in US)
We also run a conference, the Raleigh SEO Conference
Also the Beer & SEO Meetup (because beer)
2017 US Search Awards Judge, 2017 UK Search Awards Judge
2018 Interactive Marketing Awards Judge
Some of you may know me from the Wix SEO Hero contest (I got disqualified
https://beanseohero.com/)
@patrickstox #DTDconf
Why do SEOs need to learn about JS?
@patrickstox #DTDconf
WordPress is replacing their TinyMCE editor with Gutenberg built in React
The content blocks make it into more of a page builder
@patrickstox #DTDconf
Be prepared
Devs will focus on build and functionality and SEO and accessibility are afterthoughts.
Many of these folks are devs who haven’t had to work with SEOs before.
Counterpoint: many SEOs haven’t worked with JS or these devs.
@patrickstox #DTDconf
What’s an SEO to do?
@patrickstox #DTDconf
Find out about the setup, what framework, how is it rendering?
• Server-Side Rendering (SSR) – renders on demand from the server
• Pre-Rendering – a headless browser records the DOM (Document Object Model) and
creates an HTML snapshot. Like SSR, but done pre-deployment. Prerender.io,
BromBone, PhantomJS
• Client-Side Rendering – rendered in the users browser
• Isomorphic or Universal – Serves a rendered version on load but then replaces with JS
for subsequent loads.
@patrickstox #DTDconf
What should I use?
• Server-Side Rendering (SSR) – slower TTFB unless you cache, will work for the ~2% of
users with JS disabled.
• Pre-Rendering – may not serve the latest version, doesn’t allow for personalization, will
work for the ~2% of users with JS disabled.
• Client-Side Rendering - longer to load but everything is available and can be changed
quickly. A loading image is typically used but you may see a blank page.
• Isomorphic or Universal - This is probably the best setup, but it can be a lot of resources
to load.
@patrickstox #DTDconf
Can I detect the User Agent and serve an image only to Googlebot?
Sort of. It’s technically cloaking, but if the output is the same I would do it.
Really, make sure your output is the same.
@patrickstox #DTDconf
What about Bing or international markets?
Fabrice Canel of Bing said at Pubcon Vegas in 2017 that Bing processes JS. (be wary)
If you’re in Asian markets you’re out of luck for now.
I’d still prefer to use Isomorphic or Universal.
@patrickstox #DTDconf
URLs
Most of the frameworks have a router allowing you to customize URLs.
/en/us?Topics%5B0%5D%5B0%5D=cat.topic%3Ainfrastructure
Create patterns to match /{language}/{country}/{category}/{slug}
@patrickstox #DTDconf
They don’t have to change URLs to show different content
To change URLs for different content, usually History API and HTML5 pushstate() are used.
@patrickstox #DTDconf
Links
You still need <a href=
ng-click, href=“javascript:void(0);” – these won’t be seen as links
@patrickstox #DTDconf
Noscript
If you put something in <noscript> it’s probably going to be ignored.
@patrickstox #DTDconf
It’s hard to 404
You can add a noindex to any error pages along with a message. Will be treated as a soft-
404.
JS redirect to an actual 404 page that returns the status code.
Create a 404 Route.
@patrickstox #DTDconf
Things start to get interesting…
@patrickstox #DTDconf
View Source gets you this:
<!DOCTYPE html><html><head><meta charSet="utf-8" class="next-head"/><script class="next-
head">window.NREUM||(NREUM={});NREUM.info = {"agent":"","beacon":"bam.nr-data.net","errorBeacon":"bam.nr-
data.net","licenseKey":"2961bc4e3a","applicationID":"103427480","applicationTime":0.347295,"transactionName":"YQdSMU
cDXEMAVEUMClhNcxBGFl1dTkBUCQZZD1U=","queueTime":0,"ttGuid":"8aaa5aa3717120","agentToken":null};
(window.NREUM||(NREUM={})).loader_config={xpid:"VQIHUVBSCRABVFJWBQYDXlQ="};window.NREUM||(NREUM={}),_
_nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return
r(o||e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var
o=0;o<n.length;o++)r(n[o]);return r}({1:[function(t,e,n){function r(t){try{c.console&&console.log(t)}catch(e){}}var
o,i=t("ee"),a=t(20),c={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof
console.log&&(c.console=!0,o.indexOf("dev")!==-1&&(c.dev=!0),o.indexOf("nr_dev")!==-
1&&(c.nrDev=!0))}catch(s){}c.nrDev&&i.on("internal-error",function(t){r(t.stack)}),c.dev&&i.on("fn-
err",function(t,e,n){r(n.stack)}),c.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(c,function(t,e){return
t}).join(", ")))},{}],2:[function(t,e,n){function r(t,e,n,r,c){try{h?h-=1:o(c||new
UncaughtException(t,e,n),!0)}catch(f){try{i("ierr",[f,s.now(),!0])}catch(d){}}return"function"==typeof
u&&u.apply(this,a(arguments))}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional
@patrickstox #DTDconf
Source and Google’s Cache
Both the source code and Google’s cache are raw HTML, before JS is processed.
You can’t rely on these when working with JS.
@patrickstox #DTDconf
Inspect or Inspect Element
Viewing the DOM shows you the HTML after the JS has been processed.
If you want to make sure Google sees it, load in the DOM by default without needing an
action like click or scroll.
@patrickstox #DTDconf
Render a page as Googlebot
• Google Search Console / Fetch and Render - renders a page with the real Googlebot as
either desktop or mobile, lists blocked / unreachable resources. Lets you submit rendered
pages to Google search for indexing. This is stricter than the system normally used.
• Google Mobile Friendly Test - renders a page with smartphone Googlebot.
• Merkle Fetch and Render - fetch & render a page with any bot
• Google Rich Results Test shows rendered DOM >
Crawlers: Screaming Frog, Sitebulb, Botify
@patrickstox #DTDconf
To check indexing
Search Google:
site:domain.com “use a snippet of text from your page”
@patrickstox #DTDconf
It’s not quite that simple
@patrickstox #DTDconf
What may be indexed 1st is HTML, before the render happens
So you may not find what’s in your site: search yet.
You’ll see errors in the GSC HTML Improvements Report.
You might need to check the source code vs the DOM to see what will change once the Web
Rendering Service (WRS) renders the page.
Nofollow added via JS is a bad idea because it may show as follow before rendered.
Internal links may not be picked up and added to crawl before the render happens.
We setup a test site in October and couldn’t get everything indexed, but we put it live
and everything was fine. Google may not want to crawl everything on a test site.
If you need the information indexed fast, Use server-side rendering or pre-rendering
@patrickstox #DTDconf
Experiments in June 2017 – Slack log
"user": "U0SB51WPJ",
"text": "I requested it and the timing puts 2 different bots there. Mozilla/5.0 (compatible; Googlebot/2.1;
+<http://www.google.com/bot.html>) and Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko;
Google Search Console) Chrome/41.0.2272.118 Safari/537.36",
"ts": "1496434137.849731"
"user": "U2FNA0DQB",
"text": "So it's possible that the same user agent that we know as console - when we request it manually - is the same
user agent we'd see when they hit us with the simlauted browser on their own without us manually doing via fetch",
"ts": "1496434501.951224"
"user": "U0SB51WPJ",
"text": "^thinking about this a second, GSC shows how googlebot saw and how a visitor saw the page, so first is google
and second is the second tab for how visitors saw the page.",
"ts": "1496434516.955902"
@patrickstox #DTDconf
Conclusion:
@patrickstox #DTDconf
Confirmed in August
https://developers.google.com/search/docs/guides/rendering
@patrickstox #DTDconf
Highlights:
Googlebot and WRS only speaks HTTP/1.x and FTP, with and without TLS.
For rendering, Googlebot is stateless: Local Storage, Session Storage, HTTP Cookies are all
cleared across page loads
Not available: Service Workers, IndexedDB, WebGL, WebSQL, Fetch, ES6 / ECMAScript 6
support
ES6 transpile to ES5 for now (thanks Bartosz!)
Recommend using feature detection and Polyfills & treat Googlebot like any browser
WRS declines permission requests like Camera API, Geolocation API, and Notifications API.
Googlebot and WRS continuously analyze and identify resources that don’t contribute to
essential page content and may not fetch such resources.
@patrickstox #DTDconf
Tracking Errors and Debugging
https://developers.google.com/search/docs/guides/debug-rendering
You can also download Chrome 41.
@patrickstox #DTDconf
Myth busting
Because of this experiment from Max Prin, most people believe that Googlebot will only wait
5 seconds for a page to load. https://maxxeight.com/tests/js-timer/
@patrickstox #DTDconf
What else we know
Mostly crawls from West Coast US (Mountain View).
According to Gary Illyes at SMX Advanced they don’t throttle speeds when checking mobile
sites.
They are very aggressive with caching everything (you may want to use file versioning).
In fact, because of the caching and you know being a bot and all, they actually run things as
fast as they can with a sped up clock. Check out this post from Tom Anthony
http://www.tomanthony.co.uk/blog/googlebot-javascript-random/
Mobile Googlebot's screen size is 431 X 731 and Google resizes to 12,140 pixels high, while
the desktop version is 768 X 1024 but Google only resizes to 9,307 pixels high. Check out
JR Oakes https://codeseo.io/console-log-hacking-for-googlebot/ This can screw with you in
GSC Fetch and Render if you resize images based on height.
@patrickstox #DTDconf
Thank You, that’s it for me.
Now ask Bartosz all of your questions.

More Related Content

What's hot

Turning A Neglected YouTube Channel into a Traffic Generation Machine
Turning A Neglected YouTube Channel into a Traffic Generation MachineTurning A Neglected YouTube Channel into a Traffic Generation Machine
Turning A Neglected YouTube Channel into a Traffic Generation MachinePhil Nottingham
 
The Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title RewritesThe Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title RewritesMordy Oberstein
 
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 DiscoverFelipe Bazon
 
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...Jamie Indigo
 
How To EAT Links.pptx
How To EAT Links.pptxHow To EAT Links.pptx
How To EAT Links.pptxDixon Jones
 
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]Luis M Villanueva
 
chima mmeje brighton seo speaker slide april22
chima mmeje   brighton seo speaker slide april22chima mmeje   brighton seo speaker slide april22
chima mmeje brighton seo speaker slide april22chima mmeje
 
Fully Automated Link Building - Brighton SEO.pdf
Fully Automated Link Building - Brighton SEO.pdfFully Automated Link Building - Brighton SEO.pdf
Fully Automated Link Building - Brighton SEO.pdfSam Oh
 
Shining a light on the dark funnel
Shining a light on the dark funnelShining a light on the dark funnel
Shining a light on the dark funnelRiaz Kanani
 
Can you trust AI with your content?
Can you trust AI with your content?Can you trust AI with your content?
Can you trust AI with your content?Mat Bennett
 
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
 
Why Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardWhy Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardJoshuaHardwickAhrefs
 
Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...
Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...
Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...BethBarnham1
 
GretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari1
 
SEO para E-commerce: Da Intenção à Conversão
SEO para E-commerce: Da Intenção à ConversãoSEO para E-commerce: Da Intenção à Conversão
SEO para E-commerce: Da Intenção à ConversãoFelipe Bazon
 
Brighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless Delays
Brighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless DelaysBrighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless Delays
Brighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless DelaysTom Capper
 
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 🐙
 
BrightonSEO 2022.pdf
BrightonSEO 2022.pdfBrightonSEO 2022.pdf
BrightonSEO 2022.pdfIlia Markov
 
How to Generate Content that Builds it's Own Links
How to Generate Content that Builds it's Own LinksHow to Generate Content that Builds it's Own Links
How to Generate Content that Builds it's Own LinksLizGration
 

What's hot (20)

Turning A Neglected YouTube Channel into a Traffic Generation Machine
Turning A Neglected YouTube Channel into a Traffic Generation MachineTurning A Neglected YouTube Channel into a Traffic Generation Machine
Turning A Neglected YouTube Channel into a Traffic Generation Machine
 
The Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title RewritesThe Full Scoop on Google's Title Rewrites
The Full Scoop on Google's Title Rewrites
 
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
 
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
Do SEOs Need to Know About Chromium? Of CORS! Extended Edition - BrightonSEO ...
 
How To EAT Links.pptx
How To EAT Links.pptxHow To EAT Links.pptx
How To EAT Links.pptx
 
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
 
chima mmeje brighton seo speaker slide april22
chima mmeje   brighton seo speaker slide april22chima mmeje   brighton seo speaker slide april22
chima mmeje brighton seo speaker slide april22
 
Fully Automated Link Building - Brighton SEO.pdf
Fully Automated Link Building - Brighton SEO.pdfFully Automated Link Building - Brighton SEO.pdf
Fully Automated Link Building - Brighton SEO.pdf
 
Shining a light on the dark funnel
Shining a light on the dark funnelShining a light on the dark funnel
Shining a light on the dark funnel
 
Can you trust AI with your content?
Can you trust AI with your content?Can you trust AI with your content?
Can you trust AI with your content?
 
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-Pres.pdf
BrightonSEO-Pres.pdfBrightonSEO-Pres.pdf
BrightonSEO-Pres.pdf
 
Why Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody HardWhy Scaling (Great) Content Is So Bloody Hard
Why Scaling (Great) Content Is So Bloody Hard
 
Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...
Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...
Accessibility, strategy and schema - do they go hand in hand? Beth Barnham Br...
 
GretaMunari - The redemption of content automation
GretaMunari - The redemption of content automationGretaMunari - The redemption of content automation
GretaMunari - The redemption of content automation
 
SEO para E-commerce: Da Intenção à Conversão
SEO para E-commerce: Da Intenção à ConversãoSEO para E-commerce: Da Intenção à Conversão
SEO para E-commerce: Da Intenção à Conversão
 
Brighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless Delays
Brighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless DelaysBrighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless Delays
Brighton SEO Autumn 2021: Core Web Vitals: Loopholes, Flaws, and Endless Delays
 
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)
 
BrightonSEO 2022.pdf
BrightonSEO 2022.pdfBrightonSEO 2022.pdf
BrightonSEO 2022.pdf
 
How to Generate Content that Builds it's Own Links
How to Generate Content that Builds it's Own LinksHow to Generate Content that Builds it's Own Links
How to Generate Content that Builds it's Own Links
 

Similar to Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018

JavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick StoxJavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick Stoxpatrickstox
 
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick StoxSMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stoxpatrickstox
 
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick StoxEverything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stoxpatrickstox
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application developmentzonathen
 
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersSearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersDistilled
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるSadaaki HIRAI
 
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Esteve Castells
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
Optimising Web Application Frontend
Optimising Web Application FrontendOptimising Web Application Frontend
Optimising Web Application Frontendtkramar
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slowdmethvin
 
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Patrick Meenan
 
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?"
Stefan Judis "Did we(b development) lose the right direction?"Fwdays
 
How Search Works
How Search WorksHow Search Works
How Search WorksAhrefs
 
Log analysis and pro use cases for search marketers online version (1)
Log analysis and pro use cases for search marketers online version (1)Log analysis and pro use cases for search marketers online version (1)
Log analysis and pro use cases for search marketers online version (1)David Sottimano
 
How can a data layer help my seo
How can a data layer help my seoHow can a data layer help my seo
How can a data layer help my seoPhil Pearce
 
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
 

Similar to Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018 (20)

JavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick StoxJavaScript SEO Ungagged 2019 Patrick Stox
JavaScript SEO Ungagged 2019 Patrick Stox
 
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick StoxSMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
 
Shifting Gears
Shifting GearsShifting Gears
Shifting Gears
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
 
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick StoxEverything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
 
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersSearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
 
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
Optimising Web Application Frontend
Optimising Web Application FrontendOptimising Web Application Frontend
Optimising Web Application Frontend
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
 
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
 
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?"
Stefan Judis "Did we(b development) lose the right direction?"
 
How Search Works
How Search WorksHow Search Works
How Search Works
 
Log analysis and pro use cases for search marketers online version (1)
Log analysis and pro use cases for search marketers online version (1)Log analysis and pro use cases for search marketers online version (1)
Log analysis and pro use cases for search marketers online version (1)
 
How can a data layer help my seo
How can a data layer help my seoHow can a data layer help my seo
How can a data layer help my 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
 

More from patrickstox

A crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processesA crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processespatrickstox
 
Where to focus your SEO efforts to have the most impact Digital Summit Atlant...
Where to focus your SEO efforts to have the most impact Digital Summit Atlant...Where to focus your SEO efforts to have the most impact Digital Summit Atlant...
Where to focus your SEO efforts to have the most impact Digital Summit Atlant...patrickstox
 
Raleigh seo-most-valuable-seo-presentation-patrick-stox
Raleigh seo-most-valuable-seo-presentation-patrick-stoxRaleigh seo-most-valuable-seo-presentation-patrick-stox
Raleigh seo-most-valuable-seo-presentation-patrick-stoxpatrickstox
 
Page Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick StoxPage Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick Stoxpatrickstox
 
Nofollow UGC Sponsored SEO From Home Patrick Stox Ahrefs
Nofollow UGC Sponsored SEO From Home Patrick Stox AhrefsNofollow UGC Sponsored SEO From Home Patrick Stox Ahrefs
Nofollow UGC Sponsored SEO From Home Patrick Stox Ahrefspatrickstox
 
Nofollow UGC Sponsored SMX West 2020 Patrick Stox
Nofollow UGC Sponsored SMX West 2020 Patrick StoxNofollow UGC Sponsored SMX West 2020 Patrick Stox
Nofollow UGC Sponsored SMX West 2020 Patrick Stoxpatrickstox
 
How to find other affiliates most successful content patrick stox
How to find other affiliates most successful content patrick stoxHow to find other affiliates most successful content patrick stox
How to find other affiliates most successful content patrick stoxpatrickstox
 
Data Visualization for SEO
Data Visualization for SEOData Visualization for SEO
Data Visualization for SEOpatrickstox
 
International SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick Stox
International SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick StoxInternational SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick Stox
International SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick Stoxpatrickstox
 
React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup
React JS and Search Engines - Patrick Stox at Triangle ReactJS MeetupReact JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup
React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetuppatrickstox
 
Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...
Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...
Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...patrickstox
 
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019patrickstox
 
Website Migrations at SMX Munich 2019 - Patrick Stox
Website Migrations at SMX Munich 2019 - Patrick StoxWebsite Migrations at SMX Munich 2019 - Patrick Stox
Website Migrations at SMX Munich 2019 - Patrick Stoxpatrickstox
 
SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick StoxSMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stoxpatrickstox
 
Troubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO Meetup
Troubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO MeetupTroubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO Meetup
Troubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO Meetuppatrickstox
 
AMP for Enterprises - SMX West - Patrick Stox
AMP for Enterprises - SMX West - Patrick StoxAMP for Enterprises - SMX West - Patrick Stox
AMP for Enterprises - SMX West - Patrick Stoxpatrickstox
 
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick StoxPubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stoxpatrickstox
 
Mobile First Indexing - SMX Advanced 2017 - Patrick Stox
Mobile First Indexing - SMX Advanced 2017 - Patrick StoxMobile First Indexing - SMX Advanced 2017 - Patrick Stox
Mobile First Indexing - SMX Advanced 2017 - Patrick Stoxpatrickstox
 
A Technical Look at Content - PUBCON SFIMA 2017 - Patrick Stox
A Technical Look at Content - PUBCON SFIMA 2017 - Patrick StoxA Technical Look at Content - PUBCON SFIMA 2017 - Patrick Stox
A Technical Look at Content - PUBCON SFIMA 2017 - Patrick Stoxpatrickstox
 
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick StoxBetter Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stoxpatrickstox
 

More from patrickstox (20)

A crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processesA crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processes
 
Where to focus your SEO efforts to have the most impact Digital Summit Atlant...
Where to focus your SEO efforts to have the most impact Digital Summit Atlant...Where to focus your SEO efforts to have the most impact Digital Summit Atlant...
Where to focus your SEO efforts to have the most impact Digital Summit Atlant...
 
Raleigh seo-most-valuable-seo-presentation-patrick-stox
Raleigh seo-most-valuable-seo-presentation-patrick-stoxRaleigh seo-most-valuable-seo-presentation-patrick-stox
Raleigh seo-most-valuable-seo-presentation-patrick-stox
 
Page Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick StoxPage Experience Update TMC June 2021 Patrick Stox
Page Experience Update TMC June 2021 Patrick Stox
 
Nofollow UGC Sponsored SEO From Home Patrick Stox Ahrefs
Nofollow UGC Sponsored SEO From Home Patrick Stox AhrefsNofollow UGC Sponsored SEO From Home Patrick Stox Ahrefs
Nofollow UGC Sponsored SEO From Home Patrick Stox Ahrefs
 
Nofollow UGC Sponsored SMX West 2020 Patrick Stox
Nofollow UGC Sponsored SMX West 2020 Patrick StoxNofollow UGC Sponsored SMX West 2020 Patrick Stox
Nofollow UGC Sponsored SMX West 2020 Patrick Stox
 
How to find other affiliates most successful content patrick stox
How to find other affiliates most successful content patrick stoxHow to find other affiliates most successful content patrick stox
How to find other affiliates most successful content patrick stox
 
Data Visualization for SEO
Data Visualization for SEOData Visualization for SEO
Data Visualization for SEO
 
International SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick Stox
International SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick StoxInternational SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick Stox
International SEO: The Weird Technical Parts - Pubcon Vegas 2019 Patrick Stox
 
React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup
React JS and Search Engines - Patrick Stox at Triangle ReactJS MeetupReact JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup
React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup
 
Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...
Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...
Things Google Tries To Correct For You - SMX Advanced 2019 Insights Sessions ...
 
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
 
Website Migrations at SMX Munich 2019 - Patrick Stox
Website Migrations at SMX Munich 2019 - Patrick StoxWebsite Migrations at SMX Munich 2019 - Patrick Stox
Website Migrations at SMX Munich 2019 - Patrick Stox
 
SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick StoxSMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
SMX Advanced 2018 Solving Complex SEO Problems by Patrick Stox
 
Troubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO Meetup
Troubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO MeetupTroubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO Meetup
Troubleshooting Technical SEO Problems - Patrick Stox - Raleigh SEO Meetup
 
AMP for Enterprises - SMX West - Patrick Stox
AMP for Enterprises - SMX West - Patrick StoxAMP for Enterprises - SMX West - Patrick Stox
AMP for Enterprises - SMX West - Patrick Stox
 
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick StoxPubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
 
Mobile First Indexing - SMX Advanced 2017 - Patrick Stox
Mobile First Indexing - SMX Advanced 2017 - Patrick StoxMobile First Indexing - SMX Advanced 2017 - Patrick Stox
Mobile First Indexing - SMX Advanced 2017 - Patrick Stox
 
A Technical Look at Content - PUBCON SFIMA 2017 - Patrick Stox
A Technical Look at Content - PUBCON SFIMA 2017 - Patrick StoxA Technical Look at Content - PUBCON SFIMA 2017 - Patrick Stox
A Technical Look at Content - PUBCON SFIMA 2017 - Patrick Stox
 
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick StoxBetter Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
 

Recently uploaded

ASO Process: What is App Store Optimization
ASO Process: What is App Store OptimizationASO Process: What is App Store Optimization
ASO Process: What is App Store OptimizationAli Raza
 
Digital Marketing Spotlight: Lifecycle Advertising Strategies.pdf
Digital Marketing Spotlight: Lifecycle Advertising Strategies.pdfDigital Marketing Spotlight: Lifecycle Advertising Strategies.pdf
Digital Marketing Spotlight: Lifecycle Advertising Strategies.pdfDemandbase
 
The Skin Games 2024 25 - Sponsorship Deck
The Skin Games 2024 25 - Sponsorship DeckThe Skin Games 2024 25 - Sponsorship Deck
The Skin Games 2024 25 - Sponsorship DeckToluwanimi Balogun
 
Research and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdf
Research and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdfResearch and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdf
Research and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdfVWO
 
Call Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCR
Call Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCRCall Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCR
Call Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCRlizamodels9
 
Exploring The World Of Adult Ad Networks.pdf
Exploring The World Of Adult Ad Networks.pdfExploring The World Of Adult Ad Networks.pdf
Exploring The World Of Adult Ad Networks.pdfmarcuslary231
 
Word Count for Writers: Examples of Word Counts for Sample Genres
Word Count for Writers: Examples of Word Counts for Sample GenresWord Count for Writers: Examples of Word Counts for Sample Genres
Word Count for Writers: Examples of Word Counts for Sample GenresLisa M. Masiello
 
DIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdf
DIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdfDIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdf
DIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdfmayanksharma0441
 
2024 SEO Trends for Business Success (WSA)
2024 SEO Trends for Business Success (WSA)2024 SEO Trends for Business Success (WSA)
2024 SEO Trends for Business Success (WSA)Jomer Gregorio
 
Jai Institute for Parenting Program Guide
Jai Institute for Parenting Program GuideJai Institute for Parenting Program Guide
Jai Institute for Parenting Program Guidekiva6
 
pptx.marketing strategy of tanishq. pptx
pptx.marketing strategy of tanishq. pptxpptx.marketing strategy of tanishq. pptx
pptx.marketing strategy of tanishq. pptxarsathsahil
 
How To Utilize Calculated Properties in your HubSpot Setup
How To Utilize Calculated Properties in your HubSpot SetupHow To Utilize Calculated Properties in your HubSpot Setup
How To Utilize Calculated Properties in your HubSpot Setupssuser4571da
 
DIGITAL MARKETING COURSE IN BTM -Influencer Marketing Strategy
DIGITAL MARKETING COURSE IN BTM -Influencer Marketing StrategyDIGITAL MARKETING COURSE IN BTM -Influencer Marketing Strategy
DIGITAL MARKETING COURSE IN BTM -Influencer Marketing StrategySouvikRay24
 
Fueling A_B experiments with behavioral insights (1).pdf
Fueling A_B experiments with behavioral insights (1).pdfFueling A_B experiments with behavioral insights (1).pdf
Fueling A_B experiments with behavioral insights (1).pdfVWO
 
Mastering SEO in the Evolving AI-driven World
Mastering SEO in the Evolving AI-driven WorldMastering SEO in the Evolving AI-driven World
Mastering SEO in the Evolving AI-driven WorldScalenut
 
GreenSEO April 2024: Join the Green Web Revolution
GreenSEO April 2024: Join the Green Web RevolutionGreenSEO April 2024: Join the Green Web Revolution
GreenSEO April 2024: Join the Green Web RevolutionWilliam Barnes
 
What are the 4 characteristics of CTAs that convert?
What are the 4 characteristics of CTAs that convert?What are the 4 characteristics of CTAs that convert?
What are the 4 characteristics of CTAs that convert?Juan Pineda
 
Common Culture: Paul Willis Symbolic Creativity
Common Culture: Paul Willis Symbolic CreativityCommon Culture: Paul Willis Symbolic Creativity
Common Culture: Paul Willis Symbolic CreativityMonishka Adhikari
 
Inbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon Garside
Inbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon GarsideInbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon Garside
Inbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon Garsiderobwhite630290
 
Master the Art of Digital Recruitment in Asia.pdf
Master the Art of Digital Recruitment in Asia.pdfMaster the Art of Digital Recruitment in Asia.pdf
Master the Art of Digital Recruitment in Asia.pdfHigher Education Marketing
 

Recently uploaded (20)

ASO Process: What is App Store Optimization
ASO Process: What is App Store OptimizationASO Process: What is App Store Optimization
ASO Process: What is App Store Optimization
 
Digital Marketing Spotlight: Lifecycle Advertising Strategies.pdf
Digital Marketing Spotlight: Lifecycle Advertising Strategies.pdfDigital Marketing Spotlight: Lifecycle Advertising Strategies.pdf
Digital Marketing Spotlight: Lifecycle Advertising Strategies.pdf
 
The Skin Games 2024 25 - Sponsorship Deck
The Skin Games 2024 25 - Sponsorship DeckThe Skin Games 2024 25 - Sponsorship Deck
The Skin Games 2024 25 - Sponsorship Deck
 
Research and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdf
Research and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdfResearch and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdf
Research and Discovery Tools for Experimentation - 17 Apr 2024 - v 2.3 (1).pdf
 
Call Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCR
Call Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCRCall Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCR
Call Girls In Aerocity Delhi ❤️8860477959 Good Looking Escorts In 24/7 Delhi NCR
 
Exploring The World Of Adult Ad Networks.pdf
Exploring The World Of Adult Ad Networks.pdfExploring The World Of Adult Ad Networks.pdf
Exploring The World Of Adult Ad Networks.pdf
 
Word Count for Writers: Examples of Word Counts for Sample Genres
Word Count for Writers: Examples of Word Counts for Sample GenresWord Count for Writers: Examples of Word Counts for Sample Genres
Word Count for Writers: Examples of Word Counts for Sample Genres
 
DIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdf
DIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdfDIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdf
DIGITAL MARKETING STRATEGY_INFOGRAPHIC IMAGE.pdf
 
2024 SEO Trends for Business Success (WSA)
2024 SEO Trends for Business Success (WSA)2024 SEO Trends for Business Success (WSA)
2024 SEO Trends for Business Success (WSA)
 
Jai Institute for Parenting Program Guide
Jai Institute for Parenting Program GuideJai Institute for Parenting Program Guide
Jai Institute for Parenting Program Guide
 
pptx.marketing strategy of tanishq. pptx
pptx.marketing strategy of tanishq. pptxpptx.marketing strategy of tanishq. pptx
pptx.marketing strategy of tanishq. pptx
 
How To Utilize Calculated Properties in your HubSpot Setup
How To Utilize Calculated Properties in your HubSpot SetupHow To Utilize Calculated Properties in your HubSpot Setup
How To Utilize Calculated Properties in your HubSpot Setup
 
DIGITAL MARKETING COURSE IN BTM -Influencer Marketing Strategy
DIGITAL MARKETING COURSE IN BTM -Influencer Marketing StrategyDIGITAL MARKETING COURSE IN BTM -Influencer Marketing Strategy
DIGITAL MARKETING COURSE IN BTM -Influencer Marketing Strategy
 
Fueling A_B experiments with behavioral insights (1).pdf
Fueling A_B experiments with behavioral insights (1).pdfFueling A_B experiments with behavioral insights (1).pdf
Fueling A_B experiments with behavioral insights (1).pdf
 
Mastering SEO in the Evolving AI-driven World
Mastering SEO in the Evolving AI-driven WorldMastering SEO in the Evolving AI-driven World
Mastering SEO in the Evolving AI-driven World
 
GreenSEO April 2024: Join the Green Web Revolution
GreenSEO April 2024: Join the Green Web RevolutionGreenSEO April 2024: Join the Green Web Revolution
GreenSEO April 2024: Join the Green Web Revolution
 
What are the 4 characteristics of CTAs that convert?
What are the 4 characteristics of CTAs that convert?What are the 4 characteristics of CTAs that convert?
What are the 4 characteristics of CTAs that convert?
 
Common Culture: Paul Willis Symbolic Creativity
Common Culture: Paul Willis Symbolic CreativityCommon Culture: Paul Willis Symbolic Creativity
Common Culture: Paul Willis Symbolic Creativity
 
Inbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon Garside
Inbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon GarsideInbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon Garside
Inbound Marekting 2.0 - The Paradigm Shift in Marketing | Axon Garside
 
Master the Art of Digital Recruitment in Asia.pdf
Master the Art of Digital Recruitment in Asia.pdfMaster the Art of Digital Recruitment in Asia.pdf
Master the Art of Digital Recruitment in Asia.pdf
 

Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018

  • 1. @patrickstox #DTDconf Troubleshooting SEO for modern JS frameworks
  • 2. @patrickstox #DTDconf Who is Patrick Stox Technical SEO for IBM - Opinions expressed are my own and not those of IBM. I write, mainly for Search Engine Land I speak at some conferences like this one, SMX, Pubcon, TechSEO Boost, etc. Organizer for the Raleigh SEO Meetup (most successful in US) We also run a conference, the Raleigh SEO Conference Also the Beer & SEO Meetup (because beer) 2017 US Search Awards Judge, 2017 UK Search Awards Judge 2018 Interactive Marketing Awards Judge Some of you may know me from the Wix SEO Hero contest (I got disqualified https://beanseohero.com/)
  • 3. @patrickstox #DTDconf Why do SEOs need to learn about JS?
  • 4. @patrickstox #DTDconf WordPress is replacing their TinyMCE editor with Gutenberg built in React The content blocks make it into more of a page builder
  • 5. @patrickstox #DTDconf Be prepared Devs will focus on build and functionality and SEO and accessibility are afterthoughts. Many of these folks are devs who haven’t had to work with SEOs before. Counterpoint: many SEOs haven’t worked with JS or these devs.
  • 7. @patrickstox #DTDconf Find out about the setup, what framework, how is it rendering? • Server-Side Rendering (SSR) – renders on demand from the server • Pre-Rendering – a headless browser records the DOM (Document Object Model) and creates an HTML snapshot. Like SSR, but done pre-deployment. Prerender.io, BromBone, PhantomJS • Client-Side Rendering – rendered in the users browser • Isomorphic or Universal – Serves a rendered version on load but then replaces with JS for subsequent loads.
  • 8. @patrickstox #DTDconf What should I use? • Server-Side Rendering (SSR) – slower TTFB unless you cache, will work for the ~2% of users with JS disabled. • Pre-Rendering – may not serve the latest version, doesn’t allow for personalization, will work for the ~2% of users with JS disabled. • Client-Side Rendering - longer to load but everything is available and can be changed quickly. A loading image is typically used but you may see a blank page. • Isomorphic or Universal - This is probably the best setup, but it can be a lot of resources to load.
  • 9. @patrickstox #DTDconf Can I detect the User Agent and serve an image only to Googlebot? Sort of. It’s technically cloaking, but if the output is the same I would do it. Really, make sure your output is the same.
  • 10. @patrickstox #DTDconf What about Bing or international markets? Fabrice Canel of Bing said at Pubcon Vegas in 2017 that Bing processes JS. (be wary) If you’re in Asian markets you’re out of luck for now. I’d still prefer to use Isomorphic or Universal.
  • 11. @patrickstox #DTDconf URLs Most of the frameworks have a router allowing you to customize URLs. /en/us?Topics%5B0%5D%5B0%5D=cat.topic%3Ainfrastructure Create patterns to match /{language}/{country}/{category}/{slug}
  • 12. @patrickstox #DTDconf They don’t have to change URLs to show different content To change URLs for different content, usually History API and HTML5 pushstate() are used.
  • 13. @patrickstox #DTDconf Links You still need <a href= ng-click, href=“javascript:void(0);” – these won’t be seen as links
  • 14. @patrickstox #DTDconf Noscript If you put something in <noscript> it’s probably going to be ignored.
  • 15. @patrickstox #DTDconf It’s hard to 404 You can add a noindex to any error pages along with a message. Will be treated as a soft- 404. JS redirect to an actual 404 page that returns the status code. Create a 404 Route.
  • 16. @patrickstox #DTDconf Things start to get interesting…
  • 17. @patrickstox #DTDconf View Source gets you this: <!DOCTYPE html><html><head><meta charSet="utf-8" class="next-head"/><script class="next- head">window.NREUM||(NREUM={});NREUM.info = {"agent":"","beacon":"bam.nr-data.net","errorBeacon":"bam.nr- data.net","licenseKey":"2961bc4e3a","applicationID":"103427480","applicationTime":0.347295,"transactionName":"YQdSMU cDXEMAVEUMClhNcxBGFl1dTkBUCQZZD1U=","queueTime":0,"ttGuid":"8aaa5aa3717120","agentToken":null}; (window.NREUM||(NREUM={})).loader_config={xpid:"VQIHUVBSCRABVFJWBQYDXlQ="};window.NREUM||(NREUM={}),_ _nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o||e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(t,e,n){function r(t){try{c.console&&console.log(t)}catch(e){}}var o,i=t("ee"),a=t(20),c={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(c.console=!0,o.indexOf("dev")!==-1&&(c.dev=!0),o.indexOf("nr_dev")!==- 1&&(c.nrDev=!0))}catch(s){}c.nrDev&&i.on("internal-error",function(t){r(t.stack)}),c.dev&&i.on("fn- err",function(t,e,n){r(n.stack)}),c.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(c,function(t,e){return t}).join(", ")))},{}],2:[function(t,e,n){function r(t,e,n,r,c){try{h?h-=1:o(c||new UncaughtException(t,e,n),!0)}catch(f){try{i("ierr",[f,s.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional
  • 18. @patrickstox #DTDconf Source and Google’s Cache Both the source code and Google’s cache are raw HTML, before JS is processed. You can’t rely on these when working with JS.
  • 19. @patrickstox #DTDconf Inspect or Inspect Element Viewing the DOM shows you the HTML after the JS has been processed. If you want to make sure Google sees it, load in the DOM by default without needing an action like click or scroll.
  • 20. @patrickstox #DTDconf Render a page as Googlebot • Google Search Console / Fetch and Render - renders a page with the real Googlebot as either desktop or mobile, lists blocked / unreachable resources. Lets you submit rendered pages to Google search for indexing. This is stricter than the system normally used. • Google Mobile Friendly Test - renders a page with smartphone Googlebot. • Merkle Fetch and Render - fetch & render a page with any bot • Google Rich Results Test shows rendered DOM > Crawlers: Screaming Frog, Sitebulb, Botify
  • 21. @patrickstox #DTDconf To check indexing Search Google: site:domain.com “use a snippet of text from your page”
  • 22. @patrickstox #DTDconf It’s not quite that simple
  • 23. @patrickstox #DTDconf What may be indexed 1st is HTML, before the render happens So you may not find what’s in your site: search yet. You’ll see errors in the GSC HTML Improvements Report. You might need to check the source code vs the DOM to see what will change once the Web Rendering Service (WRS) renders the page. Nofollow added via JS is a bad idea because it may show as follow before rendered. Internal links may not be picked up and added to crawl before the render happens. We setup a test site in October and couldn’t get everything indexed, but we put it live and everything was fine. Google may not want to crawl everything on a test site. If you need the information indexed fast, Use server-side rendering or pre-rendering
  • 24. @patrickstox #DTDconf Experiments in June 2017 – Slack log "user": "U0SB51WPJ", "text": "I requested it and the timing puts 2 different bots there. Mozilla/5.0 (compatible; Googlebot/2.1; +<http://www.google.com/bot.html>) and Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Search Console) Chrome/41.0.2272.118 Safari/537.36", "ts": "1496434137.849731" "user": "U2FNA0DQB", "text": "So it's possible that the same user agent that we know as console - when we request it manually - is the same user agent we'd see when they hit us with the simlauted browser on their own without us manually doing via fetch", "ts": "1496434501.951224" "user": "U0SB51WPJ", "text": "^thinking about this a second, GSC shows how googlebot saw and how a visitor saw the page, so first is google and second is the second tab for how visitors saw the page.", "ts": "1496434516.955902"
  • 26. @patrickstox #DTDconf Confirmed in August https://developers.google.com/search/docs/guides/rendering
  • 27. @patrickstox #DTDconf Highlights: Googlebot and WRS only speaks HTTP/1.x and FTP, with and without TLS. For rendering, Googlebot is stateless: Local Storage, Session Storage, HTTP Cookies are all cleared across page loads Not available: Service Workers, IndexedDB, WebGL, WebSQL, Fetch, ES6 / ECMAScript 6 support ES6 transpile to ES5 for now (thanks Bartosz!) Recommend using feature detection and Polyfills & treat Googlebot like any browser WRS declines permission requests like Camera API, Geolocation API, and Notifications API. Googlebot and WRS continuously analyze and identify resources that don’t contribute to essential page content and may not fetch such resources.
  • 28. @patrickstox #DTDconf Tracking Errors and Debugging https://developers.google.com/search/docs/guides/debug-rendering You can also download Chrome 41.
  • 29. @patrickstox #DTDconf Myth busting Because of this experiment from Max Prin, most people believe that Googlebot will only wait 5 seconds for a page to load. https://maxxeight.com/tests/js-timer/
  • 30. @patrickstox #DTDconf What else we know Mostly crawls from West Coast US (Mountain View). According to Gary Illyes at SMX Advanced they don’t throttle speeds when checking mobile sites. They are very aggressive with caching everything (you may want to use file versioning). In fact, because of the caching and you know being a bot and all, they actually run things as fast as they can with a sped up clock. Check out this post from Tom Anthony http://www.tomanthony.co.uk/blog/googlebot-javascript-random/ Mobile Googlebot's screen size is 431 X 731 and Google resizes to 12,140 pixels high, while the desktop version is 768 X 1024 but Google only resizes to 9,307 pixels high. Check out JR Oakes https://codeseo.io/console-log-hacking-for-googlebot/ This can screw with you in GSC Fetch and Render if you resize images based on height.
  • 31. @patrickstox #DTDconf Thank You, that’s it for me. Now ask Bartosz all of your questions.

Editor's Notes

  1. Devs love JS and all that goes with it More websites are transitioning
  2. SSR on-demand TTFB is slower Headless browser that executes a page and records the DOM (HTML Snapshot). can be old version. Doesn't allow for personalization. It’s pretty much the same concept as SSR except it’s done pre-deployment in your development environment, not a live server. Prerender.io, brombone, phantomjs