1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[Guide] Link Networks - Interlinking

Discussion in 'Black Hat SEO' started by madoctopus, Nov 18, 2010.

  1. madoctopus

    madoctopus Supreme Member

    Joined:
    Apr 4, 2010
    Messages:
    1,249
    Likes Received:
    3,498
    Occupation:
    Full time IM
    Before you read this guide, go and read the following:

    Guide - How to Build a Link Network of Support Sites

    First off, let's see how we can build our network of sites and content that will provide links. These are the obvious ways:

    • Self hosted sites (satellites). Buy a bunch of domains from a cheap registrar that offers free WHOIS privacy (e.g. 1 & 1). Stay away from HostMonster and BlueHost as registrars, they have a "feature" (as they call it) that puts you in the open and makes all your domains visible by the public. Then, buy hosting on differen C-class IPs (e.g. http://www.seo-host.com). Search "SEO hosting" for more hosts like this.
    • Free blog hosting (flogs = free blogs). Wordpress.com, blog.com, etc. Personally I never use blogger.com. Try to find as many as you can. You should end up with at least 50 flog platforms.
    • WPMU blogs. You can do a search on google for patterns, or just find somebody who has Link Farm Evolution (LFE) and ask nicely for the list of blogs from LFE. I have a list of about 2500 WPMU blogs but haven't checked all yet. You should end up with at least several hundred that work.
    • Article Directories (ArtDir). Make a list with all that allow you to place D0F0llow links in the article.
    • Any other type of site that allows you to write content on it (e.g. sites that allow personal blogs for users).
    Pros & Cons:

    • Satellites
      • Pros: Total control over everything, from content to how it looks. You own it so you can't have it deleted. You can automate creation and maintenance.
      • Cons: Costs money (domain+hosting)
      • Recommended for link support sites that you may want to upgrade later into money sites. You should keep the content on these as high quality as possible.
    • Flogs
      • Pros: No money cost. You can post on them lower quality content as the chances of a human moderator checking them is quite small.
      • Cons: Can get deleted/suspended (always keep backups of the content on them so if it gets deleted you can reuse the content). Time cost to register the accounts (unless you build an automated tool to do it).
      • Recommended for link infrastructure and to link from them to the higher levels (satellites, money sites).
    • WPMU
      • Pros: No money cost. No time cost (because building a tool to automate registration and posting is very easy). Putting low quality content on them (computer generated), or even content not related to the parent site/host could get them suspended. Quite a few of them are moderated.
      • Cons: Same as for satellites
      • Recommended: same as for flogs
    • ArtDir
      • Pros: No money cost.
      • Cons: Time cost (average automation difficulty). Quality has to be decent.
      • Recommended to be used as indexing engines or for IP diversity.
    An indexing engine is a site/page/whatever that is naturally indexed by search engines, without requiring your intervention (e.g. pinging). One good example of indexing engine is EzineArticles. In order to maintain a high efficiency, you should use indexing engines to link to sites that have multiple pages on them, not some other stub article that would have no effect on getting other pages indexed.

    Interlinking considerations

    • Relevance - this together with PR flow has randomness on the other side of the coin. The more emphasis you put on relevance and how you direct PR flow through the network, the less random things are and the more complex the logic of the interlinker becomes. You do need to take relevance into consideration because you want to interlink related posts together not entirely random. So you will prefer to interlink 2 posts about Canon DSLRs instead about interlinking a post about a Canon DSLR with a post about iPhone.
    • PR Flow - This is about how PR flows through the network. You basically want to direct the PR towards specific pages on your money sites. So if you have a "Canon DSLR" page on your digital camera money site, you want to suck PR from some of the the satellites and blogs, and those satellites and flogs you don't get direct links from, should link to those you do get a direct link from, to help indirectly.
    • Randomness - this is where most people that build link wheels get it wrong. The easiest and most safe way to be sure you have a healthy amount of randomness with regards to the interlinking within the network is not do do the linking scheme in your head. Instead you should build a script that does it (the script, unlike you, is impartial and it doesn't unconsciously try to build patterns).
    • IP Diversity - this is important. Not many people talk about IP diversity when it comes to SEO but I think it is a key factor in obtaining high domain trust.
    If you truly want to build a huge network of sites and manage them properly, you really have to build a system. I think manually managing 100+ sites and their content ad related resources is impossible manually. There is WPManagerDX but that only covers a very small part of the problem (the least important one).

    A basic interlinking script
    The following is PHP code for basic interlinking taking only randomness into consideration. You may want to start from here and apply your own rules in order to get a more optimal interlinking scheme across your network. If you don't know PHP or a programming language, well... too bad.

    Keep in mind this script should not be used in production environment as it is very basic and not optimal in how it interlinks pages. It should be used only to give you an idea and a starting point. A complete production ready script for interlinking should rely on a database where you have URLs associated to keywords and a bunch of other data that you can use as a foundation for your rules.

    Also, there is one way to obtain decent PR flow and relevance without implementing a complex algorithm - you have all the sites in the script below about a specific topic. Then you run the script again with sites having a different topic (but still related / from same keyword hub). For example you run first for sites more related to "compact digital camera", then you run for sites more related to "DSLR".
    PHP:
    <?php

    <html>
    <
    head>
        <
    title>Flog Interlink Scheme Generator</title>
    </
    head>
    <
    body>

    <
    form method="get">
    Number of sites: <input type="text" name="num_sites" value="100" /><br />
    Posts per site: <input type="text" name="num_post_min" value="5" /> - <input type="text" name="num_post_max" value="30" /><br />
    Inbound links per site: <input type="text" name="num_links_min" value="1" /> - <input type="text" name="num_links_max" value="50" /><br />
    <
    br />
    <
    input type="submit" name="generate" value="Generate" />
    </
    form>

    <?
    php
    if(isset($_GET['generate'])) {

    $num_sites $_GET['num_sites'];
    $num_post_min $_GET['num_post_min'];
    $num_post_max $_GET['num_post_max'];
    $num_links_min $_GET['num_links_min'];
    $num_links_max $_GET['num_links_max'];

    $sites = array();
    $all_posts = array();
    $ap 0;
    for(
    $s=0;$s<$num_sites;$s++) {
        
    $sites[$s]['num_posts'] = mt_rand($num_post_min,$num_post_max);    
        
    $sites[$s]['num_links'] = mt_rand($num_links_min,$num_links_max);
        for(
    $p=0;$p<$sites[$s]['num_posts'];$p++) {
            
    $sites[$s]['posts'][$p] = $p+1;
            
    $all_posts[$ap]['site'] = $s;
            
    $all_posts[$ap]['post'] = $p;
            
    $ap++;
        }
    }


    // choose incoming links
    foreach($sites as $skey => $sval) {
        
    $use_posts $all_posts// sites to get links from
        // we choose random links
        
    for($l=0;$l<$sval['num_links'];$l++) {
            
    $randpost mt_rand(0,count($use_posts)-1); // where link comes from
            
    $sites[$skey]['links'][$l] = array();
            
    $sites[$skey]['links'][$l]['site'] = $all_posts[$randpost]['site'];
            
    $sites[$skey]['links'][$l]['post'] = $all_posts[$randpost]['post'];
            unset(
    $use_posts[$randpost]);
        }
    }

    echo 
    'Total posts: '.count($all_posts)."<br />\n";


    foreach(
    $sites as $skey => $sval) {
        echo 
    "site_".($skey+1).": ".$sval['num_posts']." posts, ".$sval['num_links']." links - ";
        foreach(
    $sites[$skey]['links'] as $link) {
            echo 
    $link['site'].'.'.$link['post'].', ';
        }
        echo 
    "<br />\n";
    }


    }
    //~if submitted
    ?>

    </body>
    </hrml>

    The output has a format like:
    Code:
    site_1: 6 posts, 19 links - 48.9, 74.17, 32.7, 34.25, 31.6, 14.3, 70.3,  73.16, 73.25, 47.3, 40.6, 36.0, 35.15, 19.1, 67.0, 25.4, 14.6, 42.19,  6.22, 
    
    The above output means that site_1 has 6 posts and 19 inbound links from other sites in the network. All links are picked randomly.

    Link Network Diagram
    The following is a script that generates an image with sites as nodes and links as edges. It is not a perfect implementation but should give you an idea on how the link graph in your network should look if you want to avoid patterns.

    PHP:
    <?php

    /*
     * FIXME - bugs. possibly because of inconsistent matrix traversal
     */



    $numSites 100// number the sites in the network. to work correctly must be a number that can be expressed as the product of two equal numbers (e.g. 100 = 10 (rows) * 10 (columns))

    // don't edit below if you don't know what you are doing

    header('Content-Type: image/png');

    $numSitesCol = (int) sqrt($numSites);
    $numSitesRow $numSites $numSitesCol;
    $siteSize 200;
    $imgwidth $siteSize $numSitesCol $siteSize;
    $imgHeight $siteSize $numSitesRow $siteSize;


    $image imagecreatetruecolor($imgwidth$imgHeight);
    $bgColor 0x00f8f8f8;
    imagefill($image00$bgColor);

    // determine site positions
    $sc 0;
    $sitepos = array();
    for(
    $i=1$i<=$numSitesCol$i++) {
        for(
    $j=1$j<=$numSitesRow$j++) {
            
    $sc++;
            
    $sitepos[$sc]['x'] = $j*$siteSize;
            
    $sitepos[$sc]['y'] = $i*$siteSize;
            
    $sitepos[$sc]['color'] = imagecolorallocate($imagemt_rand(0255), mt_rand(0255), mt_rand(0255));
        }
    }


    // generate random links
    for($i=1$i<=$numSites$i++) {
        
    //if($i!=50) continue;
        
        
    $numLinks mt_rand(020);
        for(
    $j=1$j<=$numLinks$j++) {
            
    $linkFrom mt_rand(1100);
            
    imageline($image$sitepos[$linkFrom]['x'], $sitepos[$linkFrom]['y'], $sitepos[$i]['x'], $sitepos[$i]['x'], $sitepos[$linkFrom]['color']);
        }
        
        
    //if($i>=1) break;
    }


    foreach(
    $sitepos as $key => $pos) {
        
    drawSite($image$pos['x'], $pos['y'], $key0$pos['color']);
    }


    imagepng($imagenull9);
    imagedestroy($image);


    function 
    drawSite($image$x$y$label=false$numPages=0$color=0x00d0d0d0) {

        
    imagefilledellipse($image$x$y3232$color);
        if(
    $label) {
            
    $font 4;
            
    $hpadding 2;
            
    $vpadding 0;
            
    $w imagefontwidth($font) * strlen($label);
            
    $h imagefontheight($font);
            
    imagefilledrectangle($image$x-($w/2)-$hpadding$y-($h/2)-$vpadding$x+($w/2)+$hpadding$y+($h/2)+$vpadding$color);
            
    imagestring($image$font$x-($w/2), $y-($h/2), $label0x00000000);
        }

    }
    You ca change the number of sites by altering $numSites variable in the script source code.

    Keep in mind that I built these scripts in a very "hackish" way. They may (and probably do) have bugs. As a matter of fact i can notice some bias in the image from the last script, so probably there is some logic bug in there. Even so, if you want to build something similar they should be a good starting point.

    You may also look into GUESS: The Graph Exploration System which is a tool for graph visualization and has a Python-like scripting environment. For web-based visualization you can use Raphael + Dracula JavaScript libraries and code your own rendering engines for Dracula starting from their samples.

    I hope this helps somebody.
     
    • Thanks Thanks x 35
  2. amino

    amino Registered Member

    Joined:
    Apr 7, 2011
    Messages:
    64
    Likes Received:
    14
    Great post, thank you very much!!
     
  3. britcpa

    britcpa Power Member

    Joined:
    Mar 25, 2010
    Messages:
    509
    Likes Received:
    1,384
    awesome!

    but the question that bothers me is how come 6 months after publishing this gold plated info, so few readers have given thanks to MADOCTOPUS for what is a free master class?

    THANKS and REP gladly given.
     
  4. NapsteR

    NapsteR Jr. VIP Jr. VIP

    Joined:
    Mar 2, 2011
    Messages:
    2,779
    Likes Received:
    2,374
    Occupation:
    Full Time IMer
    Location:
    http://www.seophd.com
  5. primoto

    primoto Newbie

    Joined:
    Mar 16, 2010
    Messages:
    8
    Likes Received:
    0
    great post!
    really very detailed and solid approach, not like the most of "fast get rich" schemes which never work in reality :)

    could you please explain more in details how to use the scripts that you shared with us?

    thank you in advance
     
  6. albaniax

    albaniax Elite Member

    Joined:
    Aug 5, 2008
    Messages:
    1,586
    Likes Received:
    823
    Location:
    GER - ALB
    Once again, amazing guide from you!
    This is what makes BHW a wonderfull place :) People like you!

    My idea for hosting was more ahead, buying normal, cheap hosting from all over the world. For the maintance, I wanted to print out the backend of each hoster, to better keep that in mind.

    The cost's would be more or less the same as an hoster like seo-host.com, but I saw Micllaef saying he tried a couple of one's and SEO hoster's weren't good ( forgot the reason)

    But I have something in my mind, that needs to be cleared up:
    Let's say I register expired domain's, always from domain registrar A with fake WHOIS and then move them to an random hoster afterwards (change the nameserver)
    Wouldn't that be suspicious to big G?

    So I guess it's the best way, if when I find an good expired domain, to register it always right away from the randmon hoster, where it will be placed?

    The PHP-script idea is very intelligent. I will show that my partner, it's great as he is a PHP-geek but we haven't thought about it in that way. You have lighed-up some new roads to check out deeper.
     
  7. madoctopus

    madoctopus Supreme Member

    Joined:
    Apr 4, 2010
    Messages:
    1,249
    Likes Received:
    3,498
    Occupation:
    Full time IM
    seo-host.com is crap. I used them, they were among the first to offer SEO hosting so initially I was happy. But they got to the point where servers had 200%-600% load and were unresponsive. Now I am mixing regular shared hosts with other SEO host which I am still in the process of reviewing.

    About the scripts there isn't much to say. They just randomly generate linking rules. I wouldn't use them as they are. For a production grade system I would enhance them a lot with more complex rules. I showed them to you just so you get an idea.
     
    • Thanks Thanks x 1
  8. bohrier

    bohrier Newbie

    Joined:
    Jul 14, 2011
    Messages:
    18
    Likes Received:
    0
    Occupation:
    Business Coach
    Location:
    Miami-FL
    Home Page:
    Any update on the review of the SEO hosting?
     
  9. madoctopus

    madoctopus Supreme Member

    Joined:
    Apr 4, 2010
    Messages:
    1,249
    Likes Received:
    3,498
    Occupation:
    Full time IM
    Yeah, that one was unreliable as well. I guess I stick to many shared hosting accounts.
     
  10. Dan Da Man

    Dan Da Man Elite Member Premium Member

    Joined:
    May 31, 2011
    Messages:
    1,850
    Likes Received:
    937
    Occupation:
    Duh
    Location:
    San Diego
    Home Page:
    Great post. Some what techy, actually extremely techy. But thanks for the insights :)
     
  11. VIC SEO

    VIC SEO Elite Member

    Joined:
    Feb 19, 2010
    Messages:
    2,156
    Likes Received:
    363
    Gender:
    Male
    Occupation:
    SEO Specialist
    Location:
    iSynergyMedia
    Home Page:
    Who has time to read such a big post? It would be interesting if you broke it down into several pieces for us to digest. And that domain question also needs to be cleared up? I mean I would end up with an expired domain with nothing to show for my efforts.
     
  12. Autumn

    Autumn Elite Member

    Joined:
    Nov 18, 2010
    Messages:
    2,197
    Likes Received:
    3,041
    Occupation:
    I figure out ways to make money online and then au
    Location:
    Spamville
    Translation: "I am a lazy fucking bitch and should shut my ignorant pie hole while my betters are speaking."

    Good post madoctopus, always interesting to get an idea of other people's approaches. But camelCase... yuck. :D
     
    • Thanks Thanks x 3
  13. madoctopus

    madoctopus Supreme Member

    Joined:
    Apr 4, 2010
    Messages:
    1,249
    Likes Received:
    3,498
    Occupation:
    Full time IM
    Hey, I like camel case more. Cameltoes even more. If you ask me PHP is ugly by design with all those underlines. Hell, think like this - if in every line of code on average you have one underline, for each 1000 lines of code, you press 1000 keys you didn't had to. If it takes 0.3sec/keypress, that's 300 seconds or 5 minutes. Ok maybe i am overanalizing but i still like camel toes... uh i mean camel case more (camel t..case camel case camel case, think dollar sign underline camelt no... underline...).

    @warrichpk i did, 1st part of the guide can be found by following the link at the begining of the thread. But nevermind... it's not like you are going to read 1200+1600 words and then 140 lines of code
     
  14. madoctopus

    madoctopus Supreme Member

    Joined:
    Apr 4, 2010
    Messages:
    1,249
    Likes Received:
    3,498
    Occupation:
    Full time IM
    @albaniax

    Obviously using multiple registrars is best and leaves least footprints. That being said I use 3-4 registrars plus register domains from some of the hosts if they have decent prices (under $15/yr). So if in a network of 100 sites I have 20-30 from save registrar I am ok with that.

    Expired domains that get revived are great for such a network as long as you do your homework because you have to find those that still have links so they keep the PR and link juice. That being said I don't overstress with high PR expired domains because I can easily grow fresh domains to PR3 or more. I always work a strategy on long term (6mo-1yr).

    If you don't use WHOIS privacy but fake data instead, using just one single registrar is not a big problem as long as the registrar is big (e.g. 1and1, godaddy, etc). Remember that you always mix your links with non-network links so you won't have all links from domains using the same registrar so it is not really a footprint.
     
  15. robertaccess

    robertaccess Newbie

    Joined:
    Sep 23, 2008
    Messages:
    16
    Likes Received:
    1
    nice share, i'll try that now
     
  16. darkmonk

    darkmonk Regular Member

    Joined:
    Nov 21, 2007
    Messages:
    226
    Likes Received:
    52
    How is seo-host these days? What are recommended seo hosting providers with multiple independent non-sequential C-class IPs with individual nameservers?
     
  17. madoctopus

    madoctopus Supreme Member

    Joined:
    Apr 4, 2010
    Messages:
    1,249
    Likes Received:
    3,498
    Occupation:
    Full time IM
    I stopped using them months ago. Lots of servers had a load of 50-70 (quad core) - that's extreme overload of the servers.

    Also, I took the path of using regular shared hosts because all SEO hosts I tested were either overloaded or very expensive and/or had sequential c-classes.
     
  18. _swes_

    _swes_ BANNED BANNED

    Joined:
    Nov 4, 2012
    Messages:
    59
    Likes Received:
    17
    Quick question for the OP: How would you link the flogs to the satellite websites without leaving a footprint?
     
    Last edited: Feb 24, 2013
  19. ButterflyCollector

    ButterflyCollector Jr. VIP Jr. VIP Premium Member

    Joined:
    Oct 29, 2009
    Messages:
    122
    Likes Received:
    19
    Location:
    UK
    Fantastic tutorial
     
  20. rambolife

    rambolife Regular Member

    Joined:
    Mar 15, 2012
    Messages:
    248
    Likes Received:
    26
    Thank you for the info !