Интеграция пользовательского поиска от Яндекс и Google в DLE Datalife Engine

Поиск от Яндекс и Google в DLE Привет, друзья дле’шники. Уже достаточно давно меня попросили написать пост о том как встроить форму поиска от Яндекса и Google в свой сайт на DLE. По всей видимости, я сегодняшний пост и посвящаю этому вопросу.

Ах да, чуть не забыл сказать о том, зачем это надо. Используюя интегрированный поиск по сайту можно получать не только качественные результаты поиска (вы же понимаете, что встроенный в любую CMS поиск ну никак не может состязаться с великими технологиями ранжирования гигантов рынка), но и так же получать копеечку за клики по контекстной рекламе, которая органично вписывается в результаты поиска. Наверное, именно из-за последнего пункта меня и просили написать данное руководство.

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


Создание новой системы пользовательского поиска Google

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

Авторизуемся в системе Google AdSense, переходим во вкладку «Мои объявления», в блоке слева нажимаем «Поиск» и «Системы пользовательского поиска», жмем кнопку «Новая система пользовательского поиска», вот как-то так:

Новая система пользовательского поиска Google

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

Настройка системы пользовательского поиска Google

Необходимо будет обязательно настроить пункты:

  • Область поиска – Только выбранные мной сайты, в поле указать адрес своего сайта http://site.ru
  • Страна, Язык сайта – Настроить в соответствии с вашим регионом, Россия, Украина, и т.д.
  • Кодировка – Очень важно указать здесь кодировку такую же как и на самом сайте, скорее всего это windows-1251
  • Стиль объявлений – можете настроить цвета рекламных блоков, которые будут показываться в результатах поиска, это уже на ваше усмотрение.
  • Результаты поиска – очень важный пункт, необходимо обязательно выбрать «Показывать результаты: на моем веб-сайте с использованием фреймов iFrame». А в поле «URL вывода результатов поиска» указать страницу search.html вашего сайта, то есть вот так http://site.ru/search.html

Все настройки выполнены, смело жмем «Сохранить и получить код».
После нажатия мы сразу увидим всплывающее окно с двумя формами «Код окна поиска» и «Код результатов поиска».

HTML код пользовательского поиска Google для вставки на сайт

Код из первой формы «Код окна поиска» необходимо будет вставить в свой шаблона сайта, например, в 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. Во-первых, снизите нагрузку на свой сервер, во-вторых получите более качественный результат, а в-третьих, если получится, еще и заработаете на пивко!

Спасибо за внимание, друзья. Жду ваших вопросов и комментариев.

Александр «АлаичЪ» Алаев
Александр «АлаичЪ» Алаев

Вот уже 18 лет я профессионально занимаюсь созданием и продвижением сайтов и 13 лет с удовольствием пишу в любимый блог. Создал заслужившие доверие в seo-сообществе программы FastTrust и ComparseR и известный сервис для проверки траста сайтов CheckTrust.ru.

В 2014 основал веб-студию «АлаичЪ и Ко» в Краснодаре: 1 место в рейтинге агентств интернет-маркетинга (Рейтинг Рунета), 2 место в рейтинге SEO-компаний (CMSmagazine), 12 место в рейтинге известность бренда SEO-компаний в России (SeoNews).

Выступаю на профильных конференциях (All In Top, SEO Conference, SEMPRO, Baltic Digital Days). Веду канал в telegram про seo и бизнес. SEO-специалист года 2019 и 2020 (Sape).

Ерунда и баянЪ!Зачет! Плюсую!
+6

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

30 000 руб.

Комплексный подход к решению поставленных задач: достижение топ-10 и увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

45 000 руб.

У вас недостаточно знаний и нужны ответы на вопросы?
Интересует мнение эксперта или надо проверить подрядчика?
Вы задаете вопрос — я отвечаю!

5 000 руб./час

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

70 000 руб.

Я начал запись своего обучающего курса по seo-продвижению.

