Dave Sottimano | @dsottimano | #TechSEOBoost Dave Sottimano TechSEO Boost 2019 Apps Script for SEO
Dave Sottimano | @dsottimano | #TechSEOBoost We’re going to talk about.. JavaScript!
Dave Sottimano | @dsottimano | #TechSEOBoost and Spreadsheets!
Dave Sottimano | @dsottimano | #TechSEOBoost +
Dave Sottimano | @dsottimano | #TechSEOBoost Meet the new “you”Results not guaranteed. Actually, no matter how much you do apps script, you’ll probably never be as jacked as this guy.
Dave Sottimano | @dsottimano | #TechSEOBoost Am I masochistic? Why not just use Python?
Dave Sottimano | @dsottimano | #TechSEOBoost To make programming accessible in everyday tools. Generated Humans Credit: thispersondoesnotexist.com
Dave Sottimano | @dsottimano | #TechSEOBoost Because I don’t like your interface
Dave Sottimano | @dsottimano | #TechSEOBoost Because you’re going to do this anyway.
Dave Sottimano | @dsottimano | #TechSEOBoost Serverless Free Integrated
Dave Sottimano | @dsottimano | #TechSEOBoost Magic lives here
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost My problem with spreadsheets
Dave Sottimano | @dsottimano | #TechSEOBoost Generic formulas become a mess. =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTIT UTE(C5,"the",""),"Hat",""),"written",""),"@","")
Dave Sottimano | @dsottimano | #TechSEOBoost What if you could do this? =SUBSTITUTE_ALL(a1,“the,Hat,@,written”,””) https://moz.com/blog/search-volume-data-excel - Psst, this isn’t new. Richard Baxter in 2011
Dave Sottimano | @dsottimano | #TechSEOBoost How do you parse the path here? https://www.local10.com/news/weird- news/burglar-wears-clear-plastic-wrapper-as- disguise-to-rob-gamestop
Dave Sottimano | @dsottimano | #TechSEOBoost Not fit for purpose, hard to modify and explain. =MID(A1,FIND("*",SUBSTITUTE(A1,"/","*",LEN(A1) -LEN(SUBSTITUTE(A1,"/",""))))+1,LEN(A1))
Dave Sottimano | @dsottimano | #TechSEOBoost How about this instead? =PARSE_URI(a2,”path”) burglar-wears-clear-plastic-wrapper-as- disguise-to-rob-gamestop
Dave Sottimano | @dsottimano | #TechSEOBoost How do you GET Google search results?
Dave Sottimano | @dsottimano | #TechSEOBoost Skip the middleman
Dave Sottimano | @dsottimano | #TechSEOBoost cool? cool
Dave Sottimano | @dsottimano | #TechSEOBoost JavaScript functions are Custom formulas. function COMBINE_STRINGS(string1,string2){ return string1 + string2 } Note: Apps Script is ECMA 2015
Dave Sottimano | @dsottimano | #TechSEOBoost Now, we can call the function as a formula! Note: Apps Script is ECMA 2015
Dave Sottimano | @dsottimano | #TechSEOBoost There’s thousands of functions ready to be adapted.
Dave Sottimano | @dsottimano | #TechSEOBoost IT’S JUST JAVASCRIPT… IN A SPREADSHEET...
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost 1. Sensor to monitor garden 2. Store in Google sheets 3. Apps script email if the soil is too dry 4. Set event in calendar to water plants
Dave Sottimano | @dsottimano | #TechSEOBoost pulse.appsscript.info is where the cool kids are.
Dave Sottimano | @dsottimano | #TechSEOBoost FINE, GO PLAY WITH YOUR 100 ROWS OF DATA.
Dave Sottimano | @dsottimano | #TechSEOBoost gsuite.google.com/campaigns/index__sheets-connectedsheet.html
Dave Sottimano | @dsottimano | #TechSEOBoost Code for this presentation! Make a copy of the spreadsheet to access the functions: bit.do/techseo Or get the code: bit.do/techseo-code
Dave Sottimano | @dsottimano | #TechSEOBoost Clean and manipulate data quickly in sheets
Dave Sottimano | @dsottimano | #TechSEOBoost Parse URLs quickly =PARSE_URI(URL,PART) https://www.example.com/directory/path-to-page.pdf Root: example.com Subdomain: www.example.com Path: /directory/path-to-page.pdf File: path-to-page.pdf
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost Don’t remember the formula? Just start typing. Powered by JS Doc
Dave Sottimano | @dsottimano | #TechSEOBoost example.com/directory/567/~!page.html example.com/directory/56789/!page.html example.com/@directory/56789/~page.php =SUBSTITUTE_ALL(“@,.html,!,.php”,a1)
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost Combine multiple columns to one column?
Dave Sottimano | @dsottimano | #TechSEOBoost =COMBINE_TO_COLUMN(A1:B200)
Dave Sottimano | @dsottimano | #TechSEOBoost Leverage any API (UrlFetchApp)
Dave Sottimano | @dsottimano | #TechSEOBoost Scrape Google search results reliably Get an API key first, serpapi.com
Dave Sottimano | @dsottimano | #TechSEOBoost In the code, add your API Key
Dave Sottimano | @dsottimano | #TechSEOBoost =GOOGLE_SEARCH(“tech seo boost”)
Dave Sottimano | @dsottimano | #TechSEOBoost =GOOGLE_FEATURED_SNIPPET(“why is the sky blue”)
Dave Sottimano | @dsottimano | #TechSEOBoost Create your own auto- suggest bit.do/g-suggest
Dave Sottimano | @dsottimano | #TechSEOBoost Simple and free. Create your own interface bit.do/g-suggest
Dave Sottimano | @dsottimano | #TechSEOBoost Use Python from a Google Cloud Function (API) 2 gb, Python 3.7 serverless Python through the GCF https://cloud.google.com/functio ns/docs/quickstart-python
Dave Sottimano | @dsottimano | #TechSEOBoost Limitless applications via APIs Cloud based headless browsers: Proxycrawl.com Phantomjscloud.com Semrush API Library https://opensourceseo.org/semr ush-api-library-google-sheets- google-scripts/
Dave Sottimano | @dsottimano | #TechSEOBoost Packaging through add-ons and Document automation
Dave Sottimano | @dsottimano | #TechSEOBoost “Private add-ons are only visible to users in the same domain as the add-on publishing account. They can't be installed by outside users. Private add-ons do not require add-on review” https://developers.google.com/gsuite/add-ons/how-tos/publish-overview
Dave Sottimano | @dsottimano | #TechSEOBoost Develop for your organization through private add-ons
Dave Sottimano | @dsottimano | #TechSEOBoost Private add-ons
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost Solving SEO Problems with Apps Script
Dave Sottimano | @dsottimano | #TechSEOBoost Check if indexed & Find 301 targets.
Dave Sottimano | @dsottimano | #TechSEOBoost =GOOGLE_SEARCH(“https://www.google.com”) Query parameter is the verbatim URL
Dave Sottimano | @dsottimano | #TechSEOBoost Same function. Better way of running it
Dave Sottimano | @dsottimano | #TechSEOBoost =GOOGLE_SEARCH(“site:seland.com python”) Find best matched possible 301 targets
Dave Sottimano | @dsottimano | #TechSEOBoost Cache copies of pages & Change monitoring.
Dave Sottimano | @dsottimano | #TechSEOBoost To save, add https://web.archive.org/save/ to the start of a URL A GET request to this will save the page! https://web.archive.org/save/https://opensourceseo.org/ Save Pages > Chron > Import Captures > Compare
Dave Sottimano | @dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare In the code, add your URLs into the array
Dave Sottimano | @dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
Dave Sottimano | @dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
Dave Sottimano | @dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
Dave Sottimano | @dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
Dave Sottimano | @dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
Dave Sottimano | @dsottimano | #TechSEOBoost Machine learning classification < 10 minutes
Dave Sottimano | @dsottimano | #TechSEOBoost BIGML.COM For free. Accessible to any Google sheet. https://bigml.com/features/class ification-regression
Dave Sottimano | @dsottimano | #TechSEOBoost Training Data > Create Model > Classify Keyword data from Semrush Nytimes.com = informational Yelp.com = local Amazon.com = transactional
Dave Sottimano | @dsottimano | #TechSEOBoost Training Data > Create Model > Classify
Dave Sottimano | @dsottimano | #TechSEOBoost Training Data > Create Model > Classify
Dave Sottimano | @dsottimano | #TechSEOBoost Install the Bigml.com addon for sheets
Dave Sottimano | @dsottimano | #TechSEOBoost Install the Bigml.com addon for sheets
Dave Sottimano | @dsottimano | #TechSEOBoost
Dave Sottimano | @dsottimano | #TechSEOBoost Training Data > Create Model > Classify
Dave Sottimano | @dsottimano | #TechSEOBoost Where to go from here?
Dave Sottimano | @dsottimano | #TechSEOBoost Want to learn JavaScript? JavaScript track on Freecodecamp.org Book: JavaScript - the good parts
Dave Sottimano | @dsottimano | #TechSEOBoost Want to learn Apps Script? Follow this list on Twitter Stack Overflow Google documentation Starter guide on opensourceseo.org Ben Collin’s guides
Dave Sottimano | @dsottimano | #TechSEOBoost Hire an Apps Script developer?
Dave Sottimano | @dsottimano | #TechSEOBoost Will Apps Script Upgrade?
Dave Sottimano | @dsottimano | #TechSEOBoost Currently building seotoolsforsheets.com VP @ Keyphraseology.com –Dave Sottimano Twitter: @dsottimano
Dave Sottimano | @dsottimano | #TechSEOBoost Image credits https://www.reddit.com/user/nwsm/ https://giphy.com/gifs/whoa-hd-tim-and-eric-xT0xeJpnrWC4XWblEk/media

