→ Мета-теги для поисковых систем в HTML. Нужно ли заполнять keywords Частые ошибки использования keywords

Мета-теги для поисковых систем в HTML. Нужно ли заполнять keywords Частые ошибки использования keywords

Search options are common in web pages and we can give option to visitors to search for keywords to locate the article or data within a site. Here we will apply the search to an existing table. The visitors will enter one or more than one keywords in the search box and we have to develop a query based on the selection of the visitor. Here we will discuss how to create a sql query to apply to the database with multiple keywords. Basically we will focus on construction of sql using keywords and will not go into details of getting the result or displaying in proper format with page breaks . Here we will give the option to the visitor to search for exact match or any where match on the table. For this we will use our student table and apply the search to the name field of the MySQL table. Based on the selected type of search we will generate the sql. Here are the steps required to develop a keyword search. Once the form is submitted check if the visitor has asked for exact match or any where match using if condition. Before that we will remove the blank space from left and right of the search sting by using ltrim and rtrim functions . $search_text=ltrim($search_text); $search_text=rtrim($search_text); If the visitor has asked for exact match then create the query using simple . Else .. If the visitor has asked for any where matching of keywords then read the search term and break it into array of keywords using explode command . Then loop through all the element of the array of words and create the sql command using like command for each word or the element of the array. Here is the code for this. $kt=explode(" ",$search_text);//Breaking the string to array of words // Now let us generate the sql while(list($key,$val)=each($kt)){ if($val<>" " and strlen($val) > 0){$q .= " name like "%$val%" or ";} }// end of while You can see we have broken the search text using explode command and then looped through the keywords. Here using one if condition we have taken care that blank space are removed in formatting the sql string. This way we will be adding one sql like command with OR combination for each word used. We will be adding each like command to the string with an SQL OR command. This way we will end with an extra OR command. This extra OR command we can remove from the end by using substr and strlen string functions. $q=substr($q,0,(strlen($q)-3)); In the above line we have first calculated the length of the string by using strlen and then used that value inside the substr function after subtracting 3 from it. The 3 is subtracted as length of OR with one blank space is 3. This way we will get the string after removing 3 chars from the end. (that is extra OR with a blank space) $sql=preg_replace("/AND/","WHERE",$sql,1); Above code will replace first occurance of AND with WHERE We can remove extra char from the end of the string by using PHP rtrim function

Once this sql is formatted then we can print it to the screen to check the syntax of the sql to match our requirement. Beyond this point you can use any server side script to collect the results from the table. You can read the tutorial on how to display data from mysql using php . You can down load the PHP version of this tutorial in a zip file at the end of this page. Here is the code till now. 0){ if(!ctype_alnum($search_text)){ echo "Data Error"; exit; } } ////////// Displaying the search box ///// echo "

"; /////////// if form is submitted the data processing is done here/////////////// echo "
"; echo "

Match any where Exact Match
"; echo "
"; if(isset($todo) and $todo=="search"){ $type=$_POST["type"]; $search_text=ltrim($search_text); $search_text=rtrim($search_text); if($type<>"any"){ $query="select * from student where name="$search_text""; }else{ $kt=explode(" ",$search_text);//Breaking the string to array of words // Now let us generate the sql while(list($key,$val)=each($kt)){ if($val<>" " and strlen($val) > 0){$q .= " name like "%$val%" or ";} }// end of while $q=substr($q,0,(strLen($q)-3)); // this will remove the last or from the string. $query="select * from student where $q "; } // end of if else based on type value echo "$query
"; $count=$dbo->prepare($query); $count->execute(); $no=$count->rowCount(); if($no > 0){echo " No of records = ".$no."

"; echo ""; foreach ($dbo->"; } echo "
IDNameClassMarkSex
$row$row$row $row$row
"; }else { echo " No records found "; } }// End if form submitted echo "
"; echo " Full records here "; $query="select * from student"; echo ""; foreach ($dbo->query($query) as $row){ echo ""; } echo "
IDNameClassMarkSex
$row$row$row $row$row
"; echo "
"; ?>

