Позиции сайта в поисковике по списку запросов на php (Google.ru)


Используя средства PHP, можно легко собирать статистику о позициях сайтов в поисковой выдаче google.ru или yandex.ru. Для получения статистики позиций сайта в яндексе вам нужен этот скрипт. Для гугла, можете использовать приведённый на данной странице.

Пользуясь данным скриптом вы получаете в результате список ссылок (который вы заранее составите в отдельном текстовом файле) и позиция сайта в гугле по этому запросу.

Теперь вы можете легко писать свою систему на PHP для сбора статистики по продвижению сайта. Это очень удобно, т.к. аналогичные сервисы обычно платные и дают не всегда точную информацию. Связано это с тем, что обновляют статистику они раз в определённый период (обычно 2-3 дня). Используя для сбора статистики о поисковой выдаче данный скрипт на PHP вы получите всегда актуальную и точную информацию.

<?
@set_time_limit(0);
@error_reporting(E_ALL);
 
$keywords = file('words.txt'); //файл с ключевыми словами
$site = array('lavrik-v.ru');//синонимы домена в одинарных кавычках через запятую
 
foreach($keywords as $word)
{
    echo '<small><i>' . $word.'...</i></small><br>';
    $lk = getGoogleLinks(trim($word));
    foreach($lk as $n=>$url)
    //echo $url.'<br>';
        if(IsMyDomen($url, $site))
        {
            echo '<b>Фраза: </b>' . $word . ' <b>Место: </b>' ;
            echo colorate($n+1) ;
            @flush();
        }
}
 
 function getGoogleLinks($keyword)
 {
    $countPage = 100;
    $pageNum = 1;
    $url = 'http://www.google.ru/search?q=' . urlencode( $keyword) . '&num='.$countPage.'&hl=ru&start=' . $pageNum . '&ie=UTF-8';
    $page = file_get_contents($url);
    if(!$page)
        $page = curlgoogle($url);
         
    if(!$page)
    {
        echo 'Page dont downloaded<br>';
        return array();
    }
    else
    {
         
        if(preg_match_all('/<h3 class="r"><a href="(.+?)"/is', $page, $match))
            return $match['1'];
        else
            print('По запросу "'.$keyword.'" линков в гугле нет ?<br>');
        return array();
    }
}
 
function IsMyDomen($url, $Array)
{
    $U1 = explode('/', $url);
    foreach($Array as $url2)
    {

        if($U1['3'] == $url2)
            return true;
    }
    return false;
}
 
function colorate($int)
{
    $color = '#FF0000';  //красный
    if($int<=10)
        $color = '#008E00'; //зеленый
    if($int>10  && $int<=20)
        $color = '#FFE500'; //желтый
    return '<span style="color: ' . $color . '">' . $int . '</span><br />';
}
 
function curlgoogle($url)
{
    $curl = curl_init();
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
    curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,300);
    return curl_exec($curl);
}

Если вас интересует аналогичный скрипт но для Яндекса, то его вы найдёте здесь.

В результате получаем вот такую статистику:

P.S. Скрипт перенят с blog.phpdreamer.ru.

 


Тэги:

Комментарии: 2

Прокомментировать »

 
 
Гриша
10.02.2014
 

Скрипт не хочет работать! Позиция на третьем месте, а скрипт говорит, что нет позиции...Может исправите?

lavrik
10.02.2014
 

Гриша, проверил скрипт, все работает. Рекомендую для отладки в 38 строчку вставить "echo $page;" и посмотреть HTML который получает программа. Тогда все станет ясно. Вероятно скрипту не удалось получить HTML код страницы поиска. Это может быть связано с настройками вашего сервера.

 

Прокомментировать

 
 
Сообщение *
 
Проверочный код *
 
 
 
Яндекс.Метрика