Free To A Good Home - Anchor Text Analysis Code

Joined
Mar 30, 2017
Messages
21
Likes
26
Degree
0
I've been really digging into my competitor research lately, looking at their links both internal and external.

I'm not a dev but to do some of the heavy lifting I've put together a little script to categorise anchor.

Obviously, you'll need to plug this into your own data with a loop and there's still a lot of development to do but it does the job for a quick overview.

If anyone wants to DRY it up or improve it (for basic use) please update this thread to keep it current.

PHP:
<?php

    $domain = "buildersociety.com";
    $keyword = strtolower("best cat beds for large cats");
    $keyword_count = str_word_count($keyword);
    $keyword_array = explode(" ",$keyword);

    // IMAGE TEST
    // $anchor = '';

    // EXACT MATCH TEST
    // $anchor = strtolower('best cat beds for large cats'); -- PASSES
    // $anchor = strtolower('best beds for larger cats'); -- PASSES
    // $anchor = strtolower('here are six words on topic'); -- PASSES

    // PHRASE MATCH TEST
    // $anchor = strtolower("best best cat beds for large cats who like heights"); -- PASSES
    // $anchor = strtolower("best beds for cats"); -- PASSES
    // $anchor = strtolower('here are four words plus one more');

    //URL LINK TEST
    // $anchor = strtolower("https://www.buildersociety.com"); -- PASSES
    // $anchor = strtolower("https://www.buildersociety.com/forums/digital-strategy-crash-course.25/"); --PASSES

    // COUNT THE WORDS
    $anchor_count = str_word_count($anchor);

    if(stripos($anchor, $domain) !== FALSE){

        // LETS DEAL WITH THE DOMAIN CHECK FIRST
        echo "URL MATCH";
    }elseif (str_word_count($anchor) == 0){

        // LETS DEAL WITH THE IMAGE NEXT
        echo 'IMAGE MATCH';
    }elseif($keyword_count == $anchor_count){

        // IF THE WORD COUNT MATCHES THEN WE NEED TO SEE IF IT MATCHES 100% ELSE SEE IF IT'S A PARTIAL MATCH
        if (stripos($anchor, $keyword) === FALSE) {
           if(0 < count(array_intersect(array_map('strtolower', explode(' ', $anchor)), $keyword_array))){
               echo "PARTIAL MATCH";
           }else{
               echo "MISC MATCH (count same)";
           }
        }else{
            echo "EXACT MATCH";
        }
    }elseif($anchor_count !== $keyword_count){

        // IF ANCHOR TEXT COUNT IS > KEYWORD COUNT
        // FIRST CHECK TO SEE IF THE EXACT PHRASE IS USED IN THE ANCHOR
        if (stripos($anchor, $keyword) === FALSE) {
            if(0 < count(array_intersect(array_map('strtolower', explode(' ', $anchor)), $keyword_array))){
               echo "PARTIAL MATCH (count difference)";
           }else{
               echo "MISC MATCH (count difference)";
           }
        }else{
            echo "PHRASE MATCH";
        }

    }

?>
 
Back