SlideShare a Scribd company logo
MAKE YOUR 
OWN DAMN 
SEO TOOLS 
Cheat Sheet: ranktank.org/damntools/ 
@seanmalseed
Why? 
• How many hours have you spent 
trying to find that one tool 
that did that one thing that 
you need? 
• How many hours do you spend 
fiddling with multiple exports 
from three tools trying to eek 
out some information? 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
“but i dont know how to code and im really 
not that technical…” 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
If you’re sitting in this room right now, 
you’ve got a little technical in you. 
Give yourself a little credit. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Talkin’ Bout some GDocs 
Google built some really powerful commands 
into Sheets. 
• ImportXML and 
ImportDATA can 
automagically pull 
and parse data from 
an API or web pages. 
• ImportHTML can pull 
web page source 
elements 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
ImportDATA 
• PowerPoint can get a little 
boring, so let’s build a tool 
right now. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Multi-Page Change Monitor 
• The “Have they updated their website 
or code yet?” tool. 
• Formula used: ImportDATA 
• Google Doc with Example 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Setting Up the Sheet 
• Column A is for the URLs you’ll 
be checking 
• Column B is for the live pages 
pulled from the site 
• Column C is for the original 
pages to compare against 
• Column D performs the “Has it 
changed?” check! 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic Formula 
• Column B is where the real 
magic happens, pulling live 
data for each page you put in 
column A using importDATA 
• Let’s build that formula 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic Formula 
=importdata(A2) 
This call uses the URL in cell A2 and pulls all of the page source. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic Formula 
=concatenate(importdata(A2)) 
Concatenate joins an array together. In this case, it forces all of the code into 
a single string of data in one cell. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic Formula 
=substitute(concatenate(importdata 
(A2)), char(10), “”) 
Some pages still have line breaks which cause the sheet to get all weird and stuff. 
Stop this weirdness by using SUBSTITUTE to replace line breaks Char(10) with nothing “” 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic Formula 
=if(A2)=“”,””, 
substitute(concatenate(importdata(A2)), 
char(10), “”)) 
Finally, to keep the sheet clean, we need to check and see if something is actually in cell A2. 
If nothing is there, we’ll leave B2 blank too. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic Formula 
If the value in A2 = empty Make this cell (B2) empty 
=if(A2)=“”,””, 
Otherwise, do the thing! 
substitute(concatenate(importdata(A2)), 
char(10), “”)) 
Finally, to keep the sheet clean, we need to check and see if something is actually in cell A2. 
If nothing is there, we’ll leave B2 blank too. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Column D for Detection! 
=if(B2=C2,”Nope”,”Yep”) 
Compare the live data in B2 to the baseline data in C2. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Column D for Detection! 
=if(C2=“”,””,if(B2=C2,”Yep”,”Nope”)) 
Cleaning this up a bit: if we didn’t put baseline data in C2, there’s no reason to do 
the comparison! We’ll leave the cell blank instead. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Using an API 
• The “I just need effing keyword 
search volumes in bulk but SEMrush 
doesn’t do that” tool. 
• API used: SEMrush 
• API call used: phrase_this 
• Formula used: ImportDATA 
• Google Doc with Example 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
SEMrush API Format 
Looks complicated, but it’s not. 
http://us.api.semrush.com/?action=report&type=phrase_this& 
key=YOUR_API_KEY&display_limit=1&export=api&export_columns 
=Nq&phrase=KEYWORD 
Using the API is literally just calling a URL with your API key in it. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
SEMrush API Format 
Let’s break it into multiple lines 
and examine it. 
http://us.api.semrush.com/?action=report <- Required, specify country 
&type=phrase_this <- This specifies the type of call you’re making 
&key=YOUR_API_KEY <- Your API key goes here 
&display_limit=1 <- How many lines of data to get. We only need one! 
&export=api <- Required 
&export_columns=Nq <- What metrics do we want? Nq means Search Volume 
&phrase=KEYWORD <- The keyword to check. Pretty important to include… 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Making the Call 
We’ve already learned how to use 
importDATA! 
=importdata(http://us.api.semrush.com/?actio 
n=report&type=phrase_this&key=YOUR_API_KEY&d 
isplay_limit=1&export=api&export_columns=Nq& 
phrase=KEYWORD) 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Making the Call 
=importdata("http://us.api.semrush.com/?acti 
on=report&type=phrase_this&key=YOUR_API_KEY& 
display_limit=1&export=api&export_columns=Nq 
&phrase=“ & A2) 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Uh-oh… 
API column header 
The actual data we want 
The API returns TWO lines of data, when we only want one! It gives us a column 
header AND the data we want, which wind up taking two rows. This won’t work 
if we want to check multiple lines of keywords! 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The Magic of QUERY 
Google built a function called “QUERY” into 
Sheets, and it’s basically effing magic. 
QUERY let’s you perform an SQL query on 
data, such as a range of cells or returned 
data. 
SQL stands for Structured Query Language, 
but it might as well mean Simple Query 
Language because it’s simple as sh*t. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Let’s QUERY 
We’re gonna perform this “QUERY” on the data 
the SEMrush API sends us: 
SELECT Col1 LABEL Col1 ‘’ 
It’s going to SELECT column 1 and LABEL 
column 1 with ‘’ (meaning blank). BOOM the 
header is GONE BABY! 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
ImportDATA + Query 
=query(importdata("http://us.api.semrush.com/?action 
=report&type=phrase_this&key=5311a58529cc0bbadf7e277 
555e9d83b&display_limit=1&export=api&export_columns= 
Nq&phrase=" & A2),"SELECT Col1 LABEL Col1 ''") 
Boy oh boy, is that easy to do. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Gettin’ International 
=query(importdata("http://” & $E$2 & 
“.api.semrush.com/?action=report&type=phrase_this&key=5311 
a58529cc0bbadf7e277555e9d83b&display_limit=1&export=api&ex 
port_columns=Nq&phrase=" & A2),"SELECT Col1 LABEL Col1 
''") 
Cell E2 will hold the country code, and using the $ 
(as $E$2) means the cell position will never change, 
even when the formula is pasted or filled-down. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Using XPath 
• The “I need to check all of the meta 
descriptions and page titles” tool. 
• Formula used: ImportXML 
• Google Doc with Example 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
XPath 
• Xpath confuses everyone. 
Including me. 
• It’s basically a way to point to 
a specific HTML element, or a 
bunch of elements. 
• We’ll look at a super simple way 
to use it. Maybe you’ll want to 
go learn more about it. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
ImportXML 
• importXML lets you specify a 
URL and Xpath to perform on the 
returned source: 
Column C: 
=ImportXML(A2, "//title") 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
ImportXML 
• Column C was easy. Column B is 
a bit more challenging: 
=substitute(ImportXML(A2, 
"//meta[@name='description']/@content"),char(10),"") 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
Xpath is a Roadmap 
Painting a path to a specific 
element in code: 
"//meta[@name='description']/@content” 
It’s in the meta Its name is ‘description’ Give me the content 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
The “OH SH*T” Moment 
The moment when 
you’ll realize how 
freaking powerful 
ImportXML with 
Xpath is. 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
BRB, Parsing Google 
You can use ImportXML and Xpath to parse Google SERPs. 
It even uses a Google internal IP address instead of 
yours, so your office won’t get stuck in CAPTCHA hell. 
=importxml("https://www.google.com/search?n 
um=100&q=query","//h3[@class='r']/a/@href") 
Yes. Oh sh*t indeed. 
Xpath to grab just the search result URLs 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed
And on that bombshell… 
RankTank.org 
CircleRank.com 
I do “the Twitter” 
@seanmalseed 
Cheat Sheet: ranktank.org/damntools/ @seanmalseed

More Related Content

What's hot

Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search  Advanced Seo For Developers PresentationGetting More Traffic From Search  Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
Seo Indonesia
 
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Baruch Sadogursky
 
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimDjango Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Mir Nazim
 
Yahoo - Open Applied
Yahoo - Open AppliedYahoo - Open Applied
Yahoo - Open Applied
Carsonified Team
 
FOWA 09 - Open Strategy Applied
FOWA 09 - Open Strategy AppliedFOWA 09 - Open Strategy Applied
FOWA 09 - Open Strategy Applied
Dan Theurer
 
[PyConZA 2017] Web Scraping: Unleash your Internet Viking
[PyConZA 2017] Web Scraping: Unleash your Internet Viking[PyConZA 2017] Web Scraping: Unleash your Internet Viking
[PyConZA 2017] Web Scraping: Unleash your Internet Viking
Andrew Collier
 
Advanced SEO for Web Developers
Advanced SEO for Web DevelopersAdvanced SEO for Web Developers
Advanced SEO for Web DevelopersNathan Buggia
 
Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017
Baruch Sadogursky
 
Creating HTML Pages
Creating HTML PagesCreating HTML Pages
Creating HTML Pages
Mike Crabb
 
Basic HTML Tutorial For Beginners
Basic HTML Tutorial For BeginnersBasic HTML Tutorial For Beginners
Basic HTML Tutorial For Beginners
DHTMLExtreme
 
Finding things on the web with BOSS
Finding things on the web with BOSSFinding things on the web with BOSS
Finding things on the web with BOSS
Christian Heilmann
 
Extreme APIs for a better tomorrow
Extreme APIs for a better tomorrowExtreme APIs for a better tomorrow
Extreme APIs for a better tomorrow
Aaron Maturen
 
Findability Bliss Through Web Standards
Findability Bliss Through Web StandardsFindability Bliss Through Web Standards
Findability Bliss Through Web Standards
Aarron Walter
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109
Thinkful
 
Web Standards: Fueling Innovation [Web Design World Boston '08]
Web Standards: Fueling Innovation [Web Design World Boston '08]Web Standards: Fueling Innovation [Web Design World Boston '08]
Web Standards: Fueling Innovation [Web Design World Boston '08]
Aaron Gustafson
 
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsBoston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
John Brunswick
 
Building Excel Tools - Utah DMC 2018 - Amy Bishop
Building Excel Tools - Utah DMC 2018 - Amy BishopBuilding Excel Tools - Utah DMC 2018 - Amy Bishop
Building Excel Tools - Utah DMC 2018 - Amy Bishop
Amy Bishop
 
L annee philologique_online_new
L annee philologique_online_newL annee philologique_online_new
L annee philologique_online_newphoebeacheson
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
Cindy Royal
 
FQL Overview
FQL OverviewFQL Overview
FQL Overview
Craig Saila
 

What's hot (20)

Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search  Advanced Seo For Developers PresentationGetting More Traffic From Search  Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
 
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
 
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimDjango Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
Django Introduction Osscamp Delhi September 08 09 2007 Mir Nazim
 
Yahoo - Open Applied
Yahoo - Open AppliedYahoo - Open Applied
Yahoo - Open Applied
 
FOWA 09 - Open Strategy Applied
FOWA 09 - Open Strategy AppliedFOWA 09 - Open Strategy Applied
FOWA 09 - Open Strategy Applied
 
[PyConZA 2017] Web Scraping: Unleash your Internet Viking
[PyConZA 2017] Web Scraping: Unleash your Internet Viking[PyConZA 2017] Web Scraping: Unleash your Internet Viking
[PyConZA 2017] Web Scraping: Unleash your Internet Viking
 
Advanced SEO for Web Developers
Advanced SEO for Web DevelopersAdvanced SEO for Web Developers
Advanced SEO for Web Developers
 
Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at DevNexus 2017
 
Creating HTML Pages
Creating HTML PagesCreating HTML Pages
Creating HTML Pages
 
Basic HTML Tutorial For Beginners
Basic HTML Tutorial For BeginnersBasic HTML Tutorial For Beginners
Basic HTML Tutorial For Beginners
 
Finding things on the web with BOSS
Finding things on the web with BOSSFinding things on the web with BOSS
Finding things on the web with BOSS
 
Extreme APIs for a better tomorrow
Extreme APIs for a better tomorrowExtreme APIs for a better tomorrow
Extreme APIs for a better tomorrow
 
Findability Bliss Through Web Standards
Findability Bliss Through Web StandardsFindability Bliss Through Web Standards
Findability Bliss Through Web Standards
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109
 
Web Standards: Fueling Innovation [Web Design World Boston '08]
Web Standards: Fueling Innovation [Web Design World Boston '08]Web Standards: Fueling Innovation [Web Design World Boston '08]
Web Standards: Fueling Innovation [Web Design World Boston '08]
 
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsBoston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
 
Building Excel Tools - Utah DMC 2018 - Amy Bishop
Building Excel Tools - Utah DMC 2018 - Amy BishopBuilding Excel Tools - Utah DMC 2018 - Amy Bishop
Building Excel Tools - Utah DMC 2018 - Amy Bishop
 
L annee philologique_online_new
L annee philologique_online_newL annee philologique_online_new
L annee philologique_online_new
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
FQL Overview
FQL OverviewFQL Overview
FQL Overview
 

Viewers also liked

Using PPC Competitive Intelligence
Using PPC Competitive IntelligenceUsing PPC Competitive Intelligence
Using PPC Competitive Intelligence
Sean Malseed
 
Angular and SEO - Greenlane All Hands Day 10/17/16
Angular and SEO - Greenlane All Hands Day 10/17/16Angular and SEO - Greenlane All Hands Day 10/17/16
Angular and SEO - Greenlane All Hands Day 10/17/16
Sean Malseed
 
Consultor de SEO ensina o que é Semântica na otimização de sites
Consultor de SEO ensina o que é Semântica na otimização de sitesConsultor de SEO ensina o que é Semântica na otimização de sites
Consultor de SEO ensina o que é Semântica na otimização de sites
Paulo Augusto Sebin
 
Lukasz Zelezny - LAC 2017 - Optimising site structure for indexing
Lukasz Zelezny - LAC 2017 - Optimising site structure for indexingLukasz Zelezny - LAC 2017 - Optimising site structure for indexing
Lukasz Zelezny - LAC 2017 - Optimising site structure for indexing
iGB Affiliate
 
Что делать если упал трафик на сайте?
Что делать если упал трафик на сайте?Что делать если упал трафик на сайте?
Что делать если упал трафик на сайте?
SEO-Интеллект
 
4 einfache Strategien gegen den Einwand "zu teuer"
4 einfache Strategien gegen den Einwand "zu teuer"4 einfache Strategien gegen den Einwand "zu teuer"
4 einfache Strategien gegen den Einwand "zu teuer"
Thomas Bottin
 
SEO for Developers
SEO for DevelopersSEO for Developers
SEO for Developers
Exove
 
Mobile et e-commerce 2017 : Google AMP, Mobile First Index
Mobile et e-commerce 2017 : Google AMP, Mobile First IndexMobile et e-commerce 2017 : Google AMP, Mobile First Index
Mobile et e-commerce 2017 : Google AMP, Mobile First Index
Sandra BOYER
 
SEO: White Hat Link Building in 2016
SEO: White Hat Link Building in 2016SEO: White Hat Link Building in 2016
SEO: White Hat Link Building in 2016
Digital Vidya
 
How to Structure a Scalable SEO Strategy
How to Structure a Scalable SEO StrategyHow to Structure a Scalable SEO Strategy
How to Structure a Scalable SEO Strategy
Digital Reach
 
Beyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROI
Beyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROIBeyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROI
Beyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROI
HubSpot
 
How to Spot a Bear - An Intro to Machine Learning for SEO
How to Spot a Bear - An Intro to Machine Learning for SEOHow to Spot a Bear - An Intro to Machine Learning for SEO
How to Spot a Bear - An Intro to Machine Learning for SEO
Tom Anthony
 
SEO & UX: So Happy Together
SEO & UX: So Happy TogetherSEO & UX: So Happy Together
SEO & UX: So Happy Together
Rand Fishkin
 

Viewers also liked (13)

Using PPC Competitive Intelligence
Using PPC Competitive IntelligenceUsing PPC Competitive Intelligence
Using PPC Competitive Intelligence
 
Angular and SEO - Greenlane All Hands Day 10/17/16
Angular and SEO - Greenlane All Hands Day 10/17/16Angular and SEO - Greenlane All Hands Day 10/17/16
Angular and SEO - Greenlane All Hands Day 10/17/16
 
Consultor de SEO ensina o que é Semântica na otimização de sites
Consultor de SEO ensina o que é Semântica na otimização de sitesConsultor de SEO ensina o que é Semântica na otimização de sites
Consultor de SEO ensina o que é Semântica na otimização de sites
 
Lukasz Zelezny - LAC 2017 - Optimising site structure for indexing
Lukasz Zelezny - LAC 2017 - Optimising site structure for indexingLukasz Zelezny - LAC 2017 - Optimising site structure for indexing
Lukasz Zelezny - LAC 2017 - Optimising site structure for indexing
 
Что делать если упал трафик на сайте?
Что делать если упал трафик на сайте?Что делать если упал трафик на сайте?
Что делать если упал трафик на сайте?
 
4 einfache Strategien gegen den Einwand "zu teuer"
4 einfache Strategien gegen den Einwand "zu teuer"4 einfache Strategien gegen den Einwand "zu teuer"
4 einfache Strategien gegen den Einwand "zu teuer"
 
SEO for Developers
SEO for DevelopersSEO for Developers
SEO for Developers
 
Mobile et e-commerce 2017 : Google AMP, Mobile First Index
Mobile et e-commerce 2017 : Google AMP, Mobile First IndexMobile et e-commerce 2017 : Google AMP, Mobile First Index
Mobile et e-commerce 2017 : Google AMP, Mobile First Index
 
SEO: White Hat Link Building in 2016
SEO: White Hat Link Building in 2016SEO: White Hat Link Building in 2016
SEO: White Hat Link Building in 2016
 
How to Structure a Scalable SEO Strategy
How to Structure a Scalable SEO StrategyHow to Structure a Scalable SEO Strategy
How to Structure a Scalable SEO Strategy
 
Beyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROI
Beyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROIBeyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROI
Beyond Arts & Crafts: 8 Ready-Made Graphs to Prove Marketing ROI
 
How to Spot a Bear - An Intro to Machine Learning for SEO
How to Spot a Bear - An Intro to Machine Learning for SEOHow to Spot a Bear - An Intro to Machine Learning for SEO
How to Spot a Bear - An Intro to Machine Learning for SEO
 
SEO & UX: So Happy Together
SEO & UX: So Happy TogetherSEO & UX: So Happy Together
SEO & UX: So Happy Together
 

Similar to Make Your Own Damn SEO Tools (Using Google Docs!)

The Django Book - Chapter 5: Models
The Django Book - Chapter 5: ModelsThe Django Book - Chapter 5: Models
The Django Book - Chapter 5: Models
Sharon Chen
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
Patrick Schroeder
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
dwm042
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
Mark Rackley
 
Using Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case StudyUsing Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case Study
David Keener
 
BD-ACA Week6
BD-ACA Week6BD-ACA Week6
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Codemotion
 
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Codemotion
 
Ui path web data extraction
Ui path web data extractionUi path web data extraction
Ui path web data extractionAdrian Dorache
 
Cloud Computing Project
Cloud Computing ProjectCloud Computing Project
Cloud Computing Project
Devendra Singh Parmar
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
Lukas Vlcek
 
ASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And RepresentationASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And Representation
Randy Connolly
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsMark Rackley
 
How we improved performance at Mixbook
How we improved performance at MixbookHow we improved performance at Mixbook
How we improved performance at Mixbook
Anton Astashov
 
03 integrate webapisignalr
03 integrate webapisignalr03 integrate webapisignalr
03 integrate webapisignalr
Erhwen Kuo
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
Sriram Krishnan
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
John Quaglia
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
John Brunswick
 
An Introduction to Dashing and Smashing
An Introduction to Dashing and SmashingAn Introduction to Dashing and Smashing
An Introduction to Dashing and Smashing
Kunal Saha
 
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Holden Karau
 

Similar to Make Your Own Damn SEO Tools (Using Google Docs!) (20)

The Django Book - Chapter 5: Models
The Django Book - Chapter 5: ModelsThe Django Book - Chapter 5: Models
The Django Book - Chapter 5: Models
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Using Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case StudyUsing Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case Study
 
BD-ACA Week6
BD-ACA Week6BD-ACA Week6
BD-ACA Week6
 
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
 
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
Michelle Garrett - Build the API you want to see in the world (with GraphQL) ...
 
Ui path web data extraction
Ui path web data extractionUi path web data extraction
Ui path web data extraction
 
Cloud Computing Project
Cloud Computing ProjectCloud Computing Project
Cloud Computing Project
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
 
ASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And RepresentationASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And Representation
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentials
 
How we improved performance at Mixbook
How we improved performance at MixbookHow we improved performance at Mixbook
How we improved performance at Mixbook
 
03 integrate webapisignalr
03 integrate webapisignalr03 integrate webapisignalr
03 integrate webapisignalr
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
 
An Introduction to Dashing and Smashing
An Introduction to Dashing and SmashingAn Introduction to Dashing and Smashing
An Introduction to Dashing and Smashing
 
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
 

Recently uploaded

Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina KillgoConsumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...
Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...
Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...
Auxis Consulting & Outsourcing
 
Top 3 Ways to Align Sales and Marketing Teams for Rapid Growth
Top 3 Ways to Align Sales and Marketing Teams for Rapid GrowthTop 3 Ways to Align Sales and Marketing Teams for Rapid Growth
Top 3 Ways to Align Sales and Marketing Teams for Rapid Growth
Demandbase
 
How to Use AI to Write a High-Quality Article that Ranks
How to Use AI to Write a High-Quality Article that RanksHow to Use AI to Write a High-Quality Article that Ranks
How to Use AI to Write a High-Quality Article that Ranks
minatamang0021
 
Is AI-Generated Content the Future of Content Creation?
Is AI-Generated Content the Future of Content Creation?Is AI-Generated Content the Future of Content Creation?
Is AI-Generated Content the Future of Content Creation?
Cut-the-SaaS
 
Digital Marketing Trends - Experts Insights on How
Digital Marketing Trends - Experts Insights on HowDigital Marketing Trends - Experts Insights on How
10 Videos Any Business Can Make Right Now! - Shelly Nathan
10 Videos Any Business Can Make Right Now! - Shelly Nathan10 Videos Any Business Can Make Right Now! - Shelly Nathan
10 Videos Any Business Can Make Right Now! - Shelly Nathan
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya KellyHow to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
Winning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis YuWinning local SEO in the Age of AI - Dennis Yu
My Personal Brand Exploration by Mariano
My Personal Brand Exploration by MarianoMy Personal Brand Exploration by Mariano
My Personal Brand Exploration by Mariano
marianooscos
 
The Old Oak - Press Kit - Cannes Film Festival 2023
The Old Oak - Press Kit - Cannes Film Festival 2023The Old Oak - Press Kit - Cannes Film Festival 2023
The Old Oak - Press Kit - Cannes Film Festival 2023
Pascal Fintoni
 
Turn Digital Reputation Threats into Offense Tactics - Daniel Lemin
Turn Digital Reputation Threats into Offense Tactics - Daniel LeminTurn Digital Reputation Threats into Offense Tactics - Daniel Lemin
Turn Digital Reputation Threats into Offense Tactics - Daniel Lemin
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
AI-Powered Personalization: Principles, Use Cases, and Its Impact on CRO
AI-Powered Personalization: Principles, Use Cases, and Its Impact on CROAI-Powered Personalization: Principles, Use Cases, and Its Impact on CRO
AI-Powered Personalization: Principles, Use Cases, and Its Impact on CRO
VWO
 
34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER
34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER
34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER
DeepakTripathi733493
 
SMM Cheap - No. 1 SMM panel in the world
SMM Cheap - No. 1 SMM panel in the worldSMM Cheap - No. 1 SMM panel in the world
SMM Cheap - No. 1 SMM panel in the world
smmpanel567
 
Winning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis YuWinning local SEO in the Age of AI - Dennis Yu
De-risk Your Digital Evolution - Hannah Grap
De-risk Your Digital Evolution - Hannah GrapDe-risk Your Digital Evolution - Hannah Grap
The What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital CommerceThe What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital Commerce
PushON Ltd
 
Mastering Multi-Touchpoint Content Strategy: Navigate Fragmented User Journeys
Mastering Multi-Touchpoint Content Strategy: Navigate Fragmented User JourneysMastering Multi-Touchpoint Content Strategy: Navigate Fragmented User Journeys
Mastering Multi-Touchpoint Content Strategy: Navigate Fragmented User Journeys
Search Engine Journal
 
Digital Marketing Trends - Experts Insights on How to Gain a Competitive Edge
Digital Marketing Trends - Experts Insights on How to Gain a Competitive EdgeDigital Marketing Trends - Experts Insights on How to Gain a Competitive Edge
Digital Marketing Trends - Experts Insights on How to Gain a Competitive Edge
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 

Recently uploaded (20)

Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina KillgoConsumer Journey Mapping & Personalization Master Class - Sabrina Killgo
Consumer Journey Mapping & Personalization Master Class - Sabrina Killgo
 
Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...
Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...
Traditional Store Audits are Outdated: A New Approach to Protecting Your Bran...
 
Top 3 Ways to Align Sales and Marketing Teams for Rapid Growth
Top 3 Ways to Align Sales and Marketing Teams for Rapid GrowthTop 3 Ways to Align Sales and Marketing Teams for Rapid Growth
Top 3 Ways to Align Sales and Marketing Teams for Rapid Growth
 
How to Use AI to Write a High-Quality Article that Ranks
How to Use AI to Write a High-Quality Article that RanksHow to Use AI to Write a High-Quality Article that Ranks
How to Use AI to Write a High-Quality Article that Ranks
 
Is AI-Generated Content the Future of Content Creation?
Is AI-Generated Content the Future of Content Creation?Is AI-Generated Content the Future of Content Creation?
Is AI-Generated Content the Future of Content Creation?
 
Digital Marketing Trends - Experts Insights on How
Digital Marketing Trends - Experts Insights on HowDigital Marketing Trends - Experts Insights on How
Digital Marketing Trends - Experts Insights on How
 
10 Videos Any Business Can Make Right Now! - Shelly Nathan
10 Videos Any Business Can Make Right Now! - Shelly Nathan10 Videos Any Business Can Make Right Now! - Shelly Nathan
10 Videos Any Business Can Make Right Now! - Shelly Nathan
 
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya KellyHow to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
How to use Short Form Video To Grow Your Brand and Business - Keenya Kelly
 
Winning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis YuWinning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis Yu
 
My Personal Brand Exploration by Mariano
My Personal Brand Exploration by MarianoMy Personal Brand Exploration by Mariano
My Personal Brand Exploration by Mariano
 
The Old Oak - Press Kit - Cannes Film Festival 2023
The Old Oak - Press Kit - Cannes Film Festival 2023The Old Oak - Press Kit - Cannes Film Festival 2023
The Old Oak - Press Kit - Cannes Film Festival 2023
 
Turn Digital Reputation Threats into Offense Tactics - Daniel Lemin
Turn Digital Reputation Threats into Offense Tactics - Daniel LeminTurn Digital Reputation Threats into Offense Tactics - Daniel Lemin
Turn Digital Reputation Threats into Offense Tactics - Daniel Lemin
 
AI-Powered Personalization: Principles, Use Cases, and Its Impact on CRO
AI-Powered Personalization: Principles, Use Cases, and Its Impact on CROAI-Powered Personalization: Principles, Use Cases, and Its Impact on CRO
AI-Powered Personalization: Principles, Use Cases, and Its Impact on CRO
 
34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER
34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER
34-Rahul-Mande.pdf PROJECT REPORT MBA 4TH SEMESTER
 
SMM Cheap - No. 1 SMM panel in the world
SMM Cheap - No. 1 SMM panel in the worldSMM Cheap - No. 1 SMM panel in the world
SMM Cheap - No. 1 SMM panel in the world
 
Winning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis YuWinning local SEO in the Age of AI - Dennis Yu
Winning local SEO in the Age of AI - Dennis Yu
 
De-risk Your Digital Evolution - Hannah Grap
De-risk Your Digital Evolution - Hannah GrapDe-risk Your Digital Evolution - Hannah Grap
De-risk Your Digital Evolution - Hannah Grap
 
The What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital CommerceThe What, Why & How of 3D and AR in Digital Commerce
The What, Why & How of 3D and AR in Digital Commerce
 
Mastering Multi-Touchpoint Content Strategy: Navigate Fragmented User Journeys
Mastering Multi-Touchpoint Content Strategy: Navigate Fragmented User JourneysMastering Multi-Touchpoint Content Strategy: Navigate Fragmented User Journeys
Mastering Multi-Touchpoint Content Strategy: Navigate Fragmented User Journeys
 
Digital Marketing Trends - Experts Insights on How to Gain a Competitive Edge
Digital Marketing Trends - Experts Insights on How to Gain a Competitive EdgeDigital Marketing Trends - Experts Insights on How to Gain a Competitive Edge
Digital Marketing Trends - Experts Insights on How to Gain a Competitive Edge
 

Make Your Own Damn SEO Tools (Using Google Docs!)

  • 1. MAKE YOUR OWN DAMN SEO TOOLS Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 2. Why? • How many hours have you spent trying to find that one tool that did that one thing that you need? • How many hours do you spend fiddling with multiple exports from three tools trying to eek out some information? Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 3. “but i dont know how to code and im really not that technical…” Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 4. If you’re sitting in this room right now, you’ve got a little technical in you. Give yourself a little credit. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 5. Talkin’ Bout some GDocs Google built some really powerful commands into Sheets. • ImportXML and ImportDATA can automagically pull and parse data from an API or web pages. • ImportHTML can pull web page source elements Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 6. ImportDATA • PowerPoint can get a little boring, so let’s build a tool right now. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 7. Multi-Page Change Monitor • The “Have they updated their website or code yet?” tool. • Formula used: ImportDATA • Google Doc with Example Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 8. Setting Up the Sheet • Column A is for the URLs you’ll be checking • Column B is for the live pages pulled from the site • Column C is for the original pages to compare against • Column D performs the “Has it changed?” check! Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 9. The Magic Formula • Column B is where the real magic happens, pulling live data for each page you put in column A using importDATA • Let’s build that formula Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 10. The Magic Formula =importdata(A2) This call uses the URL in cell A2 and pulls all of the page source. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 11. The Magic Formula =concatenate(importdata(A2)) Concatenate joins an array together. In this case, it forces all of the code into a single string of data in one cell. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 12. The Magic Formula =substitute(concatenate(importdata (A2)), char(10), “”) Some pages still have line breaks which cause the sheet to get all weird and stuff. Stop this weirdness by using SUBSTITUTE to replace line breaks Char(10) with nothing “” Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 13. The Magic Formula =if(A2)=“”,””, substitute(concatenate(importdata(A2)), char(10), “”)) Finally, to keep the sheet clean, we need to check and see if something is actually in cell A2. If nothing is there, we’ll leave B2 blank too. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 14. The Magic Formula If the value in A2 = empty Make this cell (B2) empty =if(A2)=“”,””, Otherwise, do the thing! substitute(concatenate(importdata(A2)), char(10), “”)) Finally, to keep the sheet clean, we need to check and see if something is actually in cell A2. If nothing is there, we’ll leave B2 blank too. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 15. Column D for Detection! =if(B2=C2,”Nope”,”Yep”) Compare the live data in B2 to the baseline data in C2. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 16. Column D for Detection! =if(C2=“”,””,if(B2=C2,”Yep”,”Nope”)) Cleaning this up a bit: if we didn’t put baseline data in C2, there’s no reason to do the comparison! We’ll leave the cell blank instead. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 17. Using an API • The “I just need effing keyword search volumes in bulk but SEMrush doesn’t do that” tool. • API used: SEMrush • API call used: phrase_this • Formula used: ImportDATA • Google Doc with Example Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 18. SEMrush API Format Looks complicated, but it’s not. http://us.api.semrush.com/?action=report&type=phrase_this& key=YOUR_API_KEY&display_limit=1&export=api&export_columns =Nq&phrase=KEYWORD Using the API is literally just calling a URL with your API key in it. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 19. SEMrush API Format Let’s break it into multiple lines and examine it. http://us.api.semrush.com/?action=report <- Required, specify country &type=phrase_this <- This specifies the type of call you’re making &key=YOUR_API_KEY <- Your API key goes here &display_limit=1 <- How many lines of data to get. We only need one! &export=api <- Required &export_columns=Nq <- What metrics do we want? Nq means Search Volume &phrase=KEYWORD <- The keyword to check. Pretty important to include… Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 20. Making the Call We’ve already learned how to use importDATA! =importdata(http://us.api.semrush.com/?actio n=report&type=phrase_this&key=YOUR_API_KEY&d isplay_limit=1&export=api&export_columns=Nq& phrase=KEYWORD) Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 21. Making the Call =importdata("http://us.api.semrush.com/?acti on=report&type=phrase_this&key=YOUR_API_KEY& display_limit=1&export=api&export_columns=Nq &phrase=“ & A2) Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 22. Uh-oh… API column header The actual data we want The API returns TWO lines of data, when we only want one! It gives us a column header AND the data we want, which wind up taking two rows. This won’t work if we want to check multiple lines of keywords! Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 23. The Magic of QUERY Google built a function called “QUERY” into Sheets, and it’s basically effing magic. QUERY let’s you perform an SQL query on data, such as a range of cells or returned data. SQL stands for Structured Query Language, but it might as well mean Simple Query Language because it’s simple as sh*t. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 24. Let’s QUERY We’re gonna perform this “QUERY” on the data the SEMrush API sends us: SELECT Col1 LABEL Col1 ‘’ It’s going to SELECT column 1 and LABEL column 1 with ‘’ (meaning blank). BOOM the header is GONE BABY! Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 25. ImportDATA + Query =query(importdata("http://us.api.semrush.com/?action =report&type=phrase_this&key=5311a58529cc0bbadf7e277 555e9d83b&display_limit=1&export=api&export_columns= Nq&phrase=" & A2),"SELECT Col1 LABEL Col1 ''") Boy oh boy, is that easy to do. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 26. Gettin’ International =query(importdata("http://” & $E$2 & “.api.semrush.com/?action=report&type=phrase_this&key=5311 a58529cc0bbadf7e277555e9d83b&display_limit=1&export=api&ex port_columns=Nq&phrase=" & A2),"SELECT Col1 LABEL Col1 ''") Cell E2 will hold the country code, and using the $ (as $E$2) means the cell position will never change, even when the formula is pasted or filled-down. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 27. Using XPath • The “I need to check all of the meta descriptions and page titles” tool. • Formula used: ImportXML • Google Doc with Example Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 28. XPath • Xpath confuses everyone. Including me. • It’s basically a way to point to a specific HTML element, or a bunch of elements. • We’ll look at a super simple way to use it. Maybe you’ll want to go learn more about it. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 29. ImportXML • importXML lets you specify a URL and Xpath to perform on the returned source: Column C: =ImportXML(A2, "//title") Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 30. ImportXML • Column C was easy. Column B is a bit more challenging: =substitute(ImportXML(A2, "//meta[@name='description']/@content"),char(10),"") Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 31. Xpath is a Roadmap Painting a path to a specific element in code: "//meta[@name='description']/@content” It’s in the meta Its name is ‘description’ Give me the content Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 32. The “OH SH*T” Moment The moment when you’ll realize how freaking powerful ImportXML with Xpath is. Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 33. BRB, Parsing Google You can use ImportXML and Xpath to parse Google SERPs. It even uses a Google internal IP address instead of yours, so your office won’t get stuck in CAPTCHA hell. =importxml("https://www.google.com/search?n um=100&q=query","//h3[@class='r']/a/@href") Yes. Oh sh*t indeed. Xpath to grab just the search result URLs Cheat Sheet: ranktank.org/damntools/ @seanmalseed
  • 34. And on that bombshell… RankTank.org CircleRank.com I do “the Twitter” @seanmalseed Cheat Sheet: ranktank.org/damntools/ @seanmalseed

Editor's Notes

  1. I’m using the SEMrush API for these examples because a) I used to work there and I handled API integrations, so I’m just a weeee bit familiar with it. b) Their data is amazing and trusted by top agencies c) I’m still really good friends with them, and when I told them what I was going to do with these tools I’m making, they gave me a promo to give out with a completely free month of full Pro service, with a full working API key included… convenient, eh?
  2. Before we can parse the API data, we need to understand its format. Good thing it’s super simple. Using the API is literally just calling a URL with your API key in it. You could actually put the API call into the URL field of your web browser, and it would pull back the data just like a web page. SOOO simple! Woot.
  3. In the first section of the call, you can change “us” to other countries, like “ca” for Canada – there’s a full list at semrush.com/api.html “phrase_this” is the SEMrush API call for metrics on a single keyword
  4. We can call and parse the API automagically with IMPORTDATA, just like we did with web pages! It works the same way!
  5. We can call and parse the API automagically with IMPORTDATA, just like we did with web pages! It works the same way!
  6. We can call and parse the API automagically with IMPORTDATA, just like we did with web pages! It works the same way!
  7. We can call and parse the API automagically with IMPORTDATA, just like we did with web pages! It works the same way!
  8. We can call and parse the API automagically with IMPORTDATA, just like we did with web pages! It works the same way!
  9. We can call and parse the API automagically with IMPORTDATA, just like we did with web pages! It works the same way!
  10. I’m using the SEMrush API for these examples because a) I used to work there and I handled API integrations, so I’m just a weeee bit familiar with it. b) Their data is amazing and trusted by top agencies c) I’m still really good friends with them, and when I told them what I was going to do with these tools I’m making, they gave me a promo to give out with a completely free month of full Pro service, with a full working API key included… convenient, eh?
  11. Did you notice the “OH SH*T” tab in Example 3?
  12. Did you notice the “OH SH*T” tab in Example 3?