SlideShare a Scribd company logo
1 of 26
Patrick Stox | @patrickstox
Patrick Stox | @patrickstox
• 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 SMX, Pubcon, TechSEO Boost
• Organizer for the Raleigh SEO Meetup (most successful in US) and
the Beer & SEO Meetup
• We also run a conference, the Raleigh SEO Conference
• Judge: 2017/18/19 US Search Awards, 2017/18/19 UK Search
Awards, 2018/19 Interactive Marketing Awards, 2019 SEMrush AU
Search Awards
• Founder Technical SEO Slack Group
• Moderator /r/TechSEO on Reddit
• Finalist for SEO Speaker of the Year and SEO Contributor of the Year
- 2018 Search Engine Land Awards.
• On a lot of top SEO lists like 140 of Today's Top SEO Experts to
Follow.
• Part of SERoundtable’s Honor an SEO series
Who is Patrick Stox?
Patrick Stox | @patrickstox
Why I’m Here:
Patrick Stox | @patrickstox
Patrick Stox | @patrickstox
Googlebot Before
Chrome 41
Polyfills
ES5
https://webmasters.googleblog.com/2019/05/the-new-evergreen-googlebot.html
https://webmasters.googleblog.com/2019/08/evergreen-googlebot-in-testing-
tools.html
Googlebot Now
Evergreen
All newer features should work
Tools are updated also
Patrick Stox | @patrickstox
Content Initially Indexed is HTML Snapshot
Source Google: https://developers.google.com/search/docs/guides/javascript-seo-basics
Patrick Stox | @patrickstox
Render Options
Source Google: https://developers.google.com/web/updates/2019/02/rendering-
on-the-web
Patrick Stox | @patrickstox
Google Recommends Dynamic Rendering
Dynamic rendering means switching between client-side rendered and pre-
rendered content for specific user agents.
Options: Puppeteer, Rendertron, prerender.io
Source Google: https://developers.google.com/search/docs/guides/dynamic-
rendering
Patrick Stox | @patrickstox
Google’s View of JS Devs
Patrick Stox | @patrickstox
For SEOs: Cloaking
Using dynamic rendering to serve completely different
content to users and crawlers can be considered cloaking
Cloaking refers to the practice of presenting different
content or URLs to human users and search engines.
Cloaking is considered a violation of
Google’s Webmaster Guidelines because it provides our
users with different results than they expected.
https://support.google.com/webmasters/answer/66355?hl
=en
Patrick Stox | @patrickstox
Testing
Don’t use Google’s cache. That’s an HTML snapshot processed by your browser.
You all know you shouldn’t use view-source, many SEOs do not yet. Help them.
Do use Mobile Friendly Test https://search.google.com/test/mobile-friendly
URL Inspection Tool https://search.google.com/search-console
-Show loaded/blocked resources, console output and exceptions, rendered DOM
Rich Results (desktop): https://search.google.com/test/rich-results
Google: site:whatever.com "part of your text“ to check if text is seen
Patrick Stox | @patrickstox
Other Search Engines
Bing has the capability, but not the scale. They mostly use this for top pages and
web spam. **personal note that they may be ramping this up, but they haven’t
announced anything yet.
Yandex = limited
Most Asian Search Engines = no. I’ve seen nothing from Baidu, Naver, etc.
Patrick Stox | @patrickstox
Need To Know About Googlebot
Declines user permission requests
Stateless, doesn't navigate
• Local Storage and Session Storage data are cleared across page loads.
• HTTP Cookies are cleared across page loads.
Use feature detection to identify supported APIs and capabilities
Make sure your web components are search-friendly:
• To encapsulate and hide implementation details, use shadow DOM.
• Put your content into light DOM whenever possible.
https://developers.google.com/search/docs/guides/fix-search-javascript
Patrick Stox | @patrickstox
Need To Know About Googlebot
Will hit APIs if it’s allowed
They need to access resources (like JavaScript), don’t block them
Between the initial snapshot and the rendered version they will choose the most
restrictive statements (nofollow vs follow, noindex vs index, etc)
Some pages take longer to be processed than others:
https://webmasters.googleblog.com/2017/01/what-crawl-budget-means-for-
googlebot.html
Patrick Stox | @patrickstox
Need To Know About Googlebot
Internal links may not be picked up and added to crawl before the render
happens
Mobile First: https://webmasters.googleblog.com/2018/03/rolling-out-mobile-first-
indexing.html
Patrick Stox | @patrickstox
You May See Another Domain Indexed
If you’re using an app shell model pages may be folded together in their index.
Basically the html looked the same as something else so they figured the pages
were duplicate and only wanted 1 record in their index. This should resolve once
it’s been through the renderer.
Patrick Stox | @patrickstox
Please
Don't use hash routing
Load content by default without needing an action like click, mouseover, scroll
Make sure links are links: <a href=“/good-link”>Will be crawled</a>
• No
Patrick Stox | @patrickstox
Please Clean URLs
Change URLs for different content: History API and HTML5 pushstate()
Use your router:
Clean your URLs, none of this:
?Topics%5B0%5D%5B0%5D=cat.topic%3Ainfrastructure
Patrick Stox | @patrickstox
Use a 404 When Possible
Help your SEOs understand how this works. JS can’t throw a 404, but you can:
JS redirect or route to 404 page on a server with an actual 404 response.
Not as great: You can add a noindex to any error pages along with a message
like “404 Page Not Found”. Will be treated as a soft-404 even with status code
200 shown.
Lots of analytics may fire and lots of SEO tools + other tools don’t look for soft-
404s, so not having this status code when looking at data causes data issues.
Patrick Stox | @patrickstox
Make a Sitemap
Search engines like Google read this file to more intelligently crawl your site. A
sitemap tells the crawler which files you think are important in your site.
React Router Sitemap:
https://www.npmjs.com/package/react-router-sitemap
Patrick Stox | @patrickstox
As an SEO
https://www.npmjs.com/package/react-helmet
Patrick Stox | @patrickstox
Other things to know about
Mostly crawls from West Coast US (Mountain View). Some crawling
internationally.
They are very aggressive with caching everything (you may want to use file
versioning). This can lead to some impossible states being indexed if parts of old
files are cached.
They download pages and download resources, but all of this is stored and run
as fast as possible as “rendering”.
Patrick Stox | @patrickstox
Patrick Stox | @patrickstox
Other things to know about
Googlebot renders with a long viewport. Mobile 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.
Credit to JR Oakes @jroakes https://codeseo.io/console-log-
hacking-for-googlebot/
Patrick Stox | @patrickstox
Resources
SEO Mythbusting Series + JS SEO Series
https://www.youtube.com/channel/UCWf2ZlNsCGDS89VBF_awNvA
JS SEO Basics: https://developers.google.com/search/docs/guides/javascript-
seo-basics
Dynamic Rendering: https://developers.google.com/search/docs/guides/dynamic-
rendering
Mobile Friendly Test: https://search.google.com/test/mobile-friendly
Google Search Console: https://search.google.com/search-console
JavaScript Working Group: https://groups.google.com/forum/#!forum/js-sites-wg
Patrick Stox | @patrickstox

