Check Backlinks With PHP

Thursday, June 5, 2008 - 09:37

Backlinks are an important part of search engine optimisation and are also useful in seeing what sort of things are popular on your site. If you have a list of known backlinks that you want to keep track of then you can do it manually, or you can get a script to do it for you.

The following function takes two arguments, the first being the remote URL and the second is the URL you are checking for. The function works by doing a small amount of initial formatting on the URL you are checking for and then downloading the remote page in little bits and seeing if each bit contains a link. If it does then the function breaks out and returns true. If the link isn't there then it returns false.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function check_back_link($remote_url, $your_link) {
  $match_pattern = preg_quote(rtrim($your_link, "/"), "/"); 
  $found = false;
  if($handle = @fopen($remote_url, "r")){
    while(!feof($handle)){
      $part = fread($handle, 1024);
      if(preg_match("/<a(.*)href=[\"']".$match_pattern."(\/?)[\"'](.*)>(.*)<\/a>/", $part)){
        $found = true;
        break;
      }
    }
    fclose($handle);
  }
  return $found;
}

Here is an example of the function in use.

1
2
3
4
5
6
if(check_back_link('http://www.google.com','http://www.hashbangcode.com')){
  echo 'link found';
}else{
  echo 'link NOT found';
};
// this prints 'link NOT found', unfortunately...

To get the most out of this function it is best to have a plain text file full of all of the links that you think you have (one per line) and use the file() function in PHP to load all of the URLs into an array. you can then loop through this array and see which sites have a link to your site and which don't.

Also, if you are looking at a lot of URLs then you might want to include a call to set_time_limit() function with a parameter of something like 300 at the top of the script. This stops the script from timing out after 30 seconds (default) and your script will probably take a little longer than this to run.

Category: 
philipnorton42's picture

Philip Norton

Phil is the founder and administrator of #! code and is an IT professional working in the North West of the UK.
Google+ | Twitter

Comments

philipnorton42's picture
Submitted by philipnorton42 on Sun, 07/31/2011 - 17:09

You would need to spider the entire web. I would sugest using something like Google Webmaster Tools or even SEOmoz pro as they keep track of back links.

Thanks. Very useful script.

Thanks, just what I was looking for! Do you think there is a way to check if the link on a remote server wasn't commented using, using standard comment tags? Like: <a href="...">  … </a>   (Not sure if my little code sample will show correctly.)

Excellent tip, I'm begenning a homemade backlink checker to monitor my SEO actions, and your script is very usefull, thanks !

bro. i have test. but doesn't work

thanks. i search this tutorial. and i want to make backlink search

How to count all the number of backlinks a website has and then fetch the url list. Can you please explain. I want to make a backlink checker like ranksignals.com

Hi.
Can you please describe.
We can count links only or we can get the list of those sites where backlinks are build?

Add new comment