@haydenroche3
Technical SEO at
Scale
What to do when your Excel keeps
crashing
1
Senior Analyst, Red Ventures
@haydenroche3 #ReadingSEO
What we’ll walk through
● Brief intro to SQL and BigQuery
2@haydenroche3 #ReadingSEO
What we’ll walk through
● Brief intro to SQL and BigQuery
● Merging large data sets and the power you’ll gain
3@haydenroche3 #ReadingSEO
What we’ll walk through
● Brief intro to SQL and BigQuery
● Merging large data sets and the power you’ll gain
● Projects that YOU can do with “minimal-ish”
analytical effort
4@haydenroche3 #ReadingSEO
5
Intro to BigQuery and
SQL 6#ReadingSEO
BigQuery 101
Online database where you
can quickly pull data using
SQL
@haydenroche3 #ReadingSEO 7
Joining Data Sources w/ SQL
http://www.sql-join.com/sql-join-types
@haydenroche3 #ReadingSEO 8
FREE SQL Resources
9
1. https://www.w3schools.com/sql/default.asp
2. https://www.udemy.com/topic/sql/free/
3. https://www.codecademy.com/learn/learn-sql
4. Your colleagues and technical SEO community
@haydenroche3 #ReadingSEO
BigQuery and SQL for SEOs
linkedin.com/in/areejabuali/
@areej_abuali
Find Areej’s slides here!
@haydenroche3 #ReadingSEO 10
Challenge 11#ReadingSEO
12
“My website has 10K → 100K → 1M → 10M pages.
Doing analysis takes a decade without a data
expert.”
“Impossible” Technical SEO
@haydenroche3 #ReadingSEO
13
“Two stars in the universe have the same chance of
colliding as 4 bumblebees randomly flying around
the United States.”
Seemingly Impossible Statistic
@haydenroche3 #ReadingSEO
14
“My website has 10K → 100K → 1M → 10M pages.
Doing analysis takes a decade without a data
expert.”
Not So “Impossible” Technical SEO
@haydenroche3 #ReadingSEO
Case Study:
15
“StockX is the world’s
first stock market for
things – a live ‘bid/ask’
marketplace.”
@haydenroche3 #ReadingSEO
Starting with a Crawl
16
Find all the URLs!
Over 100K found
URLs in a starter
crawl
@haydenroche3 #ReadingSEO
Export All URLs
17@haydenroche3 #ReadingSEO
Get Everything Into
BigQuery
18#ReadingSEO
1. Getting a CSV in BigQuery
19
Upload from local storage (your desktop)
→ File size limitations
@haydenroche3 #ReadingSEO
1. Getting a CSV in BigQuery
20
Better strategy: upload csv to
Cloud Storage
@haydenroche3 #ReadingSEO
2. Creating a Storage Bucket
21
https://cloud.google.com/storage/docs/
creating-buckets
@haydenroche3 #ReadingSEO
3. Create a Data Table
22
Create Table within your
“techseo” project
@haydenroche3 #ReadingSEO
3. Create a Data Table
23
Find your Screaming Frog CSV from
Cloud Storage
@haydenroche3 #ReadingSEO
Trust the Process
24#ReadingSEO
Starting with a Crawl
25
sf.URL sf.Status_Code
/ 200
/supreme 200
/supreme/jackets 200
/supreme-duffle-bag-ss18-black 200
/nike/airmax/95 200
@haydenroche3 #ReadingSEO
Starting with a Crawl
26
SELECT
sf.URL,
sf.Status_Code
FROM `techseo.site_audit.screaming_frog_crawl` sf
LIMIT 5
@haydenroche3 #ReadingSEO
Starting with a Crawl
27
sf.URL sf.Status_Code
/ 200
/supreme 200
/supreme/jackets 200
/supreme-duffle-bag-ss18-black 200
/nike/airmax/95 200
SELECT
sf.URL,
sf.Status_Code
FROM
`techseo.site_audit.screaming_frog_
crawl` sf
LIMIT 5
@haydenroche3 #ReadingSEO
Now Let’s Add
More Data
28#ReadingSEO
Adding in Google Analytics
29
Option 1:
Export Data
From UI
Pros: Easy, Quick
Cons: Manual
@haydenroche3 #ReadingSEO
Adding in Google Analytics
30
Option 1:
Export Data
From UI
Pros: Easy, Quick
Cons: Manual
Option 2:
BigQuery + GA Data
Integration
Pros: Automated & granular
Cons: API setup knowledge*
@haydenroche3 #ReadingSEO
Not real data!
31@haydenroche3 #ReadingSEO
Adding in Google Analytics
32
ga.Landing_Page ga.Sessions ga.Sales ga.Revenue
/ 800,000 12,800 £576,000
/supreme 29,000 145 £11,165
/supreme/jackets 6,700 52 £11,759
/supreme-duffle-bag-ss18-black 4,400 48 £19,360
/nike/airmax/95 18,800 47 £3,055
@haydenroche3 #ReadingSEO
Adding in Google Analytics
33
ga.Landing_Page ga.Sessions ga.Sales ga.Revenue
/ 800,000 12,800 £576,000
/supreme 29,000 145 £11,165
/supreme/jackets 6,700 52 £11,759
/supreme-duffle-bag-ss18-black 4,400 48 £19,360
/nike/airmax/95 18,800 47 £3,055
SELECT
ga.Landing_Page,
ga.Sessions,
ga.Sales,
ga.Revenue
FROM
`techseo.site_audit.google_analyti
cs` ga
@haydenroche3 #ReadingSEO
Join SF and GA
34#ReadingSEO
Joining SF & GA
35
SELECT
sf.URL,
sum(ga.Sessions) AS Sessions,
sum(ga.Revenue) AS Revenue,
round(ga.Revenue/ga.Sessions, 2) AS RPS
FROM
`techseo.site_audit.screaming_frog_crawl` sf
LEFT JOIN `techseo.site_audit.google_analytics` ga ON (sf.URL = ga.Landing_Page)
GROUP BY
sf.URL
@haydenroche3 #ReadingSEO
Joining SF & GA
36
SELECT
sf.URL,
sum(ga.Sessions) AS Sessions,
sum(ga.Revenue) AS Revenue,
round(ga.Revenue/ga.Sessions, 2) AS RPS
FROM
`techseo.site_audit.screaming_frog_crawl` sf
LEFT JOIN
`techseo.site_audit.google_analytics` ga ON
(sf.URL = ga.Landing_Page)
GROUP BY
sf.URL
sf.URL ga.Sessions ga.Revenue ga.RPS
/ 800,000 £576,000 £0.72
/supreme 29,000 £11,165 £0.39
/supreme/jackets 6,700 £11,759 £1.76
/supreme-duffle-bag-
ss18-black
4,400 £19,360 £4.40
/nike/airmax/95 18,800 £3,055 £0.16
@haydenroche3 #ReadingSEO
Adding in Search
Console
37#ReadingSEO
Once again…
Not real data!
38@haydenroche3 #ReadingSEO
Adding in Search Console
39
gsc.Landing_Page gsc.Query gsc.Clicks gsc.Impressions gsc.Position
/ stockx 658,400 823,000 1.00
/supreme supreme 79,300 1,220,000 4.00
/supreme/jackets supreme windbreaker 1,260 3,600 1.00
/supreme-duffle-bag-ss18-black supreme duffle bag 2,268 8,100 1.20
/nike/airmax/95 nike airmax 95 925 74,000 6.50
@haydenroche3 #ReadingSEO
Joining SF, GA & GSC
40
SELECT
sf.URL,
sum(ga.Sessions) AS Sessions,
sum(ga.Revenue) AS Revenue,
count(gsc.Query) AS Ranking_KWs,
avg(gsc.Position) AS Avg_Pos
FROM `techseo.site_audit.screaming_frog_crawl` sf
LEFT JOIN `techseo.site_audit.google_analytics` ga ON (sf.URL = ga.Landing_Page)
LEFT JOIN `techseo.site_audit.google_search_console` gsc ON (sf.URL = gsc.Landing_Page)
GROUP BY
sf.URL
@haydenroche3 #ReadingSEO
Joining SF, GA & GSC
41
sf.URL ga.Sessions ga.Revenue gsc.Ranking_KWs gsc.Avg_Pos
/ 800,000 £576,000 30 1.00
/supreme 29,000 £11,165 7,900 4.00
/supreme/jackets 6,700 £11,759 610 1.00
/supreme-duffle-bag-ss18-black 4,400 £19,360 10 1.20
/nike/airmax/95 18,800 £3,055 4 6.50
@haydenroche3 #ReadingSEO
42@haydenroche3 #ReadingSEO
Additional Data Sources
43
● Off-page factors → backlinks and referring domains
@haydenroche3 #ReadingSEO
Additional Data Sources
44
● Off-page factors → backlinks and referring domains
● Log files → Googlebot requests and frequency
@haydenroche3 #ReadingSEO
Additional Data Sources
45
● Off-page factors → backlinks and referring domains
● Log files → Googlebot requests and frequency
● Pagespeed insights → TTI, FCP, FMP
@haydenroche3 #ReadingSEO
Additional Data Sources
46
● Off-page factors → backlinks and referring domains
● Log files → Googlebot requests and frequency
● Pagespeed insights → TTI, FCP, FMP
● GSC Coverage Report → indexed pages
@haydenroche3 #ReadingSEO
Additional Data Sources
47
● Off-page factors → backlinks and referring domains
● Log files → Googlebot requests and frequency
● Keywords → 3rd party ranking data
● Pagespeed insights → TTI, FCP, FMP
● GSC Coverage Report → indexed pages
@haydenroche3 #ReadingSEO
48
“Let’s Take A Quick Breather”
@haydenroche3 #ReadingSEO
Time to
Harness the
Data Power
49#ReadingSEO
50
“If you flip a coin 100 times, there’s less than an 8%
chance that it ends 50/50.”
Seemingly Impossible Statistic
@haydenroche3 #ReadingSEO
Site Consolidation 51#ReadingSEO
Site Consolidation
52
Goal:
Identify low-value pages/subfolders
→ redirect or remove
@haydenroche3 #ReadingSEO
Site Consolidation
53
URL
/adidas-yeezy-boost-350-v2-black
/adidas-yeezy-boost-350-v2-core-black-green
/palace-pro-tool-t-shirt-black
/palace-pro-tool-t-shirt-white
/supreme-waist-bag-ss19-black
/supreme-waist-bag-ss19-light-blue
/jordan-4-retro-black-cement-2012
/jordan-4-retro-white-cement-2012
Start with a
sample → expand
to everything
@haydenroche3 #ReadingSEO
Site Consolidation
54
Use a CASE Statement to
group URLs at scale
@haydenroche3 #ReadingSEO
Site Consolidation
55
CASE
WHEN URL like ‘/adidas%’ THEN ‘Adidas’
WHEN URL like ‘/palace%’ THEN ‘Palace’
WHEN URL like ‘/supreme%’ THEN ‘Supreme’
WHEN URL like ‘/jordan%’ THEN ‘Air Jordan’
ELSE ‘’
END as Brand
Wildcard (%)
allows any
character/num
ber to follow
‘/adidas’
@haydenroche3 #ReadingSEO
Site Consolidation
56
Time to let go of
the manual Excel
filtering +
labelling
@haydenroche3 #ReadingSEO
Site Consolidation
57
Landing_Page Brand
/adidas-yeezy-boost-350-v2-black Adidas
/adidas-yeezy-boost-350-v2-core-black-green Adidas
/palace-pro-tool-t-shirt-black Palace
/palace-pro-tool-t-shirt-white Palace
/supreme-waist-bag-ss19-black Supreme
/supreme-waist-bag-ss19-light-blue Supreme
/jordan-4-retro-black-cement-2012 Air Jordan
/jordan-4-retro-white-cement-2012 Air Jordan
@haydenroche3 #ReadingSEO
Site Consolidation
58
Landing_Page Brand Type
/adidas-yeezy-boost-350-v2-black Adidas Shoes
/adidas-yeezy-boost-350-v2-core-black-green Adidas Shoes
/palace-pro-tool-t-shirt-black Palace T-Shirt
/palace-pro-tool-t-shirt-white Palace T-Shirt
/supreme-waist-bag-ss19-black Supreme Bag
/supreme-waist-bag-ss19-light-blue Supreme Bag
/jordan-4-retro-black-cement-2012 Air Jordan Shoes
/jordan-4-retro-white-cement-2012 Air Jordan Shoes
@haydenroche3 #ReadingSEO
Site Consolidation
59
Landing_Page Brand Type Colour
/adidas-yeezy-boost-350-v2-black Adidas Shoes Black
/adidas-yeezy-boost-350-v2-core-black-green Adidas Shoes Black-Green
/palace-pro-tool-t-shirt-black Palace T-Shirt Black
/palace-pro-tool-t-shirt-white Palace T-Shirt White
/supreme-waist-bag-ss19-black Supreme Bag Black
/supreme-waist-bag-ss19-light-blue Supreme Bag Light-Blue
/jordan-4-retro-black-cement-2012 Air Jordan Shoes Black
/jordan-4-retro-white-cement-2012 Air Jordan Shoes White
@haydenroche3 #ReadingSEO
Site Consolidation
60
Combining CASE statements
with what we learned before
@haydenroche3 #ReadingSEO
Site Consolidation
61
Brand Type Indexed Pages
Adidas Shoes 150
Palace T-Shirt 15,000
Supreme Bag 10,000
Air Jordan Shoes 50
@haydenroche3 #ReadingSEO
Site Consolidation
62
Brand Type Indexed Pages Revenue
Adidas Shoes 150 £750,000
Palace T-Shirt 15,000 £1,000
Supreme Bag 10,000 £300,000
Air Jordan Shoes 50 £125,000
@haydenroche3 #ReadingSEO
Site Consolidation
63
Brand Type Indexed Pages Revenue Backlinks
Adidas Shoes 150 £750,000 1,400
Palace T-Shirt 15,000 £1,000 5
Supreme Bag 10,000 £300,000 100
Air Jordan Shoes 50 £125,000 350
@haydenroche3 #ReadingSEO
Site Consolidation
64
Brand Type Indexed Pages Revenue Backlinks
Adidas Shoes 150 £750,000 1,400
Palace T-Shirt 15,000 £1,000 5
Supreme Bag 10,000 £300,000 100
Air Jordan Shoes 50 £125,000 350
@haydenroche3 #ReadingSEO
Site Consolidation
65
Save and reuse all CASE
statements for the future!
@haydenroche3 #ReadingSEO
66
Technical SEO and BQ insights
Let’s Recap 67#ReadingSEO
What Have We Learned?
68
● Large CSVs can live in BigQuery, not your desktop
@haydenroche3 #ReadingSEO
What Have We Learned?
69
● Large CSVs can live in BigQuery, not your desktop
● The power of the LEFT JOIN
@haydenroche3 #ReadingSEO
What Have We Learned?
70
● Large CSVs can live in BigQuery, not your desktop
● The power of the LEFT JOIN
● CASE statements and data groupings
@haydenroche3 #ReadingSEO
What Have We Learned?
71
● Large CSVs can live in BigQuery, not your desktop
● The power of the LEFT JOIN
● CASE statements and data groupings
● How to find quick insights from combining data sources
@haydenroche3 #ReadingSEO
Additional Resources
72
1. Uploading CSVs to BigQuery →
https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv
2. BigQuery Pricing Scheme →
https://cloud.google.com/bigquery/pricing
3. Set up BigQuery export →
https://support.google.com/analytics/answer/3416092
4. Creating a storage bucket in GCS →
https://cloud.google.com/storage/docs/creating-buckets
@haydenroche3 #ReadingSEO
Thank You!
73
Questions/Comments?
➔ @haydenroche3
➔ linkedin.com/in/haydenroche
@haydenroche3 #ReadingSEO