11.1K

Одна из самых популярных и необходимых функций на любом сайте – это поиск, реализованный с помощью специальной формы. Этот функционал позволяет посетителям быстро находить на сайте интересующий их контент.

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

Разрабатывать формы поиска при помощи PHP , а также познакомитесь с SQL (Structured Query Language ) – специальным языком для сбора, записи и модификации информации, содержащейся в базах данных. Перед тем как начать, рекомендуем вам скачать файлы проекта .

Что вам понадобится

  • Инструмент для работы с базами данных MySQL .
  • Локальный или удаленный сервер с поддержкой PHP .
  • Текстовый редактор.

Создаем базу данных

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

Самым популярным инструментом для управления MySQL является PHP My Admin , Этого инструмента будет достаточно для нашего сегодняшнего руководства.

Создание таблицы

Наша таблица должна быть создана в следующем формате:

Column Name Data Type Length Null or Not Null Primary key? Auto Increment
ID INT 1 Not Null Yes Yes
FirstName Varchar 50 Not Null No No
LastName Varchar 50 Not Null No No
Email Varchar 50 Not Null No No
PhoneNumber Varchar 15 Not Null No No

Таблица базы данных состоит из столбцов и строк, как в Excel . Первый столбец позволяет идентифицировать данные по имени. Далее идет колонка Data types (тип данных ), которая указывает нам на тип данных, содержащихся в колонке. В поле Length (Длина ) указывается максимальный объем памяти (хранилища ) для столбца таблицы. Мы используем переменные, которые дают больше гибкости. Другими словами, если длина ФИО меньше 50 символов, то будет занята лишь часть отведенного места.

И среди данных персонала не может быть пустых значений (null, empty ). Первая строка выделена желтым цветом, потому что столбец ID – наш основной ключ. Основной ключ в базе данных гарантирует, что каждая запись будет уникальной. К этой колонке также применен автоинкремент, а это значит, что каждой записи в нашей базе данных будет присваиваться уникальный номер автоматически.

Вносим представителей персонала в таблицу

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

Column ID FirstName LastName Email PhoneNumber
2 Ryan Butler [email protected] 417-854-8547
3 Brent Callahan [email protected] 417-854-6587

Разработка формы

Чтобы создать форму поиска по сайту через Google , откройте любой подходящий текстовый редактор. Я рекомендую воспользоваться бесплатным PSPad . Вы можете использовать любой текстовый редактор, где предусмотрена подсветка синтаксиса. Это в значительной степени облегчит процесс написания и отладки PHP-кода . Создавая страницу для формы поиска, не забудьте сохранить ее в формате .php , иначе PHP-код не будет обрабатываться должным образом. Как только сохраните документ, скопируйте в него следующую разметку:

Поиск контактов:

Детальный поиск контактов

Вы можете искать по имени или фамилии

Если вы знакомы с языком HTML , то тут вам все должно быть понятно как минимум до открывающего тега form . Внутри этого тега находится важнейший элемент всего кода – атрибут action . В качестве действия нашей формы мы указали название нашего файла, а затем применили к нему строку запроса “go ”.

Проверка на соответствие критерию

Когда пользователь вводит имя или фамилию, а затем нажимает кнопку подтверждения, форма передает данные самой себе и добавляет в конце строку запроса “go ”. На данном этапе мы проверяем наличие строки запроса go . Если результат положительный, выводим результаты поиска.

До вывода запрашиваемых результатов нам нужно перепроверить: (1) была ли подтверждена форма, (2) содержит ли строка запроса значение go, (3) был ли поисковой запрос введен в нижнем или верхнем регистре? Если ни одна из проверок не дает положительного результата (true ), то от нас не требуется выполнять какие-либо действия.

Для начала добавим небольшой блок кода PHP поиск по сайту после закрывающего тега :

