SlideShare a Scribd company logo
TechSEO Boost 2018: Internal Link Optimization on Steroids
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig
Internal link building on steroids
… or how to flatten power curves
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Power curves 101
- Vilfredo Pareto: 80/20
- People + riches
- Factors + impact
- Startups + VC returns
Kevin Indig | @Kevin_Indig | #TechSEOBoost
0
50,000
100,000
150,000
200,000
250,000
300,000
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
103
109
115
121
127
133
139
145
151
157
163
169
175
181
187
193
199
205
211
217
223
229
235
241
247
253
259
265
271
277
283
289
295
301
307
313
319
Clicks
Number of URLs
KEYWORD CLICK CURVE
Kevin Indig | @Kevin_Indig | #TechSEOBoost
0
100
200
300
400
500
600
1
12
23
34
45
56
67
78
89
100
111
122
133
144
155
166
177
188
199
210
221
232
243
254
265
276
287
298
309
320
331
342
353
364
375
386
397
408
419
430
441
452
463
474
485
496
507
518
529
540
551
562
573
584
595
606
617
628
639
650
661
672
683
694
705
716
Linkingdomains
Number of URLs
DOMAIN POP DISTRIBUTION
Kevin Indig | @Kevin_Indig | #TechSEOBoost
0
50
100
150
200
250
1
67
133
199
265
331
397
463
529
595
661
727
793
859
925
991
1057
1123
1189
1255
1321
1387
1453
1519
1585
1651
1717
1783
1849
1915
1981
2047
2113
2179
2245
2311
2377
2443
2509
2575
2641
2707
2773
2839
2905
2971
3037
3103
3169
3235
3301
3367
3433
3499
3565
3631
3697
3763
3829
3895
3961
4027
4093
4159
4225
4291
Monthlycrawls
Number of URLs
CRAWL RATE DISTRIBUTION
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Why is that important?
Kevin Indig | @Kevin_Indig | #TechSEOBoost
SEO is not getting easier
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Internal linking = one of the
strongest levers
Kevin Indig | @Kevin_Indig | #TechSEOBoost
“Use the Powa of
Indernal Lings”
Kevin Indig | @Kevin_Indig | #TechSEOBoost
www.kevin-indig.com
Tech SEO Lead @ Atlassian
Mentor @ German Accelerator
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Q: How can we optimize
internal linking?
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Crawl + calculate internal PR
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Use tools to get recommendations
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Problem: Most internal link models are inaccurate!
Kevin Indig | @Kevin_Indig | #TechSEOBoost
PageRank exists between and within sites
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Internal PageRank is only half of the equation
Page A Page B
Page C
Page D
Site A
Kevin Indig | @Kevin_Indig | #TechSEOBoost
External PageRank is the other side of the equation
Page A Page B
Page C
Page D
Site A Site B
Page A Page B
Page C
Page D
Kevin Indig | @Kevin_Indig | #TechSEOBoost
What we need is a model that
combines internal and external PR
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Solution: the “True Internal PR” model (TIPR)
CheiRank Backlinks
Log files
TIPR
PageRank
Kevin Indig | @Kevin_Indig | #TechSEOBoost
What can you do with TIPR?
Calculate
“accurate” internal
PageRank
Identify technical
problems
Monitor
optimization
progress
Kevin Indig | @Kevin_Indig | #TechSEOBoost
The TIPR process
Analysis Recommendations Monitoring
Kevin Indig | @Kevin_Indig | #TechSEOBoost
TIPR – step by step
1. Crawl site
2. Calculate internal PR and CR
3. Add backlinks to get “true internal PR”
4. Add crawl rate from log files to understand impact of (internal + external)
links over time
5. Flatten power curve of pages high PR and low CR and vice versa
Kevin Indig | @Kevin_Indig | #TechSEOBoost
“Robinhood” principle: take from
the rich, give to the poor
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Let’s talk some results
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Dry testing the model at small scale
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Crawl to find PR and CR
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Extract backlinks
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Exported server log files
and tracked keywords
Kevin Indig | @Kevin_Indig | #TechSEOBoost
1710
1033
96
3 1
0
200
400
600
800
1000
1200
1400
1600
1800
1 5 20 50 100
NumberofURLs
Crawl frequency
CRAWL FREQUENCY DISTRIBUTION
Kevin Indig | @Kevin_Indig | #TechSEOBoost
1710
1033
96
3 1
0
200
400
600
800
1000
1200
1400
1600
1800
1 5 20 50 100
NumberofURLs
Crawl frequency
CRAWL FREQUENCY DISTRIBUTION
Guess who this lone fella is?
Kevin Indig | @Kevin_Indig | #TechSEOBoost
19
2
16
401
519
584
921
172
289
10
4129
10
69
11
99
6
222120
2
60
115
150
41
17
25
30
69331211254
39
311253341
30
211212124334122
30
111111111111141111112111111111111111111111111111111111112131111111112221112115234111
0
100
200
300
400
500
600
700
800
900
1000
0
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
48
50
52
54
56
58
61
63
65
70
72
75
79
81
83
86
88
91
94
101
108
110
114
120
126
131
134
143
154
161
180
190
200
216
237
274
290
319
323
326
331
335
344
352
369
375
377
379
603
706
1009
2989
2991
2995
Numberofinlinks
Number of URLs
INLINKS PER URL
Kevin Indig | @Kevin_Indig | #TechSEOBoost
19
2
16
401
519
584
921
172
289
10
4129
10
69
11
99
6
222120
2
60
115
150
41
17
25
30
69331211254
39
311253341
30
211212124334122
30
111111111111141111112111111111111111111111111111111111112131111111112221112115234111
0
100
200
300
400
500
600
700
800
900
1000
0
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
48
50
52
54
56
58
61
63
65
70
72
75
79
81
83
86
88
91
94
101
108
110
114
120
126
131
134
143
154
161
180
190
200
216
237
274
290
319
323
326
331
335
344
352
369
375
377
379
603
706
1009
2989
2991
2995
Numberofinlinks
Number of URLs
INLINKS PER URL
Kevin Indig | @Kevin_Indig | #TechSEOBoost
0
50
100
150
200
250
300
350
400
450
0
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
75
77
79
81
83
85
87
89
93
95
97
99
102
105
109
113
119
123
130
142
146
151
155
168
170
183
189
206
235
242
362
Numberofoutgoinglinks
Number of URLs
OUTGOING INTERNAL LINKS PER URL
Kevin Indig | @Kevin_Indig | #TechSEOBoost
0
100
200
300
400
500
600
700
800
900
1000 0
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
48
50
52
54
56
58
61
63
65
70
72
75
79
81
83
86
88
91
94
101
108
110
114
120
126
131
134
143
154
161
180
190
200
216
237
274
290
319
323
326
331
335
344
352
NumberofInlinks/Outlinks
Number of URLs
INCOMING VS. OUTGOING INTERNAL LINKS
Inlinks Outlinks
Kevin Indig | @Kevin_Indig | #TechSEOBoost
0
100
200
300
400
500
600
700
800
900
1000 0
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
48
50
52
54
56
58
61
63
65
70
72
75
79
81
83
86
88
91
94
101
108
110
114
120
126
131
134
143
154
161
180
190
200
216
237
274
290
319
323
326
331
335
344
352
NumberofInlinks/Outlinks
Number of URLs
INCOMING VS. OUTGOING INTERNAL LINKS
Inlinks Outlinks
Optimum
Kevin Indig | @Kevin_Indig | #TechSEOBoost
How do we flatten this curve?
Kevin Indig | @Kevin_Indig | #TechSEOBoost
So, what do we do with this information?
URL Crawl frequency Domain pop PageRank CheiRank
/URL1 200 300 0.0810 0.3555
/URL2 150 200 0.0300 0.3422
/URL3 300 100 0.0690 0.3000
/URL4 50 50 0.0220 0.2908
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Rank, take average, re-sort
URL Crawl frequency Domain pop PageRank CheiRank Average
/URL1 2 1 1 1 1.25
/URL2 3 2 3 2 2.5
/URL3 1 3 2 3 2.25
/URL4 4 4 4 4 4
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Rank, take average, re-sort
URL Crawl frequency Domain pop PageRank CheiRank Average
/URL1 2 1 1 1 1.25
/URL3 1 3 2 3 2.25
/URL2 3 2 3 2 2.5
/URL4 4 4 4 4 4
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Look for pattern in URLs and optimize accordingly
3.99000 0.03000 0.00972 0.02000 0.01000
0.03000 0.03000
0.07000
0.01000 0.00000
0.00000
0.05000
0.10000
0.15000
0.20000
0.25000
0.30000
0.35000
0.40000
0.45000
Categories Apps Add-ons Vendors Plugins
Average PageRank and CheiRank by directory
PageRank CheiRank
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig | @Kevin_Indig | #TechSEOBoost
2,958 incoming links
1,094 outgoing links46 outgoing links
12 incoming links
Kevin Indig | @Kevin_Indig | #TechSEOBoost
What happened when we rolled out
the changes?
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Recap: TIPR
Crawl PR + CR Backlinks Log files
Power
curves
Kevin Indig | @Kevin_Indig | #TechSEOBoost
More lessons
Robots.txt XML sitemaps 404 errors
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Limitations of the model
• Way more ranking factors than PageRank
• Only suitable for a certain size of sites
• Just tested on a few sites (yet)
• Still trying to find the right weighting
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Taking the concept one step further
• Automating the model
• Predicting success with staging environments
Kevin Indig | @Kevin_Indig | #TechSEOBoost
Thanks for your attention
Thanks to Catalyst, Audisto, and Nozzle.
@Kevin_Indig
www.kevin-indig.com