ReadingSEO - Technical SEO at Scale

  • 1.
    @haydenroche3 Technical SEO at Scale Whatto do when your Excel keeps crashing 1 Senior Analyst, Red Ventures @haydenroche3 #ReadingSEO
  • 2.
    What we’ll walkthrough ● Brief intro to SQL and BigQuery 2@haydenroche3 #ReadingSEO
  • 3.
    What we’ll walkthrough ● Brief intro to SQL and BigQuery ● Merging large data sets and the power you’ll gain 3@haydenroche3 #ReadingSEO
  • 4.
    What we’ll walkthrough ● Brief intro to SQL and BigQuery ● Merging large data sets and the power you’ll gain ● Projects that YOU can do with “minimal-ish” analytical effort 4@haydenroche3 #ReadingSEO
  • 5.
  • 6.
    Intro to BigQueryand SQL 6#ReadingSEO
  • 7.
    BigQuery 101 Online databasewhere you can quickly pull data using SQL @haydenroche3 #ReadingSEO 7
  • 8.
    Joining Data Sourcesw/ SQL http://www.sql-join.com/sql-join-types @haydenroche3 #ReadingSEO 8
  • 9.
    FREE SQL Resources 9 1.https://www.w3schools.com/sql/default.asp 2. https://www.udemy.com/topic/sql/free/ 3. https://www.codecademy.com/learn/learn-sql 4. Your colleagues and technical SEO community @haydenroche3 #ReadingSEO
  • 10.
    BigQuery and SQLfor SEOs linkedin.com/in/areejabuali/ @areej_abuali Find Areej’s slides here! @haydenroche3 #ReadingSEO 10
  • 11.
  • 12.
    12 “My website has10K → 100K → 1M → 10M pages. Doing analysis takes a decade without a data expert.” “Impossible” Technical SEO @haydenroche3 #ReadingSEO
  • 13.
    13 “Two stars inthe universe have the same chance of colliding as 4 bumblebees randomly flying around the United States.” Seemingly Impossible Statistic @haydenroche3 #ReadingSEO
  • 14.
    14 “My website has10K → 100K → 1M → 10M pages. Doing analysis takes a decade without a data expert.” Not So “Impossible” Technical SEO @haydenroche3 #ReadingSEO
  • 15.
    Case Study: 15 “StockX isthe world’s first stock market for things – a live ‘bid/ask’ marketplace.” @haydenroche3 #ReadingSEO
  • 16.
    Starting with aCrawl 16 Find all the URLs! Over 100K found URLs in a starter crawl @haydenroche3 #ReadingSEO
  • 17.
  • 18.
  • 19.
    1. Getting aCSV in BigQuery 19 Upload from local storage (your desktop) → File size limitations @haydenroche3 #ReadingSEO
  • 20.
    1. Getting aCSV in BigQuery 20 Better strategy: upload csv to Cloud Storage @haydenroche3 #ReadingSEO
  • 21.
    2. Creating aStorage Bucket 21 https://cloud.google.com/storage/docs/ creating-buckets @haydenroche3 #ReadingSEO
  • 22.
    3. Create aData Table 22 Create Table within your “techseo” project @haydenroche3 #ReadingSEO
  • 23.
    3. Create aData Table 23 Find your Screaming Frog CSV from Cloud Storage @haydenroche3 #ReadingSEO
  • 24.
  • 25.
    Starting with aCrawl 25 sf.URL sf.Status_Code / 200 /supreme 200 /supreme/jackets 200 /supreme-duffle-bag-ss18-black 200 /nike/airmax/95 200 @haydenroche3 #ReadingSEO
  • 26.
    Starting with aCrawl 26 SELECT sf.URL, sf.Status_Code FROM `techseo.site_audit.screaming_frog_crawl` sf LIMIT 5 @haydenroche3 #ReadingSEO
  • 27.
    Starting with aCrawl 27 sf.URL sf.Status_Code / 200 /supreme 200 /supreme/jackets 200 /supreme-duffle-bag-ss18-black 200 /nike/airmax/95 200 SELECT sf.URL, sf.Status_Code FROM `techseo.site_audit.screaming_frog_ crawl` sf LIMIT 5 @haydenroche3 #ReadingSEO
  • 28.
    Now Let’s Add MoreData 28#ReadingSEO
  • 29.
    Adding in GoogleAnalytics 29 Option 1: Export Data From UI Pros: Easy, Quick Cons: Manual @haydenroche3 #ReadingSEO
  • 30.
    Adding in GoogleAnalytics 30 Option 1: Export Data From UI Pros: Easy, Quick Cons: Manual Option 2: BigQuery + GA Data Integration Pros: Automated & granular Cons: API setup knowledge* @haydenroche3 #ReadingSEO
  • 31.
  • 32.
    Adding in GoogleAnalytics 32 ga.Landing_Page ga.Sessions ga.Sales ga.Revenue / 800,000 12,800 £576,000 /supreme 29,000 145 £11,165 /supreme/jackets 6,700 52 £11,759 /supreme-duffle-bag-ss18-black 4,400 48 £19,360 /nike/airmax/95 18,800 47 £3,055 @haydenroche3 #ReadingSEO
  • 33.
    Adding in GoogleAnalytics 33 ga.Landing_Page ga.Sessions ga.Sales ga.Revenue / 800,000 12,800 £576,000 /supreme 29,000 145 £11,165 /supreme/jackets 6,700 52 £11,759 /supreme-duffle-bag-ss18-black 4,400 48 £19,360 /nike/airmax/95 18,800 47 £3,055 SELECT ga.Landing_Page, ga.Sessions, ga.Sales, ga.Revenue FROM `techseo.site_audit.google_analyti cs` ga @haydenroche3 #ReadingSEO
  • 34.
    Join SF andGA 34#ReadingSEO
  • 35.
    Joining SF &GA 35 SELECT sf.URL, sum(ga.Sessions) AS Sessions, sum(ga.Revenue) AS Revenue, round(ga.Revenue/ga.Sessions, 2) AS RPS FROM `techseo.site_audit.screaming_frog_crawl` sf LEFT JOIN `techseo.site_audit.google_analytics` ga ON (sf.URL = ga.Landing_Page) GROUP BY sf.URL @haydenroche3 #ReadingSEO
  • 36.
    Joining SF &GA 36 SELECT sf.URL, sum(ga.Sessions) AS Sessions, sum(ga.Revenue) AS Revenue, round(ga.Revenue/ga.Sessions, 2) AS RPS FROM `techseo.site_audit.screaming_frog_crawl` sf LEFT JOIN `techseo.site_audit.google_analytics` ga ON (sf.URL = ga.Landing_Page) GROUP BY sf.URL sf.URL ga.Sessions ga.Revenue ga.RPS / 800,000 £576,000 £0.72 /supreme 29,000 £11,165 £0.39 /supreme/jackets 6,700 £11,759 £1.76 /supreme-duffle-bag- ss18-black 4,400 £19,360 £4.40 /nike/airmax/95 18,800 £3,055 £0.16 @haydenroche3 #ReadingSEO
  • 37.
  • 38.
    Once again… Not realdata! 38@haydenroche3 #ReadingSEO
  • 39.
    Adding in SearchConsole 39 gsc.Landing_Page gsc.Query gsc.Clicks gsc.Impressions gsc.Position / stockx 658,400 823,000 1.00 /supreme supreme 79,300 1,220,000 4.00 /supreme/jackets supreme windbreaker 1,260 3,600 1.00 /supreme-duffle-bag-ss18-black supreme duffle bag 2,268 8,100 1.20 /nike/airmax/95 nike airmax 95 925 74,000 6.50 @haydenroche3 #ReadingSEO
  • 40.
    Joining SF, GA& GSC 40 SELECT sf.URL, sum(ga.Sessions) AS Sessions, sum(ga.Revenue) AS Revenue, count(gsc.Query) AS Ranking_KWs, avg(gsc.Position) AS Avg_Pos FROM `techseo.site_audit.screaming_frog_crawl` sf LEFT JOIN `techseo.site_audit.google_analytics` ga ON (sf.URL = ga.Landing_Page) LEFT JOIN `techseo.site_audit.google_search_console` gsc ON (sf.URL = gsc.Landing_Page) GROUP BY sf.URL @haydenroche3 #ReadingSEO
  • 41.
    Joining SF, GA& GSC 41 sf.URL ga.Sessions ga.Revenue gsc.Ranking_KWs gsc.Avg_Pos / 800,000 £576,000 30 1.00 /supreme 29,000 £11,165 7,900 4.00 /supreme/jackets 6,700 £11,759 610 1.00 /supreme-duffle-bag-ss18-black 4,400 £19,360 10 1.20 /nike/airmax/95 18,800 £3,055 4 6.50 @haydenroche3 #ReadingSEO
  • 42.
  • 43.
    Additional Data Sources 43 ●Off-page factors → backlinks and referring domains @haydenroche3 #ReadingSEO
  • 44.
    Additional Data Sources 44 ●Off-page factors → backlinks and referring domains ● Log files → Googlebot requests and frequency @haydenroche3 #ReadingSEO
  • 45.
    Additional Data Sources 45 ●Off-page factors → backlinks and referring domains ● Log files → Googlebot requests and frequency ● Pagespeed insights → TTI, FCP, FMP @haydenroche3 #ReadingSEO
  • 46.
    Additional Data Sources 46 ●Off-page factors → backlinks and referring domains ● Log files → Googlebot requests and frequency ● Pagespeed insights → TTI, FCP, FMP ● GSC Coverage Report → indexed pages @haydenroche3 #ReadingSEO
  • 47.
    Additional Data Sources 47 ●Off-page factors → backlinks and referring domains ● Log files → Googlebot requests and frequency ● Keywords → 3rd party ranking data ● Pagespeed insights → TTI, FCP, FMP ● GSC Coverage Report → indexed pages @haydenroche3 #ReadingSEO
  • 48.
    48 “Let’s Take AQuick Breather” @haydenroche3 #ReadingSEO
  • 49.
    Time to Harness the DataPower 49#ReadingSEO
  • 50.
    50 “If you flipa coin 100 times, there’s less than an 8% chance that it ends 50/50.” Seemingly Impossible Statistic @haydenroche3 #ReadingSEO
  • 51.
  • 52.
    Site Consolidation 52 Goal: Identify low-valuepages/subfolders → redirect or remove @haydenroche3 #ReadingSEO
  • 53.
  • 54.
    Site Consolidation 54 Use aCASE Statement to group URLs at scale @haydenroche3 #ReadingSEO
  • 55.
    Site Consolidation 55 CASE WHEN URLlike ‘/adidas%’ THEN ‘Adidas’ WHEN URL like ‘/palace%’ THEN ‘Palace’ WHEN URL like ‘/supreme%’ THEN ‘Supreme’ WHEN URL like ‘/jordan%’ THEN ‘Air Jordan’ ELSE ‘’ END as Brand Wildcard (%) allows any character/num ber to follow ‘/adidas’ @haydenroche3 #ReadingSEO
  • 56.
    Site Consolidation 56 Time tolet go of the manual Excel filtering + labelling @haydenroche3 #ReadingSEO
  • 57.
    Site Consolidation 57 Landing_Page Brand /adidas-yeezy-boost-350-v2-blackAdidas /adidas-yeezy-boost-350-v2-core-black-green Adidas /palace-pro-tool-t-shirt-black Palace /palace-pro-tool-t-shirt-white Palace /supreme-waist-bag-ss19-black Supreme /supreme-waist-bag-ss19-light-blue Supreme /jordan-4-retro-black-cement-2012 Air Jordan /jordan-4-retro-white-cement-2012 Air Jordan @haydenroche3 #ReadingSEO
  • 58.
    Site Consolidation 58 Landing_Page BrandType /adidas-yeezy-boost-350-v2-black Adidas Shoes /adidas-yeezy-boost-350-v2-core-black-green Adidas Shoes /palace-pro-tool-t-shirt-black Palace T-Shirt /palace-pro-tool-t-shirt-white Palace T-Shirt /supreme-waist-bag-ss19-black Supreme Bag /supreme-waist-bag-ss19-light-blue Supreme Bag /jordan-4-retro-black-cement-2012 Air Jordan Shoes /jordan-4-retro-white-cement-2012 Air Jordan Shoes @haydenroche3 #ReadingSEO
  • 59.
    Site Consolidation 59 Landing_Page BrandType Colour /adidas-yeezy-boost-350-v2-black Adidas Shoes Black /adidas-yeezy-boost-350-v2-core-black-green Adidas Shoes Black-Green /palace-pro-tool-t-shirt-black Palace T-Shirt Black /palace-pro-tool-t-shirt-white Palace T-Shirt White /supreme-waist-bag-ss19-black Supreme Bag Black /supreme-waist-bag-ss19-light-blue Supreme Bag Light-Blue /jordan-4-retro-black-cement-2012 Air Jordan Shoes Black /jordan-4-retro-white-cement-2012 Air Jordan Shoes White @haydenroche3 #ReadingSEO
  • 60.
    Site Consolidation 60 Combining CASEstatements with what we learned before @haydenroche3 #ReadingSEO
  • 61.
    Site Consolidation 61 Brand TypeIndexed Pages Adidas Shoes 150 Palace T-Shirt 15,000 Supreme Bag 10,000 Air Jordan Shoes 50 @haydenroche3 #ReadingSEO
  • 62.
    Site Consolidation 62 Brand TypeIndexed Pages Revenue Adidas Shoes 150 £750,000 Palace T-Shirt 15,000 £1,000 Supreme Bag 10,000 £300,000 Air Jordan Shoes 50 £125,000 @haydenroche3 #ReadingSEO
  • 63.
    Site Consolidation 63 Brand TypeIndexed Pages Revenue Backlinks Adidas Shoes 150 £750,000 1,400 Palace T-Shirt 15,000 £1,000 5 Supreme Bag 10,000 £300,000 100 Air Jordan Shoes 50 £125,000 350 @haydenroche3 #ReadingSEO
  • 64.
    Site Consolidation 64 Brand TypeIndexed Pages Revenue Backlinks Adidas Shoes 150 £750,000 1,400 Palace T-Shirt 15,000 £1,000 5 Supreme Bag 10,000 £300,000 100 Air Jordan Shoes 50 £125,000 350 @haydenroche3 #ReadingSEO
  • 65.
    Site Consolidation 65 Save andreuse all CASE statements for the future! @haydenroche3 #ReadingSEO
  • 66.
  • 67.
  • 68.
    What Have WeLearned? 68 ● Large CSVs can live in BigQuery, not your desktop @haydenroche3 #ReadingSEO
  • 69.
    What Have WeLearned? 69 ● Large CSVs can live in BigQuery, not your desktop ● The power of the LEFT JOIN @haydenroche3 #ReadingSEO
  • 70.
    What Have WeLearned? 70 ● Large CSVs can live in BigQuery, not your desktop ● The power of the LEFT JOIN ● CASE statements and data groupings @haydenroche3 #ReadingSEO
  • 71.
    What Have WeLearned? 71 ● Large CSVs can live in BigQuery, not your desktop ● The power of the LEFT JOIN ● CASE statements and data groupings ● How to find quick insights from combining data sources @haydenroche3 #ReadingSEO
  • 72.
    Additional Resources 72 1. UploadingCSVs to BigQuery → https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv 2. BigQuery Pricing Scheme → https://cloud.google.com/bigquery/pricing 3. Set up BigQuery export → https://support.google.com/analytics/answer/3416092 4. Creating a storage bucket in GCS → https://cloud.google.com/storage/docs/creating-buckets @haydenroche3 #ReadingSEO
  • 73.
    Thank You! 73 Questions/Comments? ➔ @haydenroche3 ➔linkedin.com/in/haydenroche @haydenroche3 #ReadingSEO