Сначала мы открываем блок PHP-кода тегом ””.

Любой PHP-код внутри этой пары тегов будет исполняться сервером. Затем мы проверяем, была ли подтверждена форма:

Введите поисковый запрос

"; } ?>

Мы воспользуемся встроенной функцией isset , которая возвращает значение типа bool , и поместим в нее массив $_POST . Логическое выражение в программировании позволяет получить нам либо true , либо false .

Следовательно, если функция возвращает значение true , то форма была подтверждена, и нам нужно продолжить выполнение кода дальше. Если же функция возвращает значение false , то мы выведем сообщение об ошибке. Сохраните весь набранный код в файле search_submit.php .

Введите поисковый запрос

"; } } } ?>

Мы вкладываем еще одно условное логическое выражение внутрь основного, но только в этот раз мы используем массив $_GET вместе со значением “go ”. Сохраните изменения в файле search_go.php .

Теперь нам нужно убедиться, что посетители могут вводить первую букву в строку запроса только в верхнем или только в нижнем регистре. Нам также нужно предусмотреть способ учета критериев поиска, введенных посетителем. Лучше всего проверять введенные посетителем данные с помощью регулярного выражения:

Мы вкладываем еще одно условное логическое выражение внутрь наших двух. На этот раз мы используем регулярное выражение для проверки ввода. Мы используем встроенную функцию preg_match с двумя параметрами: регулярное выражение, и поле формы, к которому должна применяться проверка.

В нашем случае, это будет поле «Имя » (name ). Чтобы извлечь параметры поиска, указанные посетителем, мы создаем переменную $name, и привязываем к ней значение POST с названием поля из формы, которое будет использоваться в SQL-запросе . Сейчас мы реализовали: (1) отправку данных формы, (2) строка запроса включает значение go и (3) посетитель ввел либо заглавную, либо строчную первую букву. И все эти проверки происходят еще до внесения изменений в базу данных. Сохраните все изменения.

Результаты Connect, Select, Query и Return из таблицы базы данных

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

", "") or die (" Я не могу подключиться к базе данных, так как: " . mysql_error()); else{ echo "

Пожалуйста, введите поисковый запрос

"; } } }?>

Мы создаем переменную $db , и привязываем ее к встроенной функции MySQL mysql_connect , которая принимает три параметра: сервер с базой данных (localhost , если вы работаете локально ), логин и пароль.

После этого мы запускаем встроенную PHP-функцию die , которая останавливает дальнейшее выполнение кода, если нет соединения с базой данных. И выводим информацию об ошибке, запуская встроенную функцию MySQL mysql_error , которая вернет причину ошибки. Сохраните файл search_connectdb.php .

Пожалуйста, введите поисковый запрос

"; } } } ?>

Создаем переменную под названием mydb и привязываем ее ко встроенной MySQL-функции mysql_select_db , а затем указываем название базы данных, которую создали ранее. Далее мы опрашиваем таблицу базы данных при помощи SQL-запроса с переменной name, в которой содержатся параметры поиска, введенные посетителем:

Пожалуйста, введите поисковый запрос

"; } } } ?>

При опросе таблицы базы данных мы создаем переменную $sql , и привязываем ее к строке, содержащей SQL-запрос . Мы используем оператор SELECT для извлечения значений из столбцов id , а также имени и фамилии из таблицы contacts . Затем мы используем инструкцию WHERE вместе со значениями имени и фамилии, чтобы сузить поиск.

Вместе с оператором LIKE мы используем знак процента (%) – спецсимвол, который возвращает 0 и более знаков, а также переменную name из строки поиска. В результате LIKE (в сочетании со спецсимволом ) находит любое соответствующее имя в таблице базы данных. Можно описать весь процесс следующим образом: «Мы выбираем имя и фамилию из таблицы contacts , которые соответствуют введенным посетителем ». Сохраните файл search_query.php .

Пожалуйста, введите поисковый запрос