More Related Content

What's hot

What's hot (19)

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
 
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
 
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
 
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...
 
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
 
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
 
Google's Search Signals For Page Experience - SMX Advanced 2021 Patrick Stox
Google's Search Signals For Page Experience - SMX Advanced 2021 Patrick StoxGoogle's Search Signals For Page Experience - SMX Advanced 2021 Patrick Stox
Google's Search Signals For Page Experience - SMX Advanced 2021 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
 
Enterprise SEO Chaos - SMX Advanced 2016
Enterprise SEO Chaos - SMX Advanced 2016Enterprise SEO Chaos - SMX Advanced 2016
Enterprise SEO Chaos - SMX Advanced 2016
 
Nofollow, UGC, and Sponsored Attributes
Nofollow, UGC, and Sponsored AttributesNofollow, UGC, and Sponsored Attributes
Nofollow, UGC, and Sponsored Attributes
 
Raleigh SEO Meetup April 2018 - Dan Hinckley
Raleigh SEO Meetup April 2018 - Dan HinckleyRaleigh SEO Meetup April 2018 - Dan Hinckley
Raleigh SEO Meetup April 2018 - Dan Hinckley
 
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
 
NLP Sitemap SMX 2016 Patrick Stox Latest In Advanced Technical SEO
NLP Sitemap SMX 2016 Patrick Stox Latest In Advanced Technical SEONLP Sitemap SMX 2016 Patrick Stox Latest In Advanced Technical SEO
NLP Sitemap SMX 2016 Patrick Stox Latest In Advanced Technical SEO
 
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
 
