[На русском] Генерация meta name=keywords "на лету"

Тема в разделе "Материалы по SEO", создана пользователем gid, 9 мар 2007.

Статус темы:
Закрыта.
  1. gid

    gid Прохожие

    Создавая новый php движок для своего сайта bodybilding.info, я, как и всегда не захотел выполнять нудную работу сам и поэтому такое ответственное задание как подбор ключевых слов к каждой странице сайта доверил php скрипту, который написал меньше чем за полчаса. Кстати, о подборе ключевых слов я уже писал раньше, но там все было реализовано совсем не так как здесь.
    Конечно, многие могут возразить, что поисковики не учитывают мета теги keywords и description, и незачем голову морочить проблемой подбора ключевых слов, но учитывают или нет, это известно только администрации поисковых машин. В частности, я недавно проводил эксперимент, в котором участвовало три пары сайтов, на каждой паре сайтов был один и тот же контент, но на одном из сайтов каждой пары были прописаны keywords и description. И что вы думаете, через месяц, все три сайта с keywords и description были выше в выдаче Яндекса, чем их клоны без этих мета тегов. (Примечание: сайты были оптимизированы под абсолютно не конкурентные запросы и не имели бэклинков).

    Принцип работы php скрипта, основной задачей которого является “на лету” подбирать к тексту ключевые слова (keywords), заключается в разбиении всего текста на слова и занесение их в массив. Из исходного текста сначала удаляются все знаки препинания, затем слова заносятся в массив и каждому слову присваивается число его повторений в тексте. После заполнения массива слова сортируются по количеству повторений, и в качестве результатов берется верхушка массива – 15-25 самых часто употре***емых слов.

    А вот и исходный код этого php скрипта для подбора ключевых слов:
    <?php
    class Counter
    {
    var $origin_arr;
    var $modif_arr;
    var $min_word_length = 3;

    function explode_str_on_words($text)
    {
    $search = array ("'ё'",
    "'<script[^>]*?>.*?</script>'si", // Вырезается javascript
    "'<[\/\!]*?[^<>]*?>'si", // Вырезаются html-тэги
    "'([\r\n])[\s]+'", // Вырезается пустое пространство
    "'&(quot|#34);'i", // Замещаются html-элементы
    "'&(amp|#38);'i",
    "'&(lt|#60);'i",
    "'&(gt|#62);'i",
    "'&(nbsp|#160);'i",
    "'&(iexcl|#161);'i",
    "'&(cent|#162);'i",
    "'&(pound|#163);'i",
    "'&(copy|#169);'i",
    "'&#(\d+);'e");
    $replace = array ("е",
    " ",
    " ",
    "\\1 ",
    "\" ",
    " ",
    " ",
    " ",
    " ",
    chr(161),
    chr(162),
    chr(163),
    chr(169),
    "chr(\\1)");
    $text = preg_replace ($search, $replace, $text);
    $del_symbols = array(",", ".", ";", ":", "\"", "#", "\$", "%", "^",
    "!", "@", "`", "~", "*", "-", "=", "+", "\\",
    "|", "/", ">", "<", "(", ")", "&", "?", "¹", "\t",
    "\r", "\n", "{","}","[","]", "'", "“", "”", "•",
    "как", "для", "что", "или", "это", "этих",
    "всех", "вас", "они", "оно", "еще", "когда",
    "где", "эта", "лишь", "уже", "вам", "нет",
    "если", "надо", "все", "так", "его", "чем",
    "при", "даже", "мне", "есть", "раз", "два",
    "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    );
    $text = str_replace($del_symbols, array(" "), $text);
    $text = ereg_replace("( +)", " ", $text);
    $this->origin_arr = explode(" ", trim($text));
    return $this->origin_arr;
    }

    function count_words()
    {
    $tmp_arr = array();
    foreach ($this->origin_arr as $val)
    {
    if (strlen($val)>=$this->min_word_length)
    {
    $val = strtolower($val);
    if (array_key_exists($val, $tmp_arr))
    {
    $tmp_arr[$val]++;
    }
    else
    {
    $tmp_arr[$val] = 1;
    }
    }
    }
    arsort ($tmp_arr);
    $this->modif_arr = $tmp_arr;
    }

    function get_keywords($text)
    {
    $this->explode_str_on_words($text);
    $this->count_words();
    $arr = array_slice($this->modif_arr, 0, 30);
    $str = "";
    foreach ($arr as $key=>$val)
    {
    $str .= $key . ", ";
    }
    return trim(substr($str, 0, strlen($str)-2));
    }
    }
    ?>
    Пользоваться данным php классом очень просто, создаете экземпляр класса функцией new а потом вызываете внутреннюю функцию get_keywords(), класса Counter. Вот пример использования этого класса:
    $word_counter = new Counter();
    if (strlen($content)>50000)
    {
    $keywords = $word_counter->get_keywords(substr($content, 0, 50000));
    }
    else
    {
    $keywords = $word_counter->get_keywords($content);
    }
    В переменной $content должен содержатся основной текст страницы, для которой создаются ключевые слова. И еще, полученная строка содержит только ключевые слова, без мета тегов. Скачать данный php класс для подбора ключевых слов в zip архиве вы можете здесь: _ttp://wm-help.net/download/php-keywords.zip
     
  2. goodlx

    goodlx

    Регистр.:
    20 мар 2007
    Сообщения:
    158
    Симпатии:
    20
    Круто, но к сожалению сегодня гугль не реагирует на meta name=keywords. Лучше использовать рандомные уникальные тексты в теле страничек
     
  3. winua

    winua Создатель

    Регистр.:
    17 фев 2007
    Сообщения:
    19
    Симпатии:
    5
    я бы тоже не стал заморачиваться на meta name=keywords, это сейчас совсем не важный фактор ранжирования
     
  4. tired

    tired Писатель

    Регистр.:
    15 мар 2007
    Сообщения:
    7
    Симпатии:
    0
    не совсем важный - это да, но чуток всё таки чуток значение имеющее!
     
  5. koka

    koka Постоялец

    Регистр.:
    31 дек 2006
    Сообщения:
    94
    Симпатии:
    13
    А между тем, чуток в белом СЕО играет большую роль
     
  6. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Ребят, мета не играет никакой роли при наличии сетки или покупных методах продвижения.

    Так что не заморачивайтесь - оставляйте только description - он формирует сниппет.
     
  7. realmarat

    realmarat Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    59
    Симпатии:
    0
    Дайте пожалуйста определение "сниппет". Спасибо
     
  8. Brc

    Brc Создатель

    Регистр.:
    23 ноя 2006
    Сообщения:
    34
    Симпатии:
    25
    От англ. snippet – фрагмент, отрывок.
    небольшие отрывки текста найденной поисковой машиной страницы сайта, использующиеся в качестве описания ссылки в результатах поиска. Как правило, подают контекст, в котором встретилось ключевое слово в тексте.

    В Google иногда в качестве сниппетов выводится текст из метатэга “Description”. В очень редких случаях – описание сайта в [​IMG]DMOZe.
    http://wiki.searchengines.ru/WikipediaSEO/OsnovnyePonjatija/Snippet
     
  9. BazZy

    BazZy Прохожие

    Я прошу прощения, но это оффициально подтвержденные данные, что мета не играет значения?
    Где можно прочитать об этом?
     
  10. Brc

    Brc Создатель

    Регистр.:
    23 ноя 2006
    Сообщения:
    34
    Симпатии:
    25
    В 95% не играет
    напиши в службу поддержки поисковика:)
     
Статус темы:
Закрыта.