Привет, друзья дле’шники. Уже достаточно давно меня попросили написать пост о том как встроить форму поиска от Яндекса и Google в свой сайт на DLE. По всей видимости, я сегодняшний пост и посвящаю этому вопросу.
Ах да, чуть не забыл сказать о том, зачем это надо. Используюя интегрированный поиск по сайту можно получать не только качественные результаты поиска (вы же понимаете, что встроенный в любую CMS поиск ну никак не может состязаться с великими технологиями ранжирования гигантов рынка), но и так же получать копеечку за клики по контекстной рекламе, которая органично вписывается в результаты поиска. Наверное, именно из-за последнего пункта меня и просили написать данное руководство.
Ну и помимо самой технологии установки поиска для сайта я расскажу несколько интересных наработок о том, как все это дело улучшить и просто сделать красиво.
Создание новой системы пользовательского поиска Google
Итак, предлагаю начать с поиска от нашего любимого Гугла. Предполагается, что аккаунт в AdSense у вас уже есть. Чтобы долго не тянуть резину сразу переходим к созданию и настройке системы поиска.
Авторизуемся в системе Google AdSense, переходим во вкладку «Мои объявления», в блоке слева нажимаем «Поиск» и «Системы пользовательского поиска», жмем кнопку «Новая система пользовательского поиска», вот как-то так:
Далее мы попадаем непосредственно на страницу настроек будущей системы поиска. Напротив каждого пункта есть знак вопросика, наведя на который можно получить справку, очень удобно. А чтобы вам было проще, я отмечу важные поля на скриншоте ниже.
Необходимо будет обязательно настроить пункты:
- Область поиска – Только выбранные мной сайты, в поле указать адрес своего сайта http://site.ru
- Страна, Язык сайта – Настроить в соответствии с вашим регионом, Россия, Украина, и т.д.
- Кодировка – Очень важно указать здесь кодировку такую же как и на самом сайте, скорее всего это windows-1251
- Стиль объявлений – можете настроить цвета рекламных блоков, которые будут показываться в результатах поиска, это уже на ваше усмотрение.
- Результаты поиска – очень важный пункт, необходимо обязательно выбрать «Показывать результаты: на моем веб-сайте с использованием фреймов iFrame». А в поле «URL вывода результатов поиска» указать страницу search.html вашего сайта, то есть вот так http://site.ru/search.html
Все настройки выполнены, смело жмем «Сохранить и получить код».
После нажатия мы сразу увидим всплывающее окно с двумя формами «Код окна поиска» и «Код результатов поиска».
Код из первой формы «Код окна поиска» необходимо будет вставить в свой шаблона сайта, например, в main.tpl в то место, где хочется видеть форму поиска.
Для кода из формы «Код результатов поиска» необходимо будет создать отдельную страницу на сайте. Заходим в админку сайта –> Статические страницы –> Создать новую страницу.
При создании статической страницы заполняем:
- Название: search
- Описание: Поиск по сайту site.ru
- Текст: Нажимаем на кнопочку «Редактировать HTML код», или как-то так, в открывшемся окне вставляем код из второй формы, выданной Гуглом.
- Тип текста: Исходный текст HTML без фильтрации и изменений
Жмем сохранить. Теперь все готово, новым поиском уже можно пользоваться.
Для проверки в новой форме поиска на сайте введите какой-нибудь запрос, ответ на который точно есть на вашем сайте, и после нажатия на кнопку Поиск, должен совершиться переход на страницу http://site.ru/search.html?cx=partner-pub-59xxx...
Если все так, и видны результаты поиска — значит мы все сделали правильно!
Яндекс Поиск для сайта
Если вы хотите использовать на сайте поиск от Яндекса, а не от Google, тогда читайте дальше.
Переходим в специальный раздел Яндекс.Поиск и сразу нажимаем Установить поиск.
Всего нам придется пройти 5 шагов для достижения результата, рассмотрим их:
- Шаг 1. Область поиска – Здесь необходимо задать только название, которое потом будет отображаться в интерфейсе Яндекса в списке ваших созданных поисков для сайтов. А так же необходимо добавить адрес своего сайта (жмем «Добавить сайты», в открывшемся окне вводим http://site.ru).
- Шаг 2. Форма поиска – Здесь необходимо выбрать дизайн будущей формы поиска, то, как она будет отображаться на страницах вашего сайта. По большому счету, можно задать только цвет плашки и размер шрифта, обычно этого достаточно.
- Шаг 3. Результаты поиска – На этой странице важно указать, где показывать результат – выбираем «в iframe на странице», а в поле пишем http://site.ru/search.html, так же ставим галочку напротив «показывать рекламу и результаты поиска в одну колонку». Так же на этом же шаге можно настроить стиль результатов поиска – задать размер шрифта, цвет, выделение жирным и/или курсивом и включить/отключить отображение некоторых элементов.
- Шаг 4. Проверка поиска – Это проверка на деле, на странице будет показана готовая форма, такая же, как будет у вас на сайте, и можно вбить запрос и получить результаты для вашего сайта не уходя с текущей страницы.
- Шаг 5. Код для вставки на сайт – Последний штрих, Яндекс предложит выбрать кодировку сайта (скорее всего это будет windows-1251) и язык. И, конечно, два куска кода – один для вставки в основной шаблон сайта, а второй для статической страницы. Об этом подробнее чуть ниже.
Итак, код из первой формы под названием «Разместите код поисковой формы на вашем сайте» необходимо будет вставить в файл main.tpl в то место, где хочется видеть форму поиска на сайте.
Код из формы «Разместите этот код на странице http://site.ru/search.html» необходимо вставить в новую статическую страницу. Алгоритм абсолютно такой же как и для рассмотренного выше варианта для Google, так что расписывать второй раз я не стану.
А что же по поводу объявлений Яндекс Директ и зарабатывания бабла в РСЯ, спросите вы? Тут все гораздо сложнее чем в случае с Google, где не надо проходить модерацию. В первую очередь, потребуется заключить партнерский договор с Яндексом. Потом создать новую площадку типа «Форма поиска». На одном из этапов создания площадки привязать созданный поиск к создаваемой площадке. При самом лучшем раскладе ваш сайт пройдет модерацию и вы сможете зарабатывать свои кровные копеечки.
Ну вот, мы разобрали пошагово алгоритм создания поиска по сайту при помощи поисковых технологий Google и Яндекс.
Я рекомендую обязательно пользоваться одним из описанных вариантов вместо встроенного поиска вашей CMS. Во-первых, снизите нагрузку на свой сервер, во-вторых получите более качественный результат, а в-третьих, если получится, еще и заработаете на пивко!
Спасибо за внимание, друзья. Жду ваших вопросов и комментариев.
У меня стоял одно время на сайте поиск от гугла. Но как показала карта кликов — никто за 3 месяца не кликал в него.
Хотя это было давно, возможно времена изменились.
А вот за статью спасибо. Многим пригодится.
Ну значит люди просто не пользуются поиском по сайту. Тем не менее, лучше иметь, чем не иметь :)
Подскажите, пожалуйста, можно каким-либо образом настроить отображение результатов поиска. В частности, меня интересует фон. Шрифты, заголовки и все прочее я настроил в стиле объявлений, а вот фон как был белым, так и остался. Спасибо
Нашел сам, справа от кнопки сохранения есть "Больше возможностей расширенного поиска", там то я все и настроил :)
А можно по подробней, а то я что то не могу найти?
То есть по сути результаты поиска будут зависеть от того насколько часто робот индексирует сайт и от количества проиндексированных страниц? Грубо говоря, если не так давно добавляли статью, но она не проиндексирована этим поисковиком, то и в результаты поиска не попадет?
То же самое, если новость отредактирована — только ждать, когда робот удосужится переиндексировать существующие проиндексированные страницы.
Ну и еще один важный момент. Зачастую мы много чего хотим убрать (и убираем) из индексации ПС для достижения определенных целей например в плане SEO, но никак не чтобы посетитель на самОм сайте не смог ее найти. И если категория занесена в robots, то и информация из нее в результатах поиска на сайте тоже, как я понимаю, не появится. Опять же — конфликт двух разных интересов.
Прав Пафнутий в том, что по факту поиском по сайту пользуются очень редко. НО если уж человек решил им воспользоваться, то ему это действительно надо и задача стоит — выдать наиболее полные результаты, в том числе и по новостям, созданным 15 минут назад. И тут речи о каком-то мизерном выигрыше в плане нагрузки на сервер вести не имеет смысла, этим фактором можно пренебречь.
А поиск от Яндекса и Гугла, имхо, имеет смысл использовать только для одной определенной цели, вернее — двух:
1. Заработке на контекстной рекламе. Здесь задача как раз и состоит в противоположном — акцентировать внимание на окне поиска, но чтобы пользователь НЕ нашел нужной информации у вас и кликнул в результатах поиска по рекламе.
2. Если имеются несколько разных сайтов схожей тематики и хочется в поисковую выдачу включить результаты по всем своим сайтам.
Ну, не совсем все так, как вы предполагаете. Для создания базы индекса для поиска по сайту у поисковиков есть отдельные роботы, которые по другому индексируют сайт, для них можно прописать в robots.txt отдельные директивы, которые они и будут выполнять. Что даже удобнее, можно оставить для поиска по сайту только определенные разделы и страницы, чтобы только их можно было найти.
Ну и вообще там есть парочка прикольных фишек, с помощью которых можно кастомизировать и сделать его более удобным для пользователя. Советую зайти по ссылке в посте и там посмотреть, что Яндекс предлагает.
А я себе сделал поиск от яндекс так как он гибок в настройках, хотя еслиб не забанили в гугл адсенс то конечно поставил бы поиск от гугл.
Значок Google можно убрать, не будет ли за это штрафа?
Ничего не будет :)
А меня поиск от гугла не подошел в дизайн, у него "Ширина раздела результатов поиска"--800. И меньше не делается.
Пришлось ставить от Яндека. Хотя он (яша) и не особо мне нравится.
А вот что делать с поискам от DLE, стоит ли его отключать или он при бездействие не дает нагрузки?
Можно отключать родной поиск, а можно и не отключать — нагрузки не будет, если никто им не будет пользоваться.
Поиск от яндекса это хорошо, но вот в дизайн его внедрить красиво вот это сложно.
Благодарю за знания!
Админ подскажи пожалуйста, а можно сделать поиск в конкретной категории??
Можно, если эта категория четко отражена в url содержащихся в ней страниц.
Ну так а как оно может быть по другому:)))? Имеется ввиду именно новости (страницы) из одной категории.
Тобишь дополнительный поиск.
И как это сделать?
На первом шаге это делается, "Добавить сайты и исключения".
Ну я вроде вставил ссылку конкретной категории, попробовал, а поиск выдает новости со всего сайта. Что я делаю не так?
поставил ссылку http://сайт.ру/кат/ Может что не так? И что значит исключение?
Посмотрите в хелпе — http://help.yandex.ru/site/
Добрый вечер. Проблема такая. Установил поиск все работало и т.д.
Через недели две проверил — не пашет.
Написал в сапорт яши, цитирую:
Вот что пишет хостер
Для данного домена php работает в режиме CGI: http://сайт.ru/info.php
Обратитесь к разработчику скрипта за уточнениями, проблем со стороны сервера не возникает.
Смотрите, вот страница с результатами: http://сайт.ru/search.html?searchid=2000287&text=nya&web=0
Именно в таком виде. Почему с нее идет редирект на http://сайт.ru/search.html ? Как раз CGI отрезаются. Если это не хостинг, может Вы сами как-то это настроили?
> Добрый вечер вот что ответил хостер.
> Ответ (Игорь Борисюк) | Дата: 2013-11-12 21:14:42
> На Вашем сервере установлен CGI модуль. Все сервисы работают корректно. Ошибок в логах нет.
> Проблемы со стороны сервера не наблюдаем разбирайтесь с Яндексом.
>
> Вторник, 12 ноября 2013, 17:16 UTC от Yandex.Site support <site@support.yandex.ru>:
> >Здравствуйте!
> >Теоретически все верно. Страница http://сайт.ru/search.html принимает CGI? Если нет, то попробуйте сделать результаты на другой странице, потому что без CGI-параметров результаты не будут сформированы.
читайте снизу в верх
Viktor, у тебя дле 10.1 ?
У меня после обновления на 10.1 версию перестал поиск работать(
Решается проблема отключение обработчика неверных урлов ЧПУ, только в прошлой версии с данной опцией все хорошо работало...
Если не хотите отключать полностью проверку неверных урлов, то можно вырезать данный код с модуля static.php и подправить урл в .htaccess
Открываем static.php и убираем данный кусок
header ("HTTP/1.0 301 Moved Permanently");
header ("Location: {$re_url}{$static_result['name']}.html");
die ("Redirect");
Это решает проблему чистого листа в результатах поиска в v.10.3. Проверено.
Спасибо за решение.
Спасибо, сработало решение проблемки с поиском Яндекса.
Желательно добавить в список мини-FAQ данной статьи.
Привет всем! Вопрос: а если я не размещаю на сайте рекламу от яндекс директ, стоит ли мне выставлять галочку напротив "показывать рекламу и результаты поиска в одну колонку". Или всётаки есть польза?
Решил проблему поиска от Гугл на dle 10.1 следующим образом. Осуществил произвольный поиск и получил чистый лист без результатов. Скопировал исходный код страницы в файлик search.html и залил в корень сайта. Переименовал (еще пригодится потом) статическую страничку search.
Поиск работает, но файлик придется менять при изменениях на сайте. Например, при смене дизайна или его доработке, изменениях в меню.
У меня «морда» сайта не меняется, так что вариант получился идеальным.
а у меня проблема делал по инструкции site.ru/search.html работает когда с главной страницы, а
но когда происходит поиск site.ru/категория/search.html то вылазиет forbidden 403 сервера.
Кто знает как поправить?
Все сделал как описано тут но чет страница результата пустая, а при выводе результата на странице яндекса все норм, наверное шаблон кривой но что именно вот это не понять.
В DLE 10.4 при создании статической страницы и включенном "Обрабатывать неверные URL ЧПУ" в настройках сайта вы не получите страницу с результатами, так как каждый раз при обращении к ним, параметры будут отбрасываться и будет происходить 301 направление на страницу без параметров: http://site/search.html?query=term -> http://site/search.html
Чтобы обойти этот момент, надо добавить страницу search в исключения.
Для этого открываете engine/modules/static.php, делаете замену dle-rules-page на search
Или более красивое решение — добавить новое условие — AND $static_result['name'] != "search"
Заменить:
if ($config['allow_alt_url'] AND $config['seo_control'] AND $static_result['name'] != "dle-rules-page" AND ( isset ($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) ) {
На:
if ($config['allow_alt_url'] AND $config['seo_control'] AND $static_result['name'] != "dle-rules-page" AND $static_result['name'] != "search" AND ( isset ($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) ) {
Можно обойтись без правок движка. Всего лишь нужно код результатов поиска поместить в search.tpl и в качестве страницы результатов поиска указать http://site.ru/search/ либо http://site.ru/index.php?do=search
Проверено в DLE 10.4.
Sidar, у вас точно этот способ работает? У меня редирект на главную. У вас включен ЧПУ?
DLE 10.4
Дима, ЧПУ включен. Походу вносил какие-то правки о которых я уже забыл.
Недавно ставил на другой сайт и тоже был редитект на главную исправил добавлением в .htaccess строки
RewriteRule ^search/$ index.php?do=search&mode=advanced [L]
Вот результат http://ljapis.ru/search/
Дима, на сайтах еще делана оптимизация по статьям "SEO оптимизация DLE", возможно что-то из этого влияет.
Так-с... поставил чистую 10,4 на денвер и все проверил.
Вариант "http://site.ru/index.php?do=search" с Яндекс поиском работает без проблем, с Google поиском не хочет, выдает "Hacking attempt!".
Вариант "http://site.ru/search/" работает для обоих, но только после добавления строки в .htaccess "RewriteRule ^search/$ index.php?do=search [L]".
Для более красивого вида в адресной строке можно использовать "RewriteRule ^search$ index.php?do=search [L]", тогда страница результатов "http://site.ru/search".