В каждом видео я разбираю какую-то одну важную тему, и делаю это последовательно, в порядке, подходящем для изучения с нуля. Видео выкладываются раз в неделю – по средам. Я думаю, весь курс будет состоять из 50-70 роликов, так до конца еще далеко, а значит самое время подписаться и начать изучение вместе со мной.

В блоке слева всегда будет выводиться самое свежее видео курса. Ссылки: на мой канал, на плейлист обучения.

Комментарии: 38 Написать комментарий
  1. ПафНутиЙ (124 комм.)

    У меня стоял одно время на сайте поиск от гугла. Но как показала карта кликов — никто за 3 месяца не кликал в него.

    Хотя это было давно, возможно времена изменились.

    А вот за статью спасибо. Многим пригодится.

    Ответить
    • АлаичЪ

      Ну значит люди просто не пользуются поиском по сайту. Тем не менее, лучше иметь, чем не иметь :)

      Ответить
  2. OKyJIucT (7 комм.)

    Подскажите, пожалуйста, можно каким-либо образом настроить отображение результатов поиска. В частности, меня интересует фон. Шрифты, заголовки и все прочее я настроил в стиле объявлений, а вот фон как был белым, так и остался. Спасибо

    Ответить
    • OKyJIucT (7 комм.)

      Нашел сам, справа от кнопки сохранения есть "Больше возможностей расширенного поиска", там то я все и настроил :)

      Ответить
      • Александр (1 комм.)

        А можно по подробней, а то я что то не могу найти?

        Ответить
  3. Конкордия (2 комм.)

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

    То же самое, если новость отредактирована — только ждать, когда робот удосужится переиндексировать существующие проиндексированные страницы.

    Ну и еще один важный момент. Зачастую мы много чего хотим убрать (и убираем) из индексации ПС для достижения определенных целей например в плане SEO, но никак не чтобы посетитель на самОм сайте не смог ее найти. И если категория занесена в robots, то и информация из нее в результатах поиска на сайте тоже, как я понимаю, не появится. Опять же — конфликт двух разных интересов.

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

    А поиск от Яндекса и Гугла, имхо, имеет смысл использовать только для одной определенной цели, вернее — двух:

    1. Заработке на контекстной рекламе. Здесь задача как раз и состоит в противоположном — акцентировать внимание на окне поиска, но чтобы пользователь НЕ нашел нужной информации у вас и кликнул в результатах поиска по рекламе.

    2. Если имеются несколько разных сайтов схожей тематики и хочется в поисковую выдачу включить результаты по всем своим сайтам.

    Ответить
    • АлаичЪ

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

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

      Ответить
  4. Олег (1 комм.)

    А я себе сделал поиск от яндекс так как он гибок в настройках, хотя еслиб не забанили в гугл адсенс то конечно поставил бы поиск от гугл.

    Ответить
  5. DimaBerg (1 комм.)

    Значок Google можно убрать, не будет ли за это штрафа?

    Ответить
  6. hlynins (23 комм.)

    А меня поиск от гугла не подошел в дизайн, у него "Ширина раздела результатов поиска"--800. И меньше не делается.

    Пришлось ставить от Яндека. Хотя он (яша) и не особо мне нравится.

    А вот что делать с поискам от DLE, стоит ли его отключать или он при бездействие не дает нагрузки?

    Ответить
    • АлаичЪ

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

      Ответить
  7. Никола (2 комм.)

    Поиск от яндекса это хорошо, но вот в дизайн его внедрить красиво вот это сложно.

    Ответить
  8. Сергей (1 комм.)

    Благодарю за знания!

    Ответить
  9. Алекс (3 комм.)

    Админ подскажи пожалуйста, а можно сделать поиск в конкретной категории??

    Ответить
    • АлаичЪ

      Можно, если эта категория четко отражена в url содержащихся в ней страниц.

      Ответить
      • Алекс (3 комм.)

        Ну так а как оно может быть по другому:)))? Имеется ввиду именно новости (страницы) из одной категории.

        Тобишь дополнительный поиск.

        И как это сделать?

        Ответить
        • АлаичЪ

          На первом шаге это делается, "Добавить сайты и исключения".

          Ответить
          • Алекс (3 комм.)

            Ну я вроде вставил ссылку конкретной категории, попробовал, а поиск выдает новости со всего сайта. Что я делаю не так?

            поставил ссылку http://сайт.ру/кат/ Может что не так? И что значит исключение?

            Ответить
            • АлаичЪ

              Посмотрите в хелпе — http://help.yandex.ru/site/

              Ответить
  10. Viktor (4 комм.)

    Добрый вечер. Проблема такая. Установил поиск все работало и т.д.

    Через недели две проверил — не пашет.

    Написал в сапорт яши, цитирую:

    Вот что пишет хостер

    Для данного домена 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-параметров результаты не будут сформированы.

    Ответить
  11. Александр (6 комм.)

    Viktor, у тебя дле 10.1 ?

    У меня после обновления на 10.1 версию перестал поиск работать(

    Ответить
  12. Александр (6 комм.)

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

    Ответить
    • Александр (6 комм.)

      Если не хотите отключать полностью проверку неверных урлов, то можно вырезать данный код с модуля static.php и подправить урл в .htaccess

      Ответить
  13. Dima (1 комм.)

    Открываем static.php и убираем данный кусок

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$re_url}{$static_result['name']}.html");

    die ("Redirect");

    Ответить
    • Andrew (12 комм.)

      Это решает проблему чистого листа в результатах поиска в v.10.3. Проверено.

      Спасибо за решение.

      Ответить
    • Иван (2 комм.)

      Спасибо, сработало решение проблемки с поиском Яндекса.

      Желательно добавить в список мини-FAQ данной статьи.

      Ответить
  14. Денис (34 комм.)

    Привет всем! Вопрос: а если я не размещаю на сайте рекламу от яндекс директ, стоит ли мне выставлять галочку напротив "показывать рекламу и результаты поиска в одну колонку". Или всётаки есть польза?

    Ответить
  15. Сергей (5 комм.)

    Решил проблему поиска от Гугл на dle 10.1 следующим образом. Осуществил произвольный поиск и получил чистый лист без результатов. Скопировал исходный код страницы в файлик search.html и залил в корень сайта. Переименовал (еще пригодится потом) статическую страничку search.

    Поиск работает, но файлик придется менять при изменениях на сайте. Например, при смене дизайна или его доработке, изменениях в меню.

    У меня «морда» сайта не меняется, так что вариант получился идеальным.

    Ответить
  16. Семен (1 комм.)

    а у меня проблема делал по инструкции site.ru/search.html работает когда с главной страницы, а

    но когда происходит поиск site.ru/категория/search.html то вылазиет forbidden 403 сервера.

    Кто знает как поправить?

    Ответить
  17. Юрий (1 комм.)

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

    Ответить
  18. gobzer (2 комм.)

    В 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 ) ) {

    Ответить
    • Sidar (4 комм.)

      Можно обойтись без правок движка. Всего лишь нужно код результатов поиска поместить в search.tpl и в качестве страницы результатов поиска указать http://site.ru/search/ либо http://site.ru/index.php?do=search

      Проверено в DLE 10.4.

      Ответить
      • Дима (1 комм.)

        Sidar, у вас точно этот способ работает? У меня редирект на главную. У вас включен ЧПУ?

        DLE 10.4

        Ответить
        • Sidar (4 комм.)

          Дима, ЧПУ включен. Походу вносил какие-то правки о которых я уже забыл.

          Недавно ставил на другой сайт и тоже был редитект на главную исправил добавлением в .htaccess строки

          RewriteRule ^search/$ index.php?do=search&mode=advanced [L]

          Вот результат http://ljapis.ru/search/

          Ответить
        • Sidar (4 комм.)

          Дима, на сайтах еще делана оптимизация по статьям "SEO оптимизация DLE", возможно что-то из этого влияет.

          Ответить
        • Sidar (4 комм.)

          Так-с... поставил чистую 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".

          Ответить