TechSEO Boost - Apps script for SEOs

  • 1.
    Dave Sottimano |@dsottimano | #TechSEOBoost Dave Sottimano TechSEO Boost 2019 Apps Script for SEO
  • 2.
    Dave Sottimano |@dsottimano | #TechSEOBoost We’re going to talk about.. JavaScript!
  • 3.
    Dave Sottimano |@dsottimano | #TechSEOBoost and Spreadsheets!
  • 4.
    Dave Sottimano |@dsottimano | #TechSEOBoost +
  • 5.
    Dave Sottimano |@dsottimano | #TechSEOBoost Meet the new “you”Results not guaranteed. Actually, no matter how much you do apps script, you’ll probably never be as jacked as this guy.
  • 6.
    Dave Sottimano |@dsottimano | #TechSEOBoost Am I masochistic? Why not just use Python?
  • 7.
    Dave Sottimano |@dsottimano | #TechSEOBoost To make programming accessible in everyday tools. Generated Humans Credit: thispersondoesnotexist.com
  • 8.
    Dave Sottimano |@dsottimano | #TechSEOBoost Because I don’t like your interface
  • 9.
    Dave Sottimano |@dsottimano | #TechSEOBoost Because you’re going to do this anyway.
  • 10.
    Dave Sottimano |@dsottimano | #TechSEOBoost Serverless Free Integrated
  • 11.
    Dave Sottimano |@dsottimano | #TechSEOBoost Magic lives here
  • 12.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 13.
    Dave Sottimano |@dsottimano | #TechSEOBoost My problem with spreadsheets
  • 14.
    Dave Sottimano |@dsottimano | #TechSEOBoost Generic formulas become a mess. =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTIT UTE(C5,"the",""),"Hat",""),"written",""),"@","")
  • 15.
    Dave Sottimano |@dsottimano | #TechSEOBoost What if you could do this? =SUBSTITUTE_ALL(a1,“the,Hat,@,written”,””) https://moz.com/blog/search-volume-data-excel - Psst, this isn’t new. Richard Baxter in 2011
  • 16.
    Dave Sottimano |@dsottimano | #TechSEOBoost How do you parse the path here? https://www.local10.com/news/weird- news/burglar-wears-clear-plastic-wrapper-as- disguise-to-rob-gamestop
  • 17.
    Dave Sottimano |@dsottimano | #TechSEOBoost Not fit for purpose, hard to modify and explain. =MID(A1,FIND("*",SUBSTITUTE(A1,"/","*",LEN(A1) -LEN(SUBSTITUTE(A1,"/",""))))+1,LEN(A1))
  • 18.
    Dave Sottimano |@dsottimano | #TechSEOBoost How about this instead? =PARSE_URI(a2,”path”) burglar-wears-clear-plastic-wrapper-as- disguise-to-rob-gamestop
  • 19.
    Dave Sottimano |@dsottimano | #TechSEOBoost How do you GET Google search results?
  • 20.
    Dave Sottimano |@dsottimano | #TechSEOBoost Skip the middleman
  • 21.
    Dave Sottimano |@dsottimano | #TechSEOBoost cool? cool
  • 22.
    Dave Sottimano |@dsottimano | #TechSEOBoost JavaScript functions are Custom formulas. function COMBINE_STRINGS(string1,string2){ return string1 + string2 } Note: Apps Script is ECMA 2015
  • 23.
    Dave Sottimano |@dsottimano | #TechSEOBoost Now, we can call the function as a formula! Note: Apps Script is ECMA 2015
  • 24.
    Dave Sottimano |@dsottimano | #TechSEOBoost There’s thousands of functions ready to be adapted.
  • 25.
    Dave Sottimano |@dsottimano | #TechSEOBoost IT’S JUST JAVASCRIPT… IN A SPREADSHEET...
  • 26.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 27.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 28.
    Dave Sottimano |@dsottimano | #TechSEOBoost 1. Sensor to monitor garden 2. Store in Google sheets 3. Apps script email if the soil is too dry 4. Set event in calendar to water plants
  • 29.
    Dave Sottimano |@dsottimano | #TechSEOBoost pulse.appsscript.info is where the cool kids are.
  • 30.
    Dave Sottimano |@dsottimano | #TechSEOBoost FINE, GO PLAY WITH YOUR 100 ROWS OF DATA.
  • 31.
    Dave Sottimano |@dsottimano | #TechSEOBoost gsuite.google.com/campaigns/index__sheets-connectedsheet.html
  • 32.
    Dave Sottimano |@dsottimano | #TechSEOBoost Code for this presentation! Make a copy of the spreadsheet to access the functions: bit.do/techseo Or get the code: bit.do/techseo-code
  • 33.
    Dave Sottimano |@dsottimano | #TechSEOBoost Clean and manipulate data quickly in sheets
  • 34.
    Dave Sottimano |@dsottimano | #TechSEOBoost Parse URLs quickly =PARSE_URI(URL,PART) https://www.example.com/directory/path-to-page.pdf Root: example.com Subdomain: www.example.com Path: /directory/path-to-page.pdf File: path-to-page.pdf
  • 35.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 36.
    Dave Sottimano |@dsottimano | #TechSEOBoost Don’t remember the formula? Just start typing. Powered by JS Doc
  • 37.
    Dave Sottimano |@dsottimano | #TechSEOBoost example.com/directory/567/~!page.html example.com/directory/56789/!page.html example.com/@directory/56789/~page.php =SUBSTITUTE_ALL(“@,.html,!,.php”,a1)
  • 38.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 39.
    Dave Sottimano |@dsottimano | #TechSEOBoost Combine multiple columns to one column?
  • 40.
    Dave Sottimano |@dsottimano | #TechSEOBoost =COMBINE_TO_COLUMN(A1:B200)
  • 41.
    Dave Sottimano |@dsottimano | #TechSEOBoost Leverage any API (UrlFetchApp)
  • 42.
    Dave Sottimano |@dsottimano | #TechSEOBoost Scrape Google search results reliably Get an API key first, serpapi.com
  • 43.
    Dave Sottimano |@dsottimano | #TechSEOBoost In the code, add your API Key
  • 44.
    Dave Sottimano |@dsottimano | #TechSEOBoost =GOOGLE_SEARCH(“tech seo boost”)
  • 45.
    Dave Sottimano |@dsottimano | #TechSEOBoost =GOOGLE_FEATURED_SNIPPET(“why is the sky blue”)
  • 46.
    Dave Sottimano |@dsottimano | #TechSEOBoost Create your own auto- suggest bit.do/g-suggest
  • 47.
    Dave Sottimano |@dsottimano | #TechSEOBoost Simple and free. Create your own interface bit.do/g-suggest
  • 48.
    Dave Sottimano |@dsottimano | #TechSEOBoost Use Python from a Google Cloud Function (API) 2 gb, Python 3.7 serverless Python through the GCF https://cloud.google.com/functio ns/docs/quickstart-python
  • 49.
    Dave Sottimano |@dsottimano | #TechSEOBoost Limitless applications via APIs Cloud based headless browsers: Proxycrawl.com Phantomjscloud.com Semrush API Library https://opensourceseo.org/semr ush-api-library-google-sheets- google-scripts/
  • 50.
    Dave Sottimano |@dsottimano | #TechSEOBoost Packaging through add-ons and Document automation
  • 51.
    Dave Sottimano |@dsottimano | #TechSEOBoost “Private add-ons are only visible to users in the same domain as the add-on publishing account. They can't be installed by outside users. Private add-ons do not require add-on review” https://developers.google.com/gsuite/add-ons/how-tos/publish-overview
  • 52.
    Dave Sottimano |@dsottimano | #TechSEOBoost Develop for your organization through private add-ons
  • 53.
    Dave Sottimano |@dsottimano | #TechSEOBoost Private add-ons
  • 54.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 55.
    Dave Sottimano |@dsottimano | #TechSEOBoost Solving SEO Problems with Apps Script
  • 56.
    Dave Sottimano |@dsottimano | #TechSEOBoost Check if indexed & Find 301 targets.
  • 57.
    Dave Sottimano |@dsottimano | #TechSEOBoost =GOOGLE_SEARCH(“https://www.google.com”) Query parameter is the verbatim URL
  • 58.
    Dave Sottimano |@dsottimano | #TechSEOBoost Same function. Better way of running it
  • 59.
    Dave Sottimano |@dsottimano | #TechSEOBoost =GOOGLE_SEARCH(“site:seland.com python”) Find best matched possible 301 targets
  • 60.
    Dave Sottimano |@dsottimano | #TechSEOBoost Cache copies of pages & Change monitoring.
  • 61.
    Dave Sottimano |@dsottimano | #TechSEOBoost To save, add https://web.archive.org/save/ to the start of a URL A GET request to this will save the page! https://web.archive.org/save/https://opensourceseo.org/ Save Pages > Chron > Import Captures > Compare
  • 62.
    Dave Sottimano |@dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare In the code, add your URLs into the array
  • 63.
    Dave Sottimano |@dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
  • 64.
    Dave Sottimano |@dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
  • 65.
    Dave Sottimano |@dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
  • 66.
    Dave Sottimano |@dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
  • 67.
    Dave Sottimano |@dsottimano | #TechSEOBoost Save Pages > Chron > Import Captures > Compare
  • 68.
    Dave Sottimano |@dsottimano | #TechSEOBoost Machine learning classification < 10 minutes
  • 69.
    Dave Sottimano |@dsottimano | #TechSEOBoost BIGML.COM For free. Accessible to any Google sheet. https://bigml.com/features/class ification-regression
  • 70.
    Dave Sottimano |@dsottimano | #TechSEOBoost Training Data > Create Model > Classify Keyword data from Semrush Nytimes.com = informational Yelp.com = local Amazon.com = transactional
  • 71.
    Dave Sottimano |@dsottimano | #TechSEOBoost Training Data > Create Model > Classify
  • 72.
    Dave Sottimano |@dsottimano | #TechSEOBoost Training Data > Create Model > Classify
  • 73.
    Dave Sottimano |@dsottimano | #TechSEOBoost Install the Bigml.com addon for sheets
  • 74.
    Dave Sottimano |@dsottimano | #TechSEOBoost Install the Bigml.com addon for sheets
  • 75.
    Dave Sottimano |@dsottimano | #TechSEOBoost
  • 76.
    Dave Sottimano |@dsottimano | #TechSEOBoost Training Data > Create Model > Classify
  • 77.
    Dave Sottimano |@dsottimano | #TechSEOBoost Where to go from here?
  • 78.
    Dave Sottimano |@dsottimano | #TechSEOBoost Want to learn JavaScript? JavaScript track on Freecodecamp.org Book: JavaScript - the good parts
  • 79.
    Dave Sottimano |@dsottimano | #TechSEOBoost Want to learn Apps Script? Follow this list on Twitter Stack Overflow Google documentation Starter guide on opensourceseo.org Ben Collin’s guides
  • 80.
    Dave Sottimano |@dsottimano | #TechSEOBoost Hire an Apps Script developer?
  • 81.
    Dave Sottimano |@dsottimano | #TechSEOBoost Will Apps Script Upgrade?
  • 82.
    Dave Sottimano |@dsottimano | #TechSEOBoost Currently building seotoolsforsheets.com VP @ Keyphraseology.com –Dave Sottimano Twitter: @dsottimano
  • 83.
    Dave Sottimano |@dsottimano | #TechSEOBoost Image credits https://www.reddit.com/user/nwsm/ https://giphy.com/gifs/whoa-hd-tim-and-eric-xT0xeJpnrWC4XWblEk/media