More Related Content

TechSEO Boost 2018: Internal Link Optimization on Steroids

  • 2. Kevin Indig | @Kevin_Indig | #TechSEOBoost Kevin Indig Internal link building on steroids … or how to flatten power curves
  • 3. Kevin Indig | @Kevin_Indig | #TechSEOBoost
  • 4. Kevin Indig | @Kevin_Indig | #TechSEOBoost Power curves 101 - Vilfredo Pareto: 80/20 - People + riches - Factors + impact - Startups + VC returns
  • 5. Kevin Indig | @Kevin_Indig | #TechSEOBoost 0 50,000 100,000 150,000 200,000 250,000 300,000 1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 133 139 145 151 157 163 169 175 181 187 193 199 205 211 217 223 229 235 241 247 253 259 265 271 277 283 289 295 301 307 313 319 Clicks Number of URLs KEYWORD CLICK CURVE
  • 6. Kevin Indig | @Kevin_Indig | #TechSEOBoost 0 100 200 300 400 500 600 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254 265 276 287 298 309 320 331 342 353 364 375 386 397 408 419 430 441 452 463 474 485 496 507 518 529 540 551 562 573 584 595 606 617 628 639 650 661 672 683 694 705 716 Linkingdomains Number of URLs DOMAIN POP DISTRIBUTION
  • 7. Kevin Indig | @Kevin_Indig | #TechSEOBoost 0 50 100 150 200 250 1 67 133 199 265 331 397 463 529 595 661 727 793 859 925 991 1057 1123 1189 1255 1321 1387 1453 1519 1585 1651 1717 1783 1849 1915 1981 2047 2113 2179 2245 2311 2377 2443 2509 2575 2641 2707 2773 2839 2905 2971 3037 3103 3169 3235 3301 3367 3433 3499 3565 3631 3697 3763 3829 3895 3961 4027 4093 4159 4225 4291 Monthlycrawls Number of URLs CRAWL RATE DISTRIBUTION
  • 8. Kevin Indig | @Kevin_Indig | #TechSEOBoost Why is that important?
  • 9. Kevin Indig | @Kevin_Indig | #TechSEOBoost SEO is not getting easier
  • 10. Kevin Indig | @Kevin_Indig | #TechSEOBoost Internal linking = one of the strongest levers
  • 11. Kevin Indig | @Kevin_Indig | #TechSEOBoost “Use the Powa of Indernal Lings”
  • 12. Kevin Indig | @Kevin_Indig | #TechSEOBoost www.kevin-indig.com Tech SEO Lead @ Atlassian Mentor @ German Accelerator
  • 13. Kevin Indig | @Kevin_Indig | #TechSEOBoost Q: How can we optimize internal linking?
  • 14. Kevin Indig | @Kevin_Indig | #TechSEOBoost Crawl + calculate internal PR
  • 15. Kevin Indig | @Kevin_Indig | #TechSEOBoost Use tools to get recommendations
  • 16. Kevin Indig | @Kevin_Indig | #TechSEOBoost Problem: Most internal link models are inaccurate!
  • 17. Kevin Indig | @Kevin_Indig | #TechSEOBoost PageRank exists between and within sites
  • 18. Kevin Indig | @Kevin_Indig | #TechSEOBoost Internal PageRank is only half of the equation Page A Page B Page C Page D Site A
  • 19. Kevin Indig | @Kevin_Indig | #TechSEOBoost External PageRank is the other side of the equation Page A Page B Page C Page D Site A Site B Page A Page B Page C Page D
  • 20. Kevin Indig | @Kevin_Indig | #TechSEOBoost What we need is a model that combines internal and external PR
  • 21. Kevin Indig | @Kevin_Indig | #TechSEOBoost Solution: the “True Internal PR” model (TIPR) CheiRank Backlinks Log files TIPR PageRank
  • 22. Kevin Indig | @Kevin_Indig | #TechSEOBoost What can you do with TIPR? Calculate “accurate” internal PageRank Identify technical problems Monitor optimization progress
  • 23. Kevin Indig | @Kevin_Indig | #TechSEOBoost The TIPR process Analysis Recommendations Monitoring
  • 24. Kevin Indig | @Kevin_Indig | #TechSEOBoost TIPR – step by step 1. Crawl site 2. Calculate internal PR and CR 3. Add backlinks to get “true internal PR” 4. Add crawl rate from log files to understand impact of (internal + external) links over time 5. Flatten power curve of pages high PR and low CR and vice versa
  • 25. Kevin Indig | @Kevin_Indig | #TechSEOBoost “Robinhood” principle: take from the rich, give to the poor
  • 26. Kevin Indig | @Kevin_Indig | #TechSEOBoost Let’s talk some results
  • 27. Kevin Indig | @Kevin_Indig | #TechSEOBoost Dry testing the model at small scale
  • 28. Kevin Indig | @Kevin_Indig | #TechSEOBoost
  • 29. Kevin Indig | @Kevin_Indig | #TechSEOBoost
  • 30. Kevin Indig | @Kevin_Indig | #TechSEOBoost Crawl to find PR and CR
  • 31. Kevin Indig | @Kevin_Indig | #TechSEOBoost Extract backlinks
  • 32. Kevin Indig | @Kevin_Indig | #TechSEOBoost Exported server log files and tracked keywords
  • 33. Kevin Indig | @Kevin_Indig | #TechSEOBoost 1710 1033 96 3 1 0 200 400 600 800 1000 1200 1400 1600 1800 1 5 20 50 100 NumberofURLs Crawl frequency CRAWL FREQUENCY DISTRIBUTION
  • 34. Kevin Indig | @Kevin_Indig | #TechSEOBoost 1710 1033 96 3 1 0 200 400 600 800 1000 1200 1400 1600 1800 1 5 20 50 100 NumberofURLs Crawl frequency CRAWL FREQUENCY DISTRIBUTION Guess who this lone fella is?
  • 35. Kevin Indig | @Kevin_Indig | #TechSEOBoost 19 2 16 401 519 584 921 172 289 10 4129 10 69 11 99 6 222120 2 60 115 150 41 17 25 30 69331211254 39 311253341 30 211212124334122 30 111111111111141111112111111111111111111111111111111111112131111111112221112115234111 0 100 200 300 400 500 600 700 800 900 1000 0 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 48 50 52 54 56 58 61 63 65 70 72 75 79 81 83 86 88 91 94 101 108 110 114 120 126 131 134 143 154 161 180 190 200 216 237 274 290 319 323 326 331 335 344 352 369 375 377 379 603 706 1009 2989 2991 2995 Numberofinlinks Number of URLs INLINKS PER URL
  • 36. Kevin Indig | @Kevin_Indig | #TechSEOBoost 19 2 16 401 519 584 921 172 289 10 4129 10 69 11 99 6 222120 2 60 115 150 41 17 25 30 69331211254 39 311253341 30 211212124334122 30 111111111111141111112111111111111111111111111111111111112131111111112221112115234111 0 100 200 300 400 500 600 700 800 900 1000 0 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 48 50 52 54 56 58 61 63 65 70 72 75 79 81 83 86 88 91 94 101 108 110 114 120 126 131 134 143 154 161 180 190 200 216 237 274 290 319 323 326 331 335 344 352 369 375 377 379 603 706 1009 2989 2991 2995 Numberofinlinks Number of URLs INLINKS PER URL
  • 37. Kevin Indig | @Kevin_Indig | #TechSEOBoost 0 50 100 150 200 250 300 350 400 450 0 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 75 77 79 81 83 85 87 89 93 95 97 99 102 105 109 113 119 123 130 142 146 151 155 168 170 183 189 206 235 242 362 Numberofoutgoinglinks Number of URLs OUTGOING INTERNAL LINKS PER URL
  • 38. Kevin Indig | @Kevin_Indig | #TechSEOBoost 0 100 200 300 400 500 600 700 800 900 1000 0 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 48 50 52 54 56 58 61 63 65 70 72 75 79 81 83 86 88 91 94 101 108 110 114 120 126 131 134 143 154 161 180 190 200 216 237 274 290 319 323 326 331 335 344 352 NumberofInlinks/Outlinks Number of URLs INCOMING VS. OUTGOING INTERNAL LINKS Inlinks Outlinks
  • 39. Kevin Indig | @Kevin_Indig | #TechSEOBoost 0 100 200 300 400 500 600 700 800 900 1000 0 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 48 50 52 54 56 58 61 63 65 70 72 75 79 81 83 86 88 91 94 101 108 110 114 120 126 131 134 143 154 161 180 190 200 216 237 274 290 319 323 326 331 335 344 352 NumberofInlinks/Outlinks Number of URLs INCOMING VS. OUTGOING INTERNAL LINKS Inlinks Outlinks Optimum
  • 40. Kevin Indig | @Kevin_Indig | #TechSEOBoost How do we flatten this curve?
  • 41. Kevin Indig | @Kevin_Indig | #TechSEOBoost So, what do we do with this information? URL Crawl frequency Domain pop PageRank CheiRank /URL1 200 300 0.0810 0.3555 /URL2 150 200 0.0300 0.3422 /URL3 300 100 0.0690 0.3000 /URL4 50 50 0.0220 0.2908
  • 42. Kevin Indig | @Kevin_Indig | #TechSEOBoost Rank, take average, re-sort URL Crawl frequency Domain pop PageRank CheiRank Average /URL1 2 1 1 1 1.25 /URL2 3 2 3 2 2.5 /URL3 1 3 2 3 2.25 /URL4 4 4 4 4 4
  • 43. Kevin Indig | @Kevin_Indig | #TechSEOBoost Rank, take average, re-sort URL Crawl frequency Domain pop PageRank CheiRank Average /URL1 2 1 1 1 1.25 /URL3 1 3 2 3 2.25 /URL2 3 2 3 2 2.5 /URL4 4 4 4 4 4
  • 44. Kevin Indig | @Kevin_Indig | #TechSEOBoost Look for pattern in URLs and optimize accordingly 3.99000 0.03000 0.00972 0.02000 0.01000 0.03000 0.03000 0.07000 0.01000 0.00000 0.00000 0.05000 0.10000 0.15000 0.20000 0.25000 0.30000 0.35000 0.40000 0.45000 Categories Apps Add-ons Vendors Plugins Average PageRank and CheiRank by directory PageRank CheiRank
  • 45. Kevin Indig | @Kevin_Indig | #TechSEOBoost
  • 46. Kevin Indig | @Kevin_Indig | #TechSEOBoost 2,958 incoming links 1,094 outgoing links46 outgoing links 12 incoming links
  • 47. Kevin Indig | @Kevin_Indig | #TechSEOBoost What happened when we rolled out the changes?
  • 48. Kevin Indig | @Kevin_Indig | #TechSEOBoost
  • 49. Kevin Indig | @Kevin_Indig | #TechSEOBoost
  • 50. Kevin Indig | @Kevin_Indig | #TechSEOBoost Recap: TIPR Crawl PR + CR Backlinks Log files Power curves
  • 51. Kevin Indig | @Kevin_Indig | #TechSEOBoost More lessons Robots.txt XML sitemaps 404 errors
  • 52. Kevin Indig | @Kevin_Indig | #TechSEOBoost Limitations of the model • Way more ranking factors than PageRank • Only suitable for a certain size of sites • Just tested on a few sites (yet) • Still trying to find the right weighting
  • 53. Kevin Indig | @Kevin_Indig | #TechSEOBoost Taking the concept one step further • Automating the model • Predicting success with staging environments
  • 54. Kevin Indig | @Kevin_Indig | #TechSEOBoost Thanks for your attention Thanks to Catalyst, Audisto, and Nozzle. @Kevin_Indig www.kevin-indig.com