скрипт перелинковки страниц поисковыми запросами

Рубрика: Новости -> Скрипты -> php
Четверг, 8 июля 2010 г.
Просмотров: 2175
Подписаться на комментарии по RSS

Делал для своих сайтов скрипт который линкует страницы сайта ключевыми словами полученными из поисковых запросов.

Для чего это нужно?, а все для тогоже)), для повышения сайта по поисковым запросам.

Посетитель сайта который перешел с поисковика приносит вам новое ключевое слово - это может быть нч запрос, может быть вч, а может сч.. неважно, главное эти ключевые фразы уже релевантны тем страницам на которые по ним перешли.

Для сбора поисковых запросов можно использовать любые подручные средства))), самый примитивный это собирать ключевики из статистики li.ru, но можно воспользоваться моим скриптом по сбору статистики поисковых запросов.

Для вывода ссылок на разные страницы сайта использую файл с примерно такого содержания:

<a href='ссылка'>ключевая фраза</a>

<a href='ссылка2'>ключевая фраза2</a>

<a href='ссылка3'>ключевая фраза3</a>

.......

Принцип работы скрипта:

Скрипт открывает файл с ссылками, перебирает их рандомно пока не наберется 7шт и проверяет на совпадение страниц, если страница на которую ведет ссылка повторяется, то скрипт берет рандомно другую ссылку, и так пока не наберется 7 шт, естественно число выводимых ссылок можно увеличить.

Таким образом скрипт выводит блок из уникальных для него ссылок.

Я написал скрипт в 2 вариантах

- 1 я назвал его эконом

- 2 соответственно не эконом

Отличия в них просты как 2 копейки).

1 потребляет по минимуму оперативки, но выполняется дольше чем 2 вариант, и время выполнения напрямую зависит от размера файла с ссылками.

2 выполняется с наибольшей скоростью, но потребление оперативной памяти зависит напрямую от размера файла с ссылками.

какой вариант выбрать решать вам)), скажу только что скорость выполнения их обоих, более чем достаточно велика))).

Сам скрипт:

Вариант 1 - он же эконом

<?php
$links_file=fopen('links.txt', 'r');
if ($links_file){
$counter = 0;
while(!feof($links_file))
{
$str = fgets ($links_file);
$counter++;
}}
$counter = $counter - 1;
fseek($links_file, 0);
$massurl = array();
for ($s=1;$s<=7;$s++)
{
$k='2';
while($k!=1){
$i= rand(0,$counter);
for($f=0;$f<=$i;$f++){
if($f!==0){
fgets($links_file);
}
}
$sss= fgets($links_file);
preg_match('!<a href="(.*?)">(.*?)</a>!si',$sss,$tmp);
$b = implode("", $massurl);
if(!stristr($b,$tmp[1])){
$massurl[$s] = $tmp[1];
$masskey[$s] = $tmp[2];
$k='1';
}fseek($links_file, 0);
}
echo'<a href="'.$massurl[$s].'">'.$masskey[$s].'</a><br>';
}
?>

Вариант 2 - он же не эконом

<?php
$links_file=file("links.txt"); //ссылки
$massurl = array();
for ($s=1;$s<=7;$s++)
{
$k='2';
while($k!=1){
$i= array_rand($links_file);
preg_match('!<a href="(.*?)">(.*?)</a>!si',$links_file[$i],$tmp[$i]);
$b = implode("", $massurl);
if(!stristr($b,$tmp[$i][1])){
$massurl[$s] = $tmp[$i][1];
$masskey[$s] = $tmp[$i][2];
$k='1';
}else{unset($links_file[$i]);}
}
echo$massurl[$s].'<br>';
}
?>

Думаю из скрипта понятно что ссылки хранятся в файле links.txt который находится в тойже директории что и сам скрипт.

Комментариев: 9

  1. 2010-10-27 в 20:26:54 | Виталий (анонимно)

    Приветсвую!

    А можно уточнить? К примеру на один урл добавить 30 ссылок с разными кеями, скрипт равномерно распределит ссылки по страницам? Или по другому если он разместил один урл на одной странице, то то не повторит ли его на другой? И вообще можно ли задать на каждый урл общее количество размещений (по рзным страницам соответственно).

    Спасибо!

  2. 2010-10-28 в 01:28:39 | TruLander
    ]]>]]>

    30 ссылок можно, нужно вместо 7 поставить 30, тогда будет 30 ссылок на странице, а на каждый урл нельзя настроить количество показов, ониж рандомно выбираються из списка.

  3. 2011-06-19 в 03:15:05 | Андрей (анонимно)

    А можно как то сделать чтобы каждый линк был закреплен на странице? Т.е. был постоянным.

  4. 2011-06-19 в 17:55:01 | TruLander
    ]]>]]>

    Можно, если записывать результат в файл, а не выводить сразу.

  5. 2011-06-22 в 13:56:57 | Андрей (анонимно)

    Можете пример показать? Я в php ламер. Поисковикам нужны постоянные ссылки, этот код безусловно работает, я проверил на одном из сайтов установив его с неделю назад, о результатах рано еще говорить, но вот бы еще на постоянку закрепить ссылки к страницам цены бы не было. Спасибоgrin

  6. 2011-11-05 в 16:19:39 | Влад (анонимно)

    Подскажите как реализовать вывод возле анкорного текста?

  7. 2011-11-30 в 18:12:54 | TruLander
    ]]>]]>

    Для того чтобы выводить с анкорным текстом, нужно изменить регулярку которая парсит ссылки из файла

    preg_match('!(.*?)!si',$links_file[$i],$tmp[$i]);

    в этой регулярке считываются 2 значения ссылка и ее анкор, нужно добавить еще считывание околоанкорочного текста. И видоизменить файл с линками до типа

    околоанкорочный текст анкор околоанкорочный текст.

  8. 2012-01-26 в 06:17:39 | Сергоф (анонимно)

    Автор а можешь доработать скрипт, чтоб он записывать результат в файл, а не выводил сразу?

  9. 2012-01-26 в 11:02:30 | TruLander
    ]]>]]>

    Могу, но у меня нет желания.

    Я как то давно делал с постоянными ссылками, но там другой скрипт выводил ссылки уже из готового файла, а этот скрипт генерировал этот файл.

    Кароче возни много, поэтому и не хочу делать, к тому же я этот скрипт уже давно не юзаю.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)