Nofollow UGC Sponsored SEOFromHome Patrick Stox Ahrefs
Nofollow UGC Sponsored SEOFromHome Patrick Stox AhrefsNofollow UGC Sponsored SEOFromHome Patrick Stox Ahrefs
Nofollow UGC Sponsored SEOFromHome Patrick Stox Ahrefs
 
Data Visualization for SEO
Data Visualization for SEOData Visualization for SEO
Data Visualization for SEO
 
Everyone Screws Up HTTPS
Everyone Screws Up HTTPSEveryone Screws Up HTTPS
Everyone Screws Up HTTPS
 
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
 
Using Competitive Gap Analyses to Discover Low-Hanging Fruit
Using Competitive Gap Analyses to Discover Low-Hanging FruitUsing Competitive Gap Analyses to Discover Low-Hanging Fruit
Using Competitive Gap Analyses to Discover Low-Hanging Fruit
 

Similar to React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup

Tutorial Google For Webmasters
Tutorial Google For WebmastersTutorial Google For Webmasters
Tutorial Google For Webmasters
mamos
 
Google for webmasters
Google for webmastersGoogle for webmasters
Google for webmasters
MK-D Activo
 

Similar to React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup (20)

How Search Works
How Search WorksHow Search Works
How Search Works
 
Advanced Seo Web Development Tech Ed 2008
Advanced Seo Web Development Tech Ed 2008Advanced Seo Web Development Tech Ed 2008
Advanced Seo Web Development Tech Ed 2008
 
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
 
Advanced SEO for Developers (Mix08)
Advanced SEO for Developers (Mix08)Advanced SEO for Developers (Mix08)
Advanced SEO for Developers (Mix08)
 
Future of Search Engine Factors, AMP, On-Page Key to Success
Future of Search Engine Factors, AMP, On-Page Key to SuccessFuture of Search Engine Factors, AMP, On-Page Key to Success
Future of Search Engine Factors, AMP, On-Page Key to Success
 
Seo for Engineers
Seo for EngineersSeo for Engineers
Seo for Engineers
 
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
 
The Technical SEO Full Course how to do
The Technical SEO  Full Course  how to doThe Technical SEO  Full Course  how to do
The Technical SEO Full Course how to do
 
Technial SEO
Technial SEOTechnial SEO
Technial SEO
 
Seo tutorial
Seo tutorialSeo tutorial
Seo tutorial
 
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
 
BITM3730 11-14.pptx
BITM3730 11-14.pptxBITM3730 11-14.pptx
BITM3730 11-14.pptx
 
Maximising Online Resource Effectiveness Workshop Session 2/8 Conventional SE...
Maximising Online Resource Effectiveness Workshop Session 2/8 Conventional SE...Maximising Online Resource Effectiveness Workshop Session 2/8 Conventional SE...
Maximising Online Resource Effectiveness Workshop Session 2/8 Conventional SE...
 
SEO: SCAmore
SEO: SCAmoreSEO: SCAmore
SEO: SCAmore
 
Make Web Not War 2010
Make Web Not War 2010Make Web Not War 2010
Make Web Not War 2010
 
Advanced data-driven technical SEO - SMX London 2019
Advanced data-driven technical SEO - SMX London 2019Advanced data-driven technical SEO - SMX London 2019
Advanced data-driven technical SEO - SMX London 2019
 