"; } } } ?>

Мы создаем переменную $result , и присваиваем ей значение функции mysql_query () , внося ее в $query. Теперь наш запрос хранится в переменной result . Чтобы вывести результат в PHP , мы создаем цикл, а затем выводим данные в неупорядоченном списке:

n"; echo "

  • " . "
  • n"; echo ""; } } else{ echo "

    Пожалуйста, введите поисковый запрос

    "; } } } ?>

    Сначала мы создаем цикл while , внутри него создаем переменную под названием row , и инициализируем ее возвращаемым значением функции mysql_fetch_array , которая принимает переменную result , в которой находится наш SQL-запрос . Внутри цикла while мы присваиваем каждому значению столбца значение переменной с идентичным названием. Затем мы выводим значения внутрь неупорядоченного списка.

    Здесь важно обратить внимание на два момента: (1) внутри цикла while не нужно присваивать значения переменным массива row , так как значения можно брать напрямую из массива row ; (2) тег anchor , который мы используем в названии нашего файла вместе с id и основным ключом. Причина этого заключается в том, что во многих поисковых элементах изначально ничего не отображается.

    Так как мы показываем только имя и фамилию, приписывая ID в конце нашего тега anchor , то мы можем использовать ID для дополнительного запроса, который позволит вывести дополнительную информацию о персонале. Сохраните файл и протестируйте форму PHP поиска по сайту (search_display.php ).

    Убираем табуляцию

    Результаты выводятся в виде неупорядоченного списка, но суть в том, что нам не нужна табуляция. Чтобы избавиться от нее, добавьте следующее CSS-правило в самое начало вашего файла в head :

    Поиск по буквам

    Для реализации поиска по буквам потребуется лишь несколько дополнительных строк кода. Добавим этот удобный функционал для посетителей. Таким образом, они смогут находить представителей персонала по буквам, которые содержатся в имени или фамилии.

    Добавьте следующую строку кода после закрывающего тега form :

    A | B | K

    Мы привязываем тег к строке запроса с by с помощью анкора, и устанавливаем его равным определенной букве. Чтобы реализовать функционал поиска по буквам, нам нужно добавить следующий код прямо после закрывающей фигурной скобки в исходном скрипте, как показано ниже:

    }//Окончание скрипта поисковой формы if(isset($_GET["by"])){ $letter=$_GET["by"]; //Подключение к базе данных $db=mysql_connect ("servername", "username", "password") or die ("Я не могу подключиться к базе данных, так как: " . mysql_error()); //-Выберете базу данных $mydb=mysql_select_db("yourDatabase"); //-Запрос к таблице базы $sql="SELECT ID, FirstName, LastName FROM Contacts WHERE FirstName LIKE "%" . $letter . "%" OR LastName LIKE "%" . $letter ."%""; //-Запустить запрос к функции MySQL Query $result=mysql_query($sql); //-Результаты подсчета $numrows=mysql_num_rows($result); echo "

    " .$numrows . " results found for " . $letter . "

    "; //-Запуск цикла и сортировка результатов while($row=mysql_fetch_array($result)){ $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $ID=$row["ID"]; //-Вывести результат в массиве echo "
      n"; echo "
    • " . "" .$FirstName . " " . $LastName . "
    • n"; echo "
    "; } }

    Здесь мы изменили четыре фрагмента кода скрипта поиска по сайту:

    • Мы используем функцию isset() , и вносим в нее массив $_GET , а затем проверяем значение by ;
    • Создаем переменную $letter и инициализируем ее значение массивом $_GET ;
    • Добавляем переменную letter в SQL-запрос ;
    • Указываем переменную letter внутри выражения, в котором получаем подсчитанное количество строк.

    Сохраните файл search_byletter.php и проверьте результат.

    Поиск определенного сотрудника

    Чтобы отобразить информацию об остальном персонале, которая передается через уникальное id внутри нашей ссылки, нужно добавить следующий код прямо после закрывающей фигурной скобки в скрипте letter , как показано ниже:

    }//Окончание скрипта if(isset($_GET["id"])){ $contactid=$_GET["id"]; //Подключение к базе данных $db=mysql_connect ("servername", "username", "password") or die ("Я не могу подключиться к базе данных, так как: " . mysql_error()); //-select the database to use $mydb=mysql_select_db("yourDatabase"); //- Запрос к таблице базы данных $sql="SELECT * FROM Contacts WHERE ID=" . $contactid; //- Запустить запрос к функции mysql_query() $result=mysql_query($sql); //- Запуск цикла и сортировка результатов while($row=mysql_fetch_array($result)){ $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $PhoneNumber=$row["PhoneNumber"]; $Email=$row["Email"]; //- Вывести результат в массиве echo "

    "; } }

    Здесь мы изменили четыре фрагмента кода:

    • Мы используем функцию isset() , и с ее помощью проверяем значение ID в массиве $_GET ;
    • Создаем переменную $contactid и инициализируем ее массивом $_GET ;
    • В таблице выделяем все, что отмечено звездочкой * . Звездочка – это сокращенное обозначение в SQL , которое означает «дайте мне все столбцы и строки из таблицы» . Чтобы определить, какую информацию выводить, мы упоминаем переменную contactid в конце SQL-выражения ;
    • Выводим дополнительную информацию о каждом представителе персонала.

    Сохраните файл search_byid.php и проверьте результат.

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

    SQL-инъекция

    Причина, по которой мы добавили в наше поле поиска регулярное выражение, заключается в том, чтобы никто не смог вмешаться в наш SQL-запрос . Раньше эта проблема была распространена, и хакеры умудрялись проводить собственные SQL-запросы , манипулируя при этом вашим приложением. Например, если бы мы допустили возможность использовать апостроф в нашем поле, то хакер мог бы просто удалить базу данных, используя запрос:

    "DROP TABLE

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

    В завершение

    В сегодняшней статье мы рассмотрели, как сделать поиск по сайту, а также:

    • Создавать базы данных и соответствующие таблицы;
    • Использовать инструменты для управления базами данных, создавать столбцы и вводить данные;
    • Разрабатывать формы поиска на основе PHP , которая умеет осуществлять проверку вводимых данных, наличия переменных в запросе, а также соединяться с базой данных и выводить результаты из таблицы;
    • Как защитить приложение и базу данных от SQL-инъекций .

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

    Данная публикация представляет собой перевод статьи «How to Create a Search Feature with PHP and MySQL » , подготовленной дружной командой проекта

    В этой статье мы с Вами разберём последнюю группу мета-тегов в HTML , предназначенных для поисковых систем. Они имеют большую важность, и их надо использовать на каждой странице. Без использования мета-тегов для поисковых систем , оптимизация будет затруднена.

    Сначала давайте разберём то, как вставляются мета-теги для поисковых систем в HTML . Как и все мета-теги, они вставляются внутри тега <head > следующим образом:

    Как видите, процесс вставки абсолютно идентичен процессу вставки мета-тегов для страницы , поэтому здесь всё так же просто. Теперь перечислю основные мета-теги для поисковых систем , которые надо будет использовать:

    • description - этот мета-тег содержит описание страницы. Фактически, в данном мета-теге необходимо кратко сформулировать, что на данной странице находится. Вопреки заблуждению большинства, данный мета-тег влияет на выдачу в поисковых системах, поэтому вставляйте его на каждой странице.
    • keywords - мета-тег, содержащий ключевые слова для данной страницы. Здесь можно использовать набор различных слов, которые чаще всего у Вас встречаются на данной странице. Так же как и "description ", "keywords " должен быть указан на каждой странице.
    • robots - этот мета-тег используется, если нужно запретить индексацию страницы поисковыми система. Это бывает очень полезно и очень часто используется. О возможных значениях этого мета-тега мы поговорим чуть ниже.

    Теперь давайте приведу пример использования мета-тегов для поисковых систем в HTML :





    Здесь всё прозрачно, поэтому остановлюсь только на мета-теге "robots ". Здесь существует 4 значения:

    • index,follow - это значение означает, что данную страницу нужно проиндексировать, а также пройтись по всем ссылкам на данной странице.
    • noindex,follow - это значение сообщает поисковому роботу, что страницу индексировать не надо, а вот пройтись по ссылкам на этой странице стоит.
    • index,nofollow - индексировать страницу нужно, но по ссылкам на ней не переходить.
    • noindex,nofollow - это значение сообщает роботу, что ни индексировать страницу, ни переходить по ссылкам на этой странице нельзя.

    Если поисковый робот должен проиндексировать страницу и перейти по всем ссылкам (в большинстве случаев это так), то указывать мета-тег "robots " необязательно. А вот если нужно запретить индексацию, то самый простой способ это сделать - воспользоваться мета-тегом "robots ".

    Meta keywords — список ключевых слов (key words), соответствующих содержимому страницы сайта. Поисковые системы могут использовать ключевые слова тега meta name keywords content при индексации. Однако в отличие от meta description, значение атрибута content тега meta name keywords уже существенно менялось и никто достоверно не может сказать, в какой степени ключевые слова из мета кейвордс используются различными поисковыми системами.

    Синтаксис html meta keywords

    Мета-тег keywords размещается в html сайта внутри тега .

    О том, как стоит правильно заполнять ключевыми словами meta keywords и как не стоит, можно сказать примерно следующее.

    Как не стоит заполнять meta keywords:

    • не больше 20 слов . Излишнее перечисление ключевых слов вряд ли будет позитивно воспринято поисковыми системами;
    • не более 3-х повторов . Многократное повторное перечисление одного и того же ключевого слова (фразы) всегда негативно воспринимается при и определении соответствия страницы поисковым запросам.

    Как стоит заполнять meta keywords:

    • больше склонений . Если очень хочется использовать ключевое словно мета кейвордс несколько раз — используйте ключевое слово (фразу) в различных склонениях и числах;
    • очепятки опечатки . Список ключевых слов можно разбавить популярными опечатками ключевых слов. Иногда опечатки бывают настолько популярными, что отображаются в подсказках прямо в поисковой строке;
    • англоязычные запросы . Если на сайте могут быть использованы англоязычные ключевые слова, значение которых соответствует содержимому страницы, почему бы не добавить их в мета тэг кейвордс.

    Ключевые слова meta keywords изначально существенно влияли на , что активно пользовались для и его вывода по необходимым ключевым запросам в топ поисковой выдачи. В результате, поисковые системы либо вовсе перестали учитывать meta тег keywords при индексации, либо свели его значение к минимуму.

    Как писать ключевые слова в meta keywords — через запятую или через пробел?

    Как правильно писать ключевые слова? — Популярный вопрос.
    Через запятую, через пробел, через запятую с пробелами или без пробелов?

    • писать ключевые слова через запятую (с пробелом после запятой). Самый популярный вариант написания ключевых слов в meta keywords;
    • писать ключевые слова через пробел .

    Чтобы определиться, какой вариант лучше, я задам вопрос. Как создать больше всего вариаций ключевых запросов, используя ограниченный набор слов и повторов?

    Meta keywords примеры правильного написания ключевых слов

    Пример 1 — ключевые слова через запятую :

    Плюшевые мишки, большой плюшевый медведь, плюшевые мишки купить, купить большого медведя

    Запятые являются разделителем ключевых фраз. То есть мы изначально указываем поисковому роботу, какие именно словоформы мы хотим использовать.

    Пример 2 — ключевые слова через пробел :

    Плюшевый мишка большие плюшевые медведи купить огромный плюшевый медведь мягкая игрушка

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

    Какой результат будет более релевантным? Пишите свои предположения в комментариях.

    Яндекс и meta keywords

    Не все поисковые системы полностью отказались от meta keywords , Яндекс открыто описывает свое отношение к ключевым словам из мета кейводс. И сообщает, что робот Яндекса учитывает содержание тега meta name keywords content в следующей формулировке:

    "- может учитываться при определении соответствия страницы поисковым запросам"

    Может учитываться означает, что может и не учитываться . Маловероятно, что поисковые системы совсем игнорируют корректно указанные метаданные о странице сайта. И тем более, никто не может гарантировать, что значение мета тега keywords не будет пересмотрено Яндексом (или уже пересмотрено). В любом случае, лучше прописывать ключевые слова в meta keywords, SEO хуже от этого не станет.

    Google и meta keywords

    Сам Гугл про мета кейвордс заявляет следующее (короткое видео 1:58):

    "We don’t use keywords meta-tag in a search-ranking"

    Занавес. По крайней мере, честно и однозначно. Верить или не верить Google — дело ваше. Но лучше заполнить слова сразу, чем потом узнать, что тэг meta keywords снова вляет на SEO, и получить тысячи, десятки или сотни тысяч страниц, которым нужно прописать ключевые слова, а шаблоны «палятся» на раз и могут пессимизировать поисковую оптимизацию сайта.

    Meta keywords Rambler, Mail.ru, Yahoo, Bing

    Важность отношения данных поисковых систем к мета тегу keywords стремится к нулю, тем более, что многие из них используют алгоритмы гигантов рынка, например Яндекса.

    Meta keywords в joomla и wordpress

    Популярные CMS Joomla и WordPress поддерживают meta name keywords . Что, в свою очередь, подчеркивает востребованность заполнения мета тега для ключевых слова на странице. СЕО не бывает лишним даже если это .

    Окончательное решение остается за вами.

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

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

    И правильно заполняйте мета-теги.

    Sphinxsearch является поисковым движком для быстрого fulltextsearch, может получать данные из mysql, oracle и mssql, может выступать сам хранилищем(realtime индексы). Также sphinx имеет режим работы через api и через sphinxql - аналог протокола sql(с некоторыми ограничениями), что позволяет подключить поиск через sphinx на сайте с минимальным изменением кода. Это один из немногих великих, крупных и открытых проектов разработанный в России. На моей жизни я видел как sphinx обрабатывает порядка 100-200 поисковых запросов на 2 миллиона записей из mysql и при этом сервер свободно дышал и его не тошнило, mysql начинает умирать уже на 10 запросах в секунду на аналогичном конфиге.

    Основная проблема документации sphinx на мой взгляд малое количество примеров для большинства интересных настроек, сегодня постараюсь рассказать в примерах о них. Опции которые я затрону касаются в основном алгоритмов и вариаций поиска. Все кто плотно работает со sphinx не узнают ничего нового, а новички надеюсь смогут улучшить качество поиска на своих сайтах.

    Sphinx содержит две независимые программы indexer и searchd. Первый строит индексы по данным взятым из базы данных, второй производит поиск по построенном индексу. А теперь перейдем к настройкам поиска в sphinx.

    morphology
    Позволяет задать морфологию слов, я использую только стемминг. Алгоритм стемминга с помощью набора правил для языка обрезает окончания и суффиксы. Стемминг не использует готовые базы слов, а основан на определенных правилах обрезания для языка, что делает его маленьким и быстрым, но это же и добавляет ему минусы так как он может совершать ошибки.

    Пример нормализации слова стеммингом на русском.
    Слова “яблоко”, “яблока”, “яблоку” будут обрезаны в “яблок” и любой поисковый запрос с вариацией слова “яблока” будет тоже нормализован и найдет записи со словами которые были описаны выше.

    Для английского слова “dogs” и “dog” будут нормализованы к “dog”.
    К примеру в sphinx должен положить в индекс слово кучерявый, в индекс попадет слово кучеряв и будут находиться вариации кучеряво, кучерявая и др.
    Включить стемминг можно для русского, английского или обоих языков

    Morphology = stem_en
    morphology = stem_ru
    morphology = stem_enru

    Также можно использовать опции Soundex и Metaphone они позволяют использовать для английского языка с учетом звучания слов. Не использую в работе данные алгоритмы морфологии так что если кто то знает много про них буду рад почитать. Для русского языка такие алгоритмы позволяли бы получать из слов “солнце” и “сонце” нормализованную форму “солнце”, которая получается на основании звучания и произношения этих слов.

    Morphology = stem_enru, Soundex, Metaphone

    Можно подключать и внешние движки для морфологии или написать свой.

    Wordforms

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

    Core 2 duo > c2d
    e6600 > c2d
    core 2duo > c2d

    Позволит найти статью о core 2 duo для любого поискового запроса от модели до вариаций названия.

    Конопля > травка
    дурь > травка
    моя прелесть > травка
    трава свободы > травка
    че покурить > травка
    есть чё > травка

    А данный словарь позволит вашим пользователя легко найти информацию о травке на сайте.

    Для словоформ используются файлы в формате ispell или MySpell(которые можно сделать в Open Office)

    Wordforms = /usr/local/sphinx/data/wordforms.txt

    enable_star

    Позволяет использовать звездочки в запросах, к примеру по запросу *пр* будут найдены проспект, привет, апроксимация и др.

    Enable_star = 1

    expand_keywords

    Автоматически расширяет поисковый запрос до трех запросов

    Running -> (running | *running* | =running)

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

    Expand_keywords = 1

    index_exact_words

    Позволяет на ряду с морфологически нормализованной формой хранить и оригинальное слово в индексе. Это сильно увеличивает размер индекса, но с учетом предыдущей опции позволяет выдавать результаты более релевантно.

    К примеру есть три слова “дыня”, “дыне”, “дыню” без этой опции все три слова будут сохранены в индексе как дын и на запрос “дыне” будут выданы в порядке добавления в индекс то есть “дыня”, “дыне”, “дыню”.
    Если же включить опции expand_keywords и index_exact_words то на запрос “дыне” будет более релевантная выдача “дыне”, “дыня”, “дыню”.

    Index_exact_words = 1

    min_infix_len

    Позволяет индексировать части слова инфиксы, и искать по ним с применением *, вроде search*, *search и *search*.
    К примеру при min_infix_len = 2 и попаданию в индекс слова “тест”, будут сохранены в индекс “те”, “ес”, “ст”, “тес”, “ест”, “тест” и по запросу “ес” будет найдено это слово.

    Обычно я использую

    Min_infix_len = 3

    Меньшее значение генерит слишком много мусора и помните что использование этой опции сильно увеличивает индекс.

    min_prefix_len

    Является дочерним для min_infix_len и делает почти тоже самое только сохраняет начало слов или префиксы.
    К примеру при min_infix_len = 2 и попаданию в индекс слова “тест”, будут сохранены в индекс “те”, “тес”, “тест” и по запросу “ес” будет найдено это слово.
    min_prefix_len = 3

    min_word_len

    Минимальный размер слова для индексации, по умолчанию 1 и индексирует все слова.
    Обычно использую
    min_word_len = 3
    Слова меньшего размера обычно не несут смысловой нагрузки.

    html_strip

    Вырезает все html теги и html комментарии. Эта опция актуально если вы строите свой google/yandex на базе sphinxsearch. Запустили спайдера спарсили сайт, загнали его в базу данных, натравили indexer и эта опция позволит избавиться от хлама в виде html тегов и искать только по контенту сайта.

    Сам к сожалению не использовал, но в документации написано что может косячить со всякими xml и не стандартным html(к примеру где попало открывающимся и закрывающимся тегам и пр).

    Буду рад любым вопросам и уточнениям.
    Офсайт

     

     

    Это интересно: