SlideShare a Scribd company logo
1 of 74
Paul Shapiro | @fighto
How to Get Started
Start Building SEO
Efficiencies with
Automation
Paul Shapiro | @fighto
Paul Shapiro | @fighto
Why Automate?
1.Work faster and free up time for the
important stuff
2.Look at more data
3.Improved consistency and procedure
Paul Shapiro | @fighto
What Can You Automate?
• If you’re doing something on a routine basis,
it can probably be automated (but doesn’t
mean it should).
• Any procedures that can be broken down into
smaller, micro-tasks that can be handled a by
a computer.
• Machine Learning can help with more complex
decision making (think power of AlphaGo).
Paul Shapiro | @fighto
Paul Shapiro | @fighto
Paul Shapiro | @fighto
How Do You Automate?
Paul Shapiro | @fighto
How to Conceptualize Automation:
Break into Micro-tasks
1
2 3 4
Paul Shapiro | @fighto
How to Work with APIs
API Endpoint:
http://api.grepwords.com/lookup?apikey=random_string&q=keyword
Simple API key authentication via GET request
String is
unique to
you
(authentic
ation)
Variable,
changes
and often
looped
Paul Shapiro | @fighto
How to Work with APIs
http://api.grepwords.com/lookup?apikey=secret&q=board+games
Output (JSON):
Simple API key authentication via GET request
[{"keyword":"board games","updated_cpc":"2018-04-30","updated_cmp":"2018-04-
30","updated_lms":"2018-04-30","updated_history":"2018-04-
30","lms":246000,"ams":246000,"gms":246000,"competition":0.86204091185173,"com
petetion":0.86204091185173,"cmp":0.86204091185173,"cpc":0.5,"m1":201000,"m1_mo
nth":"2018-02","m2":246000,"m2_month":"2018-01","m3":450000,"m3_month":"2017-
12","m4":368000,"m4_month":"2017-11","m5":201000,"m5_month":"2017-
10","m6":201000,"m6_month":"2017-09","m7":201000,"m7_month":"2017-
08","m8":201000,"m8_month":"2017-07","m9":201000,"m9_month":"2017-
06","m10":201000,"m10_month":"2017-05","m11":201000,"m11_month":"2017-
04","m12":201000,"m12_month":"2017-03"}]
Paul Shapiro | @fighto
How to Work with APIs
Most API Outputs:
1. JSON
2. XML
3. CSV
Paul Shapiro | @fighto
How to Work with APIs
Last Step:
Parse it!
Paul Shapiro | @fighto
How to Work with APIs
Parsing Example Using Python:
import json
json_string = '[{"keyword":"board games","updated_cpc":"2018-04-
30","updated_cmp":"2018-04-30","updated_lms":"2018-04-
30","updated_history":"2018-04-
30","lms":246000,"ams":246000,"gms":246000,"competition":0.86204091185173,"com
petetion":0.86204091185173,"cmp":0.86204091185173,"cpc":0.5,"m1":201000,"m1_mo
nth":"2018-02","m2":246000,"m2_month":"2018-01","m3":450000,"m3_month":"2017-
12","m4":368000,"m4_month":"2017-11","m5":201000,"m5_month":"2017-
10","m6":201000,"m6_month":"2017-09","m7":201000,"m7_month":"2017-
08","m8":201000,"m8_month":"2017-07","m9":201000,"m9_month":"2017-
06","m10":201000,"m10_month":"2017-05","m11":201000,"m11_month":"2017-
04","m12":201000,"m12_month":"2017-03"}]‘
parsed_json([0]['gms'])
1
2
3
Paul Shapiro | @fighto
How to Work with APIs
Full Python Script:
import requests
import json
r =
requests.get('http://api.grepwords.com/lookup?apike
y=secretapikey&q=board+games')
parsed_json = json.loads(r.text)
print(parsed_json[0]['gms'])
Paul Shapiro | @fighto
How to Work with APIs
Output
Paul Shapiro | @fighto
Tools for Automation
Paul Shapiro | @fighto
https://www.knime.org
Paul Shapiro | @fighto
Why KNIME?
• Fast way to put together complex
analyses
• Great for prototyping
• Large library of built-in “nodes”
• Free/Open Source
• Run on Windows/Mac/Linux
• Very expandable – even compatible
with R, Python, Java, JavaScript
• Easy enough for non-technical staff
to grasp
Paul Shapiro | @fighto
Data Agility
Paul Shapiro | @fighto
Other Options
• Scripting Languages
• Python
• Ruby
• Node.js
• Go
• R
• Excel with VBA
• Google Sheets
Paul Shapiro | @fighto
Cron & Windows Task Manager
are Your Friend
Paul Shapiro | @fighto
What is Cron and Why?
• *NIX system daemon used to schedule tasks and
scripts.
• Windows Task Manager is the Windows equivalent
of Cron.
• This way we can schedule scripts and programs that
perform automated tasks on a recurring, scheduled
basis.
Paul Shapiro | @fighto
Quick How To
* * * * * command /to/execute
Day of Week (0-6) (Sunday = 0)
Month (1-12)
Hour (0-23)
Day of Month (1-31)
Minute (0-59)
Paul Shapiro | @fighto
Run Every Month at Midnight
0 0 1 * * python datacollector.py
Paul Shapiro | @fighto
The Basics of KNIME
Paul Shapiro | @fighto
What is a Node?
• Nodes are prebuilt, drag and drop modules designed perform a singular task
• Nodes are strung together like a chain to accomplish larger, more complex
tasks
• Nodes can be grouped together into “meta-nodes”, which can be configured in
unison
Paul Shapiro | @fighto
How Do You Add Nodes &
How Do They Connect?
How do you add nodes to your “workflow”?
How do you string nodes together?
Paul Shapiro | @fighto
How Do You Configure & Run Nodes?
Configuring Nodes
Running Workflows
OR
Paul Shapiro | @fighto
Keyword Research
Paul Shapiro | @fighto
Most Keyword Research Looks Like This
Paul Shapiro | @fighto
Typical Time Investment for Keyword
Research
5
8
12
21 21
6
10
18
22
28
0
5
10
15
20
25
30
Micro (0-49 pages) Small (50-99 pages) Medium (100-249 pages) Large (250-499 pages) Extra Large (>500 pages)
Hours to Complete Keyword Research by Site Size
Average (Low End) Average (High End)
Paul Shapiro | @fighto
Size of the Data Set
vs.
Paul Shapiro | @fighto
Filtering +
Data
Manipula-
tions
One Big Keyword List
Seed Keywords
- List
- GWMT
- SEMRush Comp. KWs
- SQR Keywords
Keyword Planner
Suggestions (via
GrepWords)
Google Autocomplete
Semantic Keyword
Recommendations
(via MarketMuse)
Google Autocomplete
SEMRush
Domain vs. Domain
Keywords
Google Autocomplete
Paul Shapiro | @fighto
Data Manipulations / Calculations
• Get top 10 results from rank checking API (i.e., GetSTAT)
• Use Moz API nodes and find average PA to assess
competiveness.
• Optionally, use SEMRush’s Keyword Difficulty API
Organic
Competition
Search Volume
Keyword Trends
Paul Shapiro | @fighto
Data Manipulations / Calculations
• Get top 10 results from rank checking API (i.e., GetSTAT)
• Use Moz API nodes and find average PA to assess
competiveness.
• Optionally, use SEMRush’s Keyword Difficulty API
Organic
Competition
• Get Search Volumes via SEMRush API or via GrepWords APISearch Volume
Keyword Trends
Paul Shapiro | @fighto
Data Manipulations / Calculations
• Get top 10 results from rank checking API (i.e., GetSTAT)
• Use Moz API nodes and find average PA to assess
competiveness.
• Optionally, use SEMRush’s Keyword Difficulty API
Organic
Competition
• Get Search Volumes via SEMRush API or via GrepWords APISearch Volume
• Use 2 Years of Google Trends data to calculate slope and
determine growing/declining keywordsKeyword Trends
Paul Shapiro | @fighto
String ‘em All Together and then…
Paul Shapiro | @fighto
Visualize
This top-right quadrant contains
keywords with:
• Low competition
• Good growth
Larger bubbles show higher
search volumes.
You can alternatively use
current rank on the x-axis to
signal organic market share like
a traditional growth-share
matrix.
Paul Shapiro | @fighto
Option: Tableau
Paul Shapiro | @fighto
Option: Python + Bokeh Charts in KNIME
Paul Shapiro | @fighto
Sample Python Code:
http://pshapi.ro/SLBokeh
Paul Shapiro | @fighto
Learn More…
SearchLove Presentation about Automating Keyword Research:
http://pshapi.ro/2idcqYF
BrightonSEO Presentation about Semantic Keyword Research:
https://searchwilderness.com/semantic-keyword-research/
Paul Shapiro | @fighto
What to Automate
for SEO?
Paul Shapiro | @fighto
Reporting
Paul Shapiro | @fighto
Paul Shapiro | @fighto
Data Collection
Paul Shapiro | @fighto
Search Console
Schedule to run monthly with Cron
and backup to SQL database:
https://searchwilderness.com/gwmt-
data-python/
JR Oakes’ BigQuery vision:
http://pshapi.ro/2vmjDe8
Paul Shapiro | @fighto
301 Redirect Mapping
from Old URLs
Paul Shapiro | @fighto
301 Redirect Mapping from Old URLs
Crawl
Current Site
Download
Rendered
Pages
Extract Main
Content
(BoilerPipe)
Convert to
Bitvector
Get Historic
URLs from
Wayback
Machine
API
Filter Out
URLs found
on Current
Site
Grab
Rendered
Page from
Wayback
Machine
Extract
Main
Content
(BoilerPipe)
Convert to
Bitvector
Cosine
Similarity
Generate
.htaccess
strings
1
2
3
Paul Shapiro | @fighto
KNIME Toolkit
Paul Shapiro | @fighto
SERP Similarity / Overlap
Paul Shapiro | @fighto
1. Download ranking data via STAT
API
2. Compare results from 1-10 for
each query against results from 1-
10 for every other query.
3. Calculate percent similarity.
4. Schedule checks and examine
what changed.
Paul Shapiro | @fighto
Test JavaScript Rendering
Paul Shapiro | @fighto
http://pshapi.ro/puppetcrawl
Paul Shapiro | @fighto
Performance Testing with
Lighthouse
Paul Shapiro | @fighto
http://pshapi.ro/perfpony
Paul Shapiro | @fighto
Anomaly Detection
Paul Shapiro | @fighto
CTR
1. Data collection: We collect data on query,
page and associated metrics via the Google
Search Console Search Analytics API.
2. Round average position: I round average
position to the tenths decimal place (e.g., 1.19
is rounded to 1.2).
3. Math: We identify outliers using a combination
of the statistical methods for identifying
outliers (modified z-score, IQR).
4. Email: If any negative outliers are identified
for a keyword query and page combination at
an average position, an email is sent out
identifying all of this data to each of the SEOs
assigned to the account to investigate.
5. Scheduling: Set your script to run on a
recurring basis.
My SEL Article: http://pshapi.ro/2Ae2LYP
Paul Shapiro | @fighto
Content Ideas
Paul Shapiro | @fighto
Reddit Data Mining
Reddit Data Mining: Python Script
https://searchwilderness.com/reddit-python-code/
1. Enter filename for output
2. Enter a search or series of searches
3. Choose reddit sorting method. For this purpose,
choose ‘new’
4. Choose to look at all of reddit, or isolate to
particular subreddit(s).
5. Schedule with cron to find new topic ideas on a
recurring basis.
Paul Shapiro | @fighto
AMP Validation
Paul Shapiro | @fighto
Bulk Check AMP
Pages with
AMPBench API
Python Script:
http://pshapi.ro/2AHlNaE
Requires:
• Python
• Requests package
Ideally AMPBench would run locally, but
can be ran off the appspot demo URL.
Paul Shapiro | @fighto
Link Building
Paul Shapiro | @fighto
http://apiv2.ahrefs.com/?from=backlinks_new_lost&limit=10&target=competitor.com&
where=type:%22new%22,date:%222017-06-
01%22&mode=domain&output=json&token=your_personal_api_key
Link Building: Prospecting with Competitors
Scheduled use of Ahrefs API
Parsed Results + SMTP = Link Opportunities
Paul Shapiro | @fighto
Tech Audit Related Site Changes
Paul Shapiro | @fighto
• Detect new 404s and other errors
• New redirects
• Changes to robots.txt
• Content based changes over time
• Indexation changes
• New pages created
• Changes in rank or traffic
(rank checking API or Search Console)
Use Cloud Crawler like Botify/Deepcrawl with
API or a custom solution
Paul Shapiro | @fighto
Custom Solution
1. Run Screaming Frog in the Cloud with lots of
RAM:
• Amazon AWS: http://ipullrank.com/how-to-run-
screaming-frog-and-url-profiler-on-amazon-web-
services/
• Google Cloud:
https://online.marketing/guide/screaming-frog-in-
google-cloud/
2. Activate with command line and Task Manager for
scheduling
3. Use a macro program like RoboTask to generate
reports and send to a particular folder
4. Download via FTP or dump to SQL database for
analysis
5. Analysis produces alerts with SMTP
Paul Shapiro | @fighto
Meta Description Creation
Paul Shapiro | @fighto
1. Download webpage body
contents
2. Run through text
summarization engine(s) to
produce small snippets of
important page text
3. Have person edit to avoid
truncation and improve
language
Process for Semi-Automated Meta Descriptions
https://searchengineland.com/reducing-the-time-it-takes-
to-write-meta-descriptions-for-large-websites-299887
Paul Shapiro | @fighto
Alt Attribute Creation
Paul Shapiro | @fighto
Recognize Images
• You can use custom machine learning options
(https://www.tensorflow.org/tutorials/image_recognition) but it’s easier and
more effective to use an API in this context.
• For APIs, you have options:
• Microsoft Computer Vision: https://azure.microsoft.com/en-us/services/cognitive-
services/computer-vision/
• Google Cloud Vision API: https://cloud.google.com/vision/
• CloudSight: https://cloudsight.ai/
1. Download all images without alt attribute
2. Run through API and get a caption (not perfect, better than nothing)
Paul Shapiro | @fighto
Paul Shapiro | @fighto
A Word of Caution…
https://xkcd.com/1319/
Paul Shapiro | @fighto
CatalystDigital.com
Paul Shapiro
https://searchwilderness.com
@fighto
Thanks!

More Related Content

What's hot

SEO 101 webinar 10 25-2012
SEO 101 webinar 10 25-2012SEO 101 webinar 10 25-2012
SEO 101 webinar 10 25-2012
451 Marketing
 

What's hot (20)

TechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastTechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web Fast
 
NLP for SEO
NLP for SEONLP for SEO
NLP for SEO
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
 
Competitive On Site Optimization
Competitive On Site OptimizationCompetitive On Site Optimization
Competitive On Site Optimization
 
TechSEO Boost 2018: The Statelessness of Technical SEO
TechSEO Boost 2018: The Statelessness of Technical SEOTechSEO Boost 2018: The Statelessness of Technical SEO
TechSEO Boost 2018: The Statelessness of Technical SEO
 
What I Learned Building a Toy Example to Crawl & Render like Google
What I Learned Building a Toy Example to Crawl & Render like GoogleWhat I Learned Building a Toy Example to Crawl & Render like Google
What I Learned Building a Toy Example to Crawl & Render like Google
 
How SEO Ruined the Internet, and How We Can Save It
How SEO Ruined the Internet, and How We Can Save ItHow SEO Ruined the Internet, and How We Can Save It
How SEO Ruined the Internet, and How We Can Save It
 
Redefining technical SEO & how we should be thinking about it as an industry ...
Redefining technical SEO & how we should be thinking about it as an industry ...Redefining technical SEO & how we should be thinking about it as an industry ...
Redefining technical SEO & how we should be thinking about it as an industry ...
 
MnSearch Summit 2018 - Paul Shapiro – Start Building SEO Efficiencies with Au...
MnSearch Summit 2018 - Paul Shapiro – Start Building SEO Efficiencies with Au...MnSearch Summit 2018 - Paul Shapiro – Start Building SEO Efficiencies with Au...
MnSearch Summit 2018 - Paul Shapiro – Start Building SEO Efficiencies with Au...
 
Alexis max-Creating a bot experience as good as your user experience - Alexis...
Alexis max-Creating a bot experience as good as your user experience - Alexis...Alexis max-Creating a bot experience as good as your user experience - Alexis...
Alexis max-Creating a bot experience as good as your user experience - Alexis...
 
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile LandscapeMax Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
 
TechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOTechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEO
 
MnSearch Summit 2018 - Rob Ousbey – The Evolution of SEO: Split-Testing for S...
MnSearch Summit 2018 - Rob Ousbey – The Evolution of SEO: Split-Testing for S...MnSearch Summit 2018 - Rob Ousbey – The Evolution of SEO: Split-Testing for S...
MnSearch Summit 2018 - Rob Ousbey – The Evolution of SEO: Split-Testing for S...
 
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
 
SearchLove Boston 2016 | Mary Bowling | Local Search Experience Optimization
SearchLove Boston 2016 | Mary Bowling | Local Search Experience OptimizationSearchLove Boston 2016 | Mary Bowling | Local Search Experience Optimization
SearchLove Boston 2016 | Mary Bowling | Local Search Experience Optimization
 
Technical Content Optimization
Technical Content OptimizationTechnical Content Optimization
Technical Content Optimization
 
Tom Capper Mozcon 2021 - Core Web Vitals - The Fast & The Spurious
Tom Capper Mozcon 2021 - Core Web Vitals - The Fast & The SpuriousTom Capper Mozcon 2021 - Core Web Vitals - The Fast & The Spurious
Tom Capper Mozcon 2021 - Core Web Vitals - The Fast & The Spurious
 
The Technical SEO Renaissance
The Technical SEO RenaissanceThe Technical SEO Renaissance
The Technical SEO Renaissance
 
SEO 101 webinar 10 25-2012
SEO 101 webinar 10 25-2012SEO 101 webinar 10 25-2012
SEO 101 webinar 10 25-2012
 
Scaling Keyword Research to Find Content Gaps
Scaling Keyword Research to Find Content GapsScaling Keyword Research to Find Content Gaps
Scaling Keyword Research to Find Content Gaps
 

Similar to Start Building SEO Efficiencies with Automation - MNSearch Summit 2018

Yahoo! BOSS API external 20091001
Yahoo! BOSS API external 20091001Yahoo! BOSS API external 20091001
Yahoo! BOSS API external 20091001
Fred Meng
 
Global Search Strategy
Global Search StrategyGlobal Search Strategy
Global Search Strategy
adlift
 

Similar to Start Building SEO Efficiencies with Automation - MNSearch Summit 2018 (20)

Yahoo! BOSS API external 20091001
Yahoo! BOSS API external 20091001Yahoo! BOSS API external 20091001
Yahoo! BOSS API external 20091001
 
Y Boss External 20091017
Y Boss External 20091017Y Boss External 20091017
Y Boss External 20091017
 
TechSEO Boost 2018: Programming Basics for SEOs
TechSEO Boost 2018: Programming Basics for SEOsTechSEO Boost 2018: Programming Basics for SEOs
TechSEO Boost 2018: Programming Basics for SEOs
 
Redefining Technical SEO - Paul Shapiro at MozCon 2019
Redefining Technical SEO - Paul Shapiro at MozCon 2019Redefining Technical SEO - Paul Shapiro at MozCon 2019
Redefining Technical SEO - Paul Shapiro at MozCon 2019
 
Fundamentals Of Search
Fundamentals Of SearchFundamentals Of Search
Fundamentals Of Search
 
AI assisted testing using postman and openAI.pdf
AI assisted testing using postman and openAI.pdfAI assisted testing using postman and openAI.pdf
AI assisted testing using postman and openAI.pdf
 
Developing Brilliant and Powerful APIs in Ruby & Python
Developing Brilliant and Powerful APIs in Ruby & PythonDeveloping Brilliant and Powerful APIs in Ruby & Python
Developing Brilliant and Powerful APIs in Ruby & Python
 
Global Search Strategy
Global Search StrategyGlobal Search Strategy
Global Search Strategy
 
Dev Dives: Leverage APIs and Gen AI to power automations for RPA and software...
Dev Dives: Leverage APIs and Gen AI to power automations for RPA and software...Dev Dives: Leverage APIs and Gen AI to power automations for RPA and software...
Dev Dives: Leverage APIs and Gen AI to power automations for RPA and software...
 
Top 13 web scraping tools in 2022
Top 13 web scraping tools in 2022Top 13 web scraping tools in 2022
Top 13 web scraping tools in 2022
 
Boss hack u-iit-madras-2012
Boss hack u-iit-madras-2012Boss hack u-iit-madras-2012
Boss hack u-iit-madras-2012
 
Tackling Python: What is it and How Can it Help with Technical SEO? | TechSEO...
Tackling Python: What is it and How Can it Help with Technical SEO? | TechSEO...Tackling Python: What is it and How Can it Help with Technical SEO? | TechSEO...
Tackling Python: What is it and How Can it Help with Technical SEO? | TechSEO...
 
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
 
Serving ML easily with FastAPI - meme version
Serving ML easily with FastAPI - meme versionServing ML easily with FastAPI - meme version
Serving ML easily with FastAPI - meme version
 
Measuring Search Engine Quality using Spark and Python
Measuring Search Engine Quality using Spark and PythonMeasuring Search Engine Quality using Spark and Python
Measuring Search Engine Quality using Spark and Python
 
Tackling Python: How It Can Help With Technical SEO | Pint Sized Meetup Janua...
Tackling Python: How It Can Help With Technical SEO | Pint Sized Meetup Janua...Tackling Python: How It Can Help With Technical SEO | Pint Sized Meetup Janua...
Tackling Python: How It Can Help With Technical SEO | Pint Sized Meetup Janua...
 
Yahoo BOSS Presentation London Open Hack Day Talk Boss
Yahoo BOSS Presentation London Open Hack Day Talk   BossYahoo BOSS Presentation London Open Hack Day Talk   Boss
Yahoo BOSS Presentation London Open Hack Day Talk Boss
 
Productionizing Data Science at Experience
Productionizing Data Science at ExperienceProductionizing Data Science at Experience
Productionizing Data Science at Experience
 
INTERFACE by apidays 2023 - APIs with bounded contexts, Jose Haro Peralta, mi...
INTERFACE by apidays 2023 - APIs with bounded contexts, Jose Haro Peralta, mi...INTERFACE by apidays 2023 - APIs with bounded contexts, Jose Haro Peralta, mi...
INTERFACE by apidays 2023 - APIs with bounded contexts, Jose Haro Peralta, mi...
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
 

More from Paul Shapiro

More from Paul Shapiro (6)

How to Leverage APIs for SEO #TTTLive2019
How to Leverage APIs for SEO #TTTLive2019How to Leverage APIs for SEO #TTTLive2019
How to Leverage APIs for SEO #TTTLive2019
 
Put Your Data To Work: Ways to Uncover Content Ideas That Deliver #Confluence...
Put Your Data To Work: Ways to Uncover Content Ideas That Deliver #Confluence...Put Your Data To Work: Ways to Uncover Content Ideas That Deliver #Confluence...
Put Your Data To Work: Ways to Uncover Content Ideas That Deliver #Confluence...
 
The Actionable Guide to Doing Better Semantic Keyword Research #BrightonSEO (...
The Actionable Guide to Doing Better Semantic Keyword Research #BrightonSEO (...The Actionable Guide to Doing Better Semantic Keyword Research #BrightonSEO (...
The Actionable Guide to Doing Better Semantic Keyword Research #BrightonSEO (...
 
Idea: Selling Clients Google+ Through YouTube
Idea: Selling Clients Google+ Through YouTubeIdea: Selling Clients Google+ Through YouTube
Idea: Selling Clients Google+ Through YouTube
 
Social-SEO Content Strategy: Ideas for a Data Driven Approach
Social-SEO Content Strategy: Ideas for a Data Driven ApproachSocial-SEO Content Strategy: Ideas for a Data Driven Approach
Social-SEO Content Strategy: Ideas for a Data Driven Approach
 
Regular Expressions for Regular Joes (and SEOs)
Regular Expressions for Regular Joes (and SEOs)Regular Expressions for Regular Joes (and SEOs)
Regular Expressions for Regular Joes (and SEOs)
 

Recently uploaded

Mastering Affiliate Marketing: A Comprehensive Guide to Success
Mastering Affiliate Marketing: A Comprehensive Guide to SuccessMastering Affiliate Marketing: A Comprehensive Guide to Success
Mastering Affiliate Marketing: A Comprehensive Guide to Success
Abdulsamad Lukman
 

Recently uploaded (20)

Optimizing Your Marketing with AI-Powered Prompts
Optimizing Your Marketing with AI-Powered PromptsOptimizing Your Marketing with AI-Powered Prompts
Optimizing Your Marketing with AI-Powered Prompts
 
Best 5 Graphics Designing Course In Chandigarh
Best 5 Graphics Designing Course In ChandigarhBest 5 Graphics Designing Course In Chandigarh
Best 5 Graphics Designing Course In Chandigarh
 
Discover Ardency Elite: Elevate Your Lifestyle
Discover Ardency Elite: Elevate Your LifestyleDiscover Ardency Elite: Elevate Your Lifestyle
Discover Ardency Elite: Elevate Your Lifestyle
 
SALES-PITCH-an-introduction-to-sales.pptx
SALES-PITCH-an-introduction-to-sales.pptxSALES-PITCH-an-introduction-to-sales.pptx
SALES-PITCH-an-introduction-to-sales.pptx
 
[Expert Panel] New Google Shopping Ads Strategies Uncovered
[Expert Panel] New Google Shopping Ads Strategies Uncovered[Expert Panel] New Google Shopping Ads Strategies Uncovered
[Expert Panel] New Google Shopping Ads Strategies Uncovered
 
HITECH CITY CALL GIRL IN 9234842891 💞 INDEPENDENT ESCORT SERVICE HITECH CITY
HITECH CITY CALL GIRL IN 9234842891 💞 INDEPENDENT ESCORT SERVICE HITECH CITYHITECH CITY CALL GIRL IN 9234842891 💞 INDEPENDENT ESCORT SERVICE HITECH CITY
HITECH CITY CALL GIRL IN 9234842891 💞 INDEPENDENT ESCORT SERVICE HITECH CITY
 
The Impact Of Social Media Advertising.pdf
The Impact Of Social Media Advertising.pdfThe Impact Of Social Media Advertising.pdf
The Impact Of Social Media Advertising.pdf
 
SP Search Term Data Optimization Template.pdf
SP Search Term Data Optimization Template.pdfSP Search Term Data Optimization Template.pdf
SP Search Term Data Optimization Template.pdf
 
personal branding kit for music business
personal branding kit for music businesspersonal branding kit for music business
personal branding kit for music business
 
Gain potential customers through Lead Generation
Gain potential customers through Lead GenerationGain potential customers through Lead Generation
Gain potential customers through Lead Generation
 
Elevating Your Digital Presence by Evitha.pdf
Elevating Your Digital Presence by Evitha.pdfElevating Your Digital Presence by Evitha.pdf
Elevating Your Digital Presence by Evitha.pdf
 
Aiizennxqc Digital Marketing | SEO & SMM
Aiizennxqc Digital Marketing | SEO & SMMAiizennxqc Digital Marketing | SEO & SMM
Aiizennxqc Digital Marketing | SEO & SMM
 
The seven principles of persuasion by Dr. Robert Cialdini
The seven principles of persuasion by Dr. Robert CialdiniThe seven principles of persuasion by Dr. Robert Cialdini
The seven principles of persuasion by Dr. Robert Cialdini
 
Mastering Affiliate Marketing: A Comprehensive Guide to Success
Mastering Affiliate Marketing: A Comprehensive Guide to SuccessMastering Affiliate Marketing: A Comprehensive Guide to Success
Mastering Affiliate Marketing: A Comprehensive Guide to Success
 
2024 Social Trends Report V4 from Later.com
2024 Social Trends Report V4 from Later.com2024 Social Trends Report V4 from Later.com
2024 Social Trends Report V4 from Later.com
 
HOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATION
HOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATIONHOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATION
HOW TO HANDLE SALES OBJECTIONS | SELLING AND NEGOTIATION
 
Social Media Marketing Portfolio - Maharsh Benday
Social Media Marketing Portfolio - Maharsh BendaySocial Media Marketing Portfolio - Maharsh Benday
Social Media Marketing Portfolio - Maharsh Benday
 
Distribution Ad Platform_ The Role of Distribution Ad Network.pdf
Distribution Ad Platform_ The Role of  Distribution Ad Network.pdfDistribution Ad Platform_ The Role of  Distribution Ad Network.pdf
Distribution Ad Platform_ The Role of Distribution Ad Network.pdf
 
Micro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdf
Micro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdfMicro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdf
Micro-Choices, Max Impact Personalizing Your Journey, One Moment at a Time.pdf
 
W.H.Bender Quote 61 -Influential restaurant and food service industry network...
W.H.Bender Quote 61 -Influential restaurant and food service industry network...W.H.Bender Quote 61 -Influential restaurant and food service industry network...
W.H.Bender Quote 61 -Influential restaurant and food service industry network...
 

Start Building SEO Efficiencies with Automation - MNSearch Summit 2018

  • 1. Paul Shapiro | @fighto How to Get Started Start Building SEO Efficiencies with Automation
  • 2. Paul Shapiro | @fighto
  • 3. Paul Shapiro | @fighto Why Automate? 1.Work faster and free up time for the important stuff 2.Look at more data 3.Improved consistency and procedure
  • 4. Paul Shapiro | @fighto What Can You Automate? • If you’re doing something on a routine basis, it can probably be automated (but doesn’t mean it should). • Any procedures that can be broken down into smaller, micro-tasks that can be handled a by a computer. • Machine Learning can help with more complex decision making (think power of AlphaGo).
  • 5. Paul Shapiro | @fighto
  • 6. Paul Shapiro | @fighto
  • 7. Paul Shapiro | @fighto How Do You Automate?
  • 8. Paul Shapiro | @fighto How to Conceptualize Automation: Break into Micro-tasks 1 2 3 4
  • 9. Paul Shapiro | @fighto How to Work with APIs API Endpoint: http://api.grepwords.com/lookup?apikey=random_string&q=keyword Simple API key authentication via GET request String is unique to you (authentic ation) Variable, changes and often looped
  • 10. Paul Shapiro | @fighto How to Work with APIs http://api.grepwords.com/lookup?apikey=secret&q=board+games Output (JSON): Simple API key authentication via GET request [{"keyword":"board games","updated_cpc":"2018-04-30","updated_cmp":"2018-04- 30","updated_lms":"2018-04-30","updated_history":"2018-04- 30","lms":246000,"ams":246000,"gms":246000,"competition":0.86204091185173,"com petetion":0.86204091185173,"cmp":0.86204091185173,"cpc":0.5,"m1":201000,"m1_mo nth":"2018-02","m2":246000,"m2_month":"2018-01","m3":450000,"m3_month":"2017- 12","m4":368000,"m4_month":"2017-11","m5":201000,"m5_month":"2017- 10","m6":201000,"m6_month":"2017-09","m7":201000,"m7_month":"2017- 08","m8":201000,"m8_month":"2017-07","m9":201000,"m9_month":"2017- 06","m10":201000,"m10_month":"2017-05","m11":201000,"m11_month":"2017- 04","m12":201000,"m12_month":"2017-03"}]
  • 11. Paul Shapiro | @fighto How to Work with APIs Most API Outputs: 1. JSON 2. XML 3. CSV
  • 12. Paul Shapiro | @fighto How to Work with APIs Last Step: Parse it!
  • 13. Paul Shapiro | @fighto How to Work with APIs Parsing Example Using Python: import json json_string = '[{"keyword":"board games","updated_cpc":"2018-04- 30","updated_cmp":"2018-04-30","updated_lms":"2018-04- 30","updated_history":"2018-04- 30","lms":246000,"ams":246000,"gms":246000,"competition":0.86204091185173,"com petetion":0.86204091185173,"cmp":0.86204091185173,"cpc":0.5,"m1":201000,"m1_mo nth":"2018-02","m2":246000,"m2_month":"2018-01","m3":450000,"m3_month":"2017- 12","m4":368000,"m4_month":"2017-11","m5":201000,"m5_month":"2017- 10","m6":201000,"m6_month":"2017-09","m7":201000,"m7_month":"2017- 08","m8":201000,"m8_month":"2017-07","m9":201000,"m9_month":"2017- 06","m10":201000,"m10_month":"2017-05","m11":201000,"m11_month":"2017- 04","m12":201000,"m12_month":"2017-03"}]‘ parsed_json([0]['gms']) 1 2 3
  • 14. Paul Shapiro | @fighto How to Work with APIs Full Python Script: import requests import json r = requests.get('http://api.grepwords.com/lookup?apike y=secretapikey&q=board+games') parsed_json = json.loads(r.text) print(parsed_json[0]['gms'])
  • 15. Paul Shapiro | @fighto How to Work with APIs Output
  • 16. Paul Shapiro | @fighto Tools for Automation
  • 17. Paul Shapiro | @fighto https://www.knime.org
  • 18. Paul Shapiro | @fighto Why KNIME? • Fast way to put together complex analyses • Great for prototyping • Large library of built-in “nodes” • Free/Open Source • Run on Windows/Mac/Linux • Very expandable – even compatible with R, Python, Java, JavaScript • Easy enough for non-technical staff to grasp
  • 19. Paul Shapiro | @fighto Data Agility
  • 20. Paul Shapiro | @fighto Other Options • Scripting Languages • Python • Ruby • Node.js • Go • R • Excel with VBA • Google Sheets
  • 21. Paul Shapiro | @fighto Cron & Windows Task Manager are Your Friend
  • 22. Paul Shapiro | @fighto What is Cron and Why? • *NIX system daemon used to schedule tasks and scripts. • Windows Task Manager is the Windows equivalent of Cron. • This way we can schedule scripts and programs that perform automated tasks on a recurring, scheduled basis.
  • 23. Paul Shapiro | @fighto Quick How To * * * * * command /to/execute Day of Week (0-6) (Sunday = 0) Month (1-12) Hour (0-23) Day of Month (1-31) Minute (0-59)
  • 24. Paul Shapiro | @fighto Run Every Month at Midnight 0 0 1 * * python datacollector.py
  • 25. Paul Shapiro | @fighto The Basics of KNIME
  • 26. Paul Shapiro | @fighto What is a Node? • Nodes are prebuilt, drag and drop modules designed perform a singular task • Nodes are strung together like a chain to accomplish larger, more complex tasks • Nodes can be grouped together into “meta-nodes”, which can be configured in unison
  • 27. Paul Shapiro | @fighto How Do You Add Nodes & How Do They Connect? How do you add nodes to your “workflow”? How do you string nodes together?
  • 28. Paul Shapiro | @fighto How Do You Configure & Run Nodes? Configuring Nodes Running Workflows OR
  • 29. Paul Shapiro | @fighto Keyword Research
  • 30. Paul Shapiro | @fighto Most Keyword Research Looks Like This
  • 31. Paul Shapiro | @fighto Typical Time Investment for Keyword Research 5 8 12 21 21 6 10 18 22 28 0 5 10 15 20 25 30 Micro (0-49 pages) Small (50-99 pages) Medium (100-249 pages) Large (250-499 pages) Extra Large (>500 pages) Hours to Complete Keyword Research by Site Size Average (Low End) Average (High End)
  • 32. Paul Shapiro | @fighto Size of the Data Set vs.
  • 33. Paul Shapiro | @fighto Filtering + Data Manipula- tions One Big Keyword List Seed Keywords - List - GWMT - SEMRush Comp. KWs - SQR Keywords Keyword Planner Suggestions (via GrepWords) Google Autocomplete Semantic Keyword Recommendations (via MarketMuse) Google Autocomplete SEMRush Domain vs. Domain Keywords Google Autocomplete
  • 34. Paul Shapiro | @fighto Data Manipulations / Calculations • Get top 10 results from rank checking API (i.e., GetSTAT) • Use Moz API nodes and find average PA to assess competiveness. • Optionally, use SEMRush’s Keyword Difficulty API Organic Competition Search Volume Keyword Trends
  • 35. Paul Shapiro | @fighto Data Manipulations / Calculations • Get top 10 results from rank checking API (i.e., GetSTAT) • Use Moz API nodes and find average PA to assess competiveness. • Optionally, use SEMRush’s Keyword Difficulty API Organic Competition • Get Search Volumes via SEMRush API or via GrepWords APISearch Volume Keyword Trends
  • 36. Paul Shapiro | @fighto Data Manipulations / Calculations • Get top 10 results from rank checking API (i.e., GetSTAT) • Use Moz API nodes and find average PA to assess competiveness. • Optionally, use SEMRush’s Keyword Difficulty API Organic Competition • Get Search Volumes via SEMRush API or via GrepWords APISearch Volume • Use 2 Years of Google Trends data to calculate slope and determine growing/declining keywordsKeyword Trends
  • 37. Paul Shapiro | @fighto String ‘em All Together and then…
  • 38. Paul Shapiro | @fighto Visualize This top-right quadrant contains keywords with: • Low competition • Good growth Larger bubbles show higher search volumes. You can alternatively use current rank on the x-axis to signal organic market share like a traditional growth-share matrix.
  • 39. Paul Shapiro | @fighto Option: Tableau
  • 40. Paul Shapiro | @fighto Option: Python + Bokeh Charts in KNIME
  • 41. Paul Shapiro | @fighto Sample Python Code: http://pshapi.ro/SLBokeh
  • 42. Paul Shapiro | @fighto Learn More… SearchLove Presentation about Automating Keyword Research: http://pshapi.ro/2idcqYF BrightonSEO Presentation about Semantic Keyword Research: https://searchwilderness.com/semantic-keyword-research/
  • 43. Paul Shapiro | @fighto What to Automate for SEO?
  • 44. Paul Shapiro | @fighto Reporting
  • 45. Paul Shapiro | @fighto
  • 46. Paul Shapiro | @fighto Data Collection
  • 47. Paul Shapiro | @fighto Search Console Schedule to run monthly with Cron and backup to SQL database: https://searchwilderness.com/gwmt- data-python/ JR Oakes’ BigQuery vision: http://pshapi.ro/2vmjDe8
  • 48. Paul Shapiro | @fighto 301 Redirect Mapping from Old URLs
  • 49. Paul Shapiro | @fighto 301 Redirect Mapping from Old URLs Crawl Current Site Download Rendered Pages Extract Main Content (BoilerPipe) Convert to Bitvector Get Historic URLs from Wayback Machine API Filter Out URLs found on Current Site Grab Rendered Page from Wayback Machine Extract Main Content (BoilerPipe) Convert to Bitvector Cosine Similarity Generate .htaccess strings 1 2 3
  • 50. Paul Shapiro | @fighto KNIME Toolkit
  • 51. Paul Shapiro | @fighto SERP Similarity / Overlap
  • 52. Paul Shapiro | @fighto 1. Download ranking data via STAT API 2. Compare results from 1-10 for each query against results from 1- 10 for every other query. 3. Calculate percent similarity. 4. Schedule checks and examine what changed.
  • 53. Paul Shapiro | @fighto Test JavaScript Rendering
  • 54. Paul Shapiro | @fighto http://pshapi.ro/puppetcrawl
  • 55. Paul Shapiro | @fighto Performance Testing with Lighthouse
  • 56. Paul Shapiro | @fighto http://pshapi.ro/perfpony
  • 57. Paul Shapiro | @fighto Anomaly Detection
  • 58. Paul Shapiro | @fighto CTR 1. Data collection: We collect data on query, page and associated metrics via the Google Search Console Search Analytics API. 2. Round average position: I round average position to the tenths decimal place (e.g., 1.19 is rounded to 1.2). 3. Math: We identify outliers using a combination of the statistical methods for identifying outliers (modified z-score, IQR). 4. Email: If any negative outliers are identified for a keyword query and page combination at an average position, an email is sent out identifying all of this data to each of the SEOs assigned to the account to investigate. 5. Scheduling: Set your script to run on a recurring basis. My SEL Article: http://pshapi.ro/2Ae2LYP
  • 59. Paul Shapiro | @fighto Content Ideas
  • 60. Paul Shapiro | @fighto Reddit Data Mining Reddit Data Mining: Python Script https://searchwilderness.com/reddit-python-code/ 1. Enter filename for output 2. Enter a search or series of searches 3. Choose reddit sorting method. For this purpose, choose ‘new’ 4. Choose to look at all of reddit, or isolate to particular subreddit(s). 5. Schedule with cron to find new topic ideas on a recurring basis.
  • 61. Paul Shapiro | @fighto AMP Validation
  • 62. Paul Shapiro | @fighto Bulk Check AMP Pages with AMPBench API Python Script: http://pshapi.ro/2AHlNaE Requires: • Python • Requests package Ideally AMPBench would run locally, but can be ran off the appspot demo URL.
  • 63. Paul Shapiro | @fighto Link Building
  • 64. Paul Shapiro | @fighto http://apiv2.ahrefs.com/?from=backlinks_new_lost&limit=10&target=competitor.com& where=type:%22new%22,date:%222017-06- 01%22&mode=domain&output=json&token=your_personal_api_key Link Building: Prospecting with Competitors Scheduled use of Ahrefs API Parsed Results + SMTP = Link Opportunities
  • 65. Paul Shapiro | @fighto Tech Audit Related Site Changes
  • 66. Paul Shapiro | @fighto • Detect new 404s and other errors • New redirects • Changes to robots.txt • Content based changes over time • Indexation changes • New pages created • Changes in rank or traffic (rank checking API or Search Console) Use Cloud Crawler like Botify/Deepcrawl with API or a custom solution
  • 67. Paul Shapiro | @fighto Custom Solution 1. Run Screaming Frog in the Cloud with lots of RAM: • Amazon AWS: http://ipullrank.com/how-to-run- screaming-frog-and-url-profiler-on-amazon-web- services/ • Google Cloud: https://online.marketing/guide/screaming-frog-in- google-cloud/ 2. Activate with command line and Task Manager for scheduling 3. Use a macro program like RoboTask to generate reports and send to a particular folder 4. Download via FTP or dump to SQL database for analysis 5. Analysis produces alerts with SMTP
  • 68. Paul Shapiro | @fighto Meta Description Creation
  • 69. Paul Shapiro | @fighto 1. Download webpage body contents 2. Run through text summarization engine(s) to produce small snippets of important page text 3. Have person edit to avoid truncation and improve language Process for Semi-Automated Meta Descriptions https://searchengineland.com/reducing-the-time-it-takes- to-write-meta-descriptions-for-large-websites-299887
  • 70. Paul Shapiro | @fighto Alt Attribute Creation
  • 71. Paul Shapiro | @fighto Recognize Images • You can use custom machine learning options (https://www.tensorflow.org/tutorials/image_recognition) but it’s easier and more effective to use an API in this context. • For APIs, you have options: • Microsoft Computer Vision: https://azure.microsoft.com/en-us/services/cognitive- services/computer-vision/ • Google Cloud Vision API: https://cloud.google.com/vision/ • CloudSight: https://cloudsight.ai/ 1. Download all images without alt attribute 2. Run through API and get a caption (not perfect, better than nothing)
  • 72. Paul Shapiro | @fighto
  • 73. Paul Shapiro | @fighto A Word of Caution… https://xkcd.com/1319/
  • 74. Paul Shapiro | @fighto CatalystDigital.com Paul Shapiro https://searchwilderness.com @fighto Thanks!

Editor's Notes

  1. Focus on medium size-sites