White Hat Cloaking
White Hat CloakingWhite Hat Cloaking
White Hat Cloaking
 
BrightonSEO
BrightonSEOBrightonSEO
BrightonSEO
 
Tutorial Google For Webmasters
Tutorial Google For WebmastersTutorial Google For Webmasters
Tutorial Google For Webmasters
 
Google for webmasters
Google for webmastersGoogle for webmasters
Google for webmasters
 

More from patrickstox

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
patrickstox
 

More from patrickstox (9)

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
 
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
 
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
 
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
 
Google Tag Manager Can Do What
Google Tag Manager Can Do WhatGoogle Tag Manager Can Do What
Google Tag Manager Can Do What
 
Link Reclamation Strategies
Link Reclamation Strategies Link Reclamation Strategies
Link Reclamation Strategies
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

React JS and Search Engines - Patrick Stox at Triangle ReactJS Meetup

  • 1. Patrick Stox | @patrickstox
  • 2. Patrick Stox | @patrickstox • 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 SMX, Pubcon, TechSEO Boost • Organizer for the Raleigh SEO Meetup (most successful in US) and the Beer & SEO Meetup • We also run a conference, the Raleigh SEO Conference • Judge: 2017/18/19 US Search Awards, 2017/18/19 UK Search Awards, 2018/19 Interactive Marketing Awards, 2019 SEMrush AU Search Awards • Founder Technical SEO Slack Group • Moderator /r/TechSEO on Reddit • Finalist for SEO Speaker of the Year and SEO Contributor of the Year - 2018 Search Engine Land Awards. • On a lot of top SEO lists like 140 of Today's Top SEO Experts to Follow. • Part of SERoundtable’s Honor an SEO series Who is Patrick Stox?
  • 3. Patrick Stox | @patrickstox Why I’m Here:
  • 4. Patrick Stox | @patrickstox
  • 5. Patrick Stox | @patrickstox Googlebot Before Chrome 41 Polyfills ES5 https://webmasters.googleblog.com/2019/05/the-new-evergreen-googlebot.html https://webmasters.googleblog.com/2019/08/evergreen-googlebot-in-testing- tools.html Googlebot Now Evergreen All newer features should work Tools are updated also
  • 6. Patrick Stox | @patrickstox Content Initially Indexed is HTML Snapshot Source Google: https://developers.google.com/search/docs/guides/javascript-seo-basics
  • 7. Patrick Stox | @patrickstox Render Options Source Google: https://developers.google.com/web/updates/2019/02/rendering- on-the-web
  • 8. Patrick Stox | @patrickstox Google Recommends Dynamic Rendering Dynamic rendering means switching between client-side rendered and pre- rendered content for specific user agents. Options: Puppeteer, Rendertron, prerender.io Source Google: https://developers.google.com/search/docs/guides/dynamic- rendering
  • 9. Patrick Stox | @patrickstox Google’s View of JS Devs
  • 10. Patrick Stox | @patrickstox For SEOs: Cloaking Using dynamic rendering to serve completely different content to users and crawlers can be considered cloaking Cloaking refers to the practice of presenting different content or URLs to human users and search engines. Cloaking is considered a violation of Google’s Webmaster Guidelines because it provides our users with different results than they expected. https://support.google.com/webmasters/answer/66355?hl =en
  • 11. Patrick Stox | @patrickstox Testing Don’t use Google’s cache. That’s an HTML snapshot processed by your browser. You all know you shouldn’t use view-source, many SEOs do not yet. Help them. Do use Mobile Friendly Test https://search.google.com/test/mobile-friendly URL Inspection Tool https://search.google.com/search-console -Show loaded/blocked resources, console output and exceptions, rendered DOM Rich Results (desktop): https://search.google.com/test/rich-results Google: site:whatever.com "part of your text“ to check if text is seen
  • 12. Patrick Stox | @patrickstox Other Search Engines Bing has the capability, but not the scale. They mostly use this for top pages and web spam. **personal note that they may be ramping this up, but they haven’t announced anything yet. Yandex = limited Most Asian Search Engines = no. I’ve seen nothing from Baidu, Naver, etc.
  • 13. Patrick Stox | @patrickstox Need To Know About Googlebot Declines user permission requests Stateless, doesn't navigate • Local Storage and Session Storage data are cleared across page loads. • HTTP Cookies are cleared across page loads. Use feature detection to identify supported APIs and capabilities Make sure your web components are search-friendly: • To encapsulate and hide implementation details, use shadow DOM. • Put your content into light DOM whenever possible. https://developers.google.com/search/docs/guides/fix-search-javascript
  • 14. Patrick Stox | @patrickstox Need To Know About Googlebot Will hit APIs if it’s allowed They need to access resources (like JavaScript), don’t block them Between the initial snapshot and the rendered version they will choose the most restrictive statements (nofollow vs follow, noindex vs index, etc) Some pages take longer to be processed than others: https://webmasters.googleblog.com/2017/01/what-crawl-budget-means-for- googlebot.html
  • 15. Patrick Stox | @patrickstox Need To Know About Googlebot Internal links may not be picked up and added to crawl before the render happens Mobile First: https://webmasters.googleblog.com/2018/03/rolling-out-mobile-first- indexing.html
  • 16. Patrick Stox | @patrickstox You May See Another Domain Indexed If you’re using an app shell model pages may be folded together in their index. Basically the html looked the same as something else so they figured the pages were duplicate and only wanted 1 record in their index. This should resolve once it’s been through the renderer.
  • 17. Patrick Stox | @patrickstox Please Don't use hash routing Load content by default without needing an action like click, mouseover, scroll Make sure links are links: <a href=“/good-link”>Will be crawled</a> • No
  • 18. Patrick Stox | @patrickstox Please Clean URLs Change URLs for different content: History API and HTML5 pushstate() Use your router: Clean your URLs, none of this: ?Topics%5B0%5D%5B0%5D=cat.topic%3Ainfrastructure
  • 19. Patrick Stox | @patrickstox Use a 404 When Possible Help your SEOs understand how this works. JS can’t throw a 404, but you can: JS redirect or route to 404 page on a server with an actual 404 response. Not as great: You can add a noindex to any error pages along with a message like “404 Page Not Found”. Will be treated as a soft-404 even with status code 200 shown. Lots of analytics may fire and lots of SEO tools + other tools don’t look for soft- 404s, so not having this status code when looking at data causes data issues.
  • 20. Patrick Stox | @patrickstox Make a Sitemap Search engines like Google read this file to more intelligently crawl your site. A sitemap tells the crawler which files you think are important in your site. React Router Sitemap: https://www.npmjs.com/package/react-router-sitemap
  • 21. Patrick Stox | @patrickstox As an SEO https://www.npmjs.com/package/react-helmet
  • 22. Patrick Stox | @patrickstox Other things to know about Mostly crawls from West Coast US (Mountain View). Some crawling internationally. They are very aggressive with caching everything (you may want to use file versioning). This can lead to some impossible states being indexed if parts of old files are cached. They download pages and download resources, but all of this is stored and run as fast as possible as “rendering”.
  • 23. Patrick Stox | @patrickstox
  • 24. Patrick Stox | @patrickstox Other things to know about Googlebot renders with a long viewport. Mobile 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. Credit to JR Oakes @jroakes https://codeseo.io/console-log- hacking-for-googlebot/
  • 25. Patrick Stox | @patrickstox Resources SEO Mythbusting Series + JS SEO Series https://www.youtube.com/channel/UCWf2ZlNsCGDS89VBF_awNvA JS SEO Basics: https://developers.google.com/search/docs/guides/javascript- seo-basics Dynamic Rendering: https://developers.google.com/search/docs/guides/dynamic- rendering Mobile Friendly Test: https://search.google.com/test/mobile-friendly Google Search Console: https://search.google.com/search-console JavaScript Working Group: https://groups.google.com/forum/#!forum/js-sites-wg
  • 26. Patrick Stox | @patrickstox