Распространённые seo-ошибки сайтов на wordpress

Исследуйте тайны Сфинкса

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


Внимательно ознакомьтесь с примером файла конфигурации Sphinx, /usr/local/etc/sphinx.conf.dist, который входит в комплект поставки. Комментарии, приведенные в этом файле, объясняют, что делает тот или иной параметр Sphinx; показывают, как создать распределенную конфигурацию с резервированием; а также объясняют, как наследовать параметры базы данных, чтобы избежать повторения в источниках и индексах. Файл README Sphinx также является великолепным источником информации, в том числе о том, как встраивать Sphinx непосредственно в MySQL V5 — без демонов.

В следующий раз мы попробуем найти лучшее решение для отладки кода PHP, чем и .

Похожие темы

  • Оригинал статьи Build a custom search engine with PHP (EN).
  • Sphinx (EN) это бесплатная поисковая система с открытым исходным кодом, предназначенная для выполнения исключительно быстрого текстового поиска.
  • Познакомьтесь с Endeca и другими крупными коммерческими поисковыми продуктами, или попробуйте Lucene.(EN)
  • PHP.net является центральным ресурсом для PHP-разработчиков.(EN)
  • Познакомьтесь с «Рекомендованным списком литературы по PHP (EN).»
  • Расширьте ваши навыки в PHP, ознакомившись с ресурсами проекта PHP IBM developerWorks.(EN)
  • Прослушать интересные интервью и беседы разработчиков программного обеспечения можно в подкастах developerWorks.(EN)
  • Работаете с базами данных на PHP? Познакомьтесь с Zend Core for IBM, готовой, прозрачной и простой в установке среде разработки и внедрения PHP, которая поддерживает IBM DB2 V9.(EN)
  • Ищете базу данных для работы с вашим приложением PHP? Загрузите IBM DB2 Express-C 9, бесплатную версию сервера данных DB2 Express V9.(EN)
  • Посетите Раздел Open Source сайта developerWorks и найдите множество инструкций, инструментов, а также новостей проектов, которые помогут вам разрабатывать приложения с открытым исходным кодом и использовать их вместе с продуктами IBM.
  • Дополните ваш следующий проект разработки программного обеспечения с открытым исходным кодом ознакомительными версиями программного обеспечения IBM, которые можно скачать из Интернета или заказать на DVD.(EN)
  • Загрузите ознакомительные версии продуктов IBM и поработайте с инструментами для разработки приложений и системным программным обеспечением DB2, Lotus, Rational, Tivoli и WebSphere.(EN)

Начнем с простого: сайт полностью скрыт

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

1. Убедитесь, что поисковик знает о сайте

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

А можно прямым текстом сказать: «пора индексировать мой сайт!». Это делается для каждого поисковика в отдельности с помощью соответствующего сервиса:

  • Сообщите Яндексу о новом сайте после регистрации на Яндекс.Вебмастер.
  • Добавьте ваш сайт в сервис «Google для веб-мастеров».

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

Рекомендуем завести аккаунты и в том, и в другом сервисе.

2. Проверьте файл robots.txt

Файл robots.txt (размещается в корневом каталоге вашего сайта: site.ru/robots.txt) предназначен для того, чтобы давать инструкции роботам-индексаторам из поисковых систем.

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

Однако если вы видите в robots.txt строки:


— значит роботам запрещено посещать ваш сайт.

Дело в том, что веб-студии запрещают поисковикам заходить на ещё неготовый сайт — чтобы он был скрыт от поиска. Ведь лучше, если люди придут смотреть на готовый проект, чем на стройку. Намерения — благие.

Затем этот файл просто забывается (а иногда — оставляется из обиды и «вредности»). Заказчик не может понять, в чем же он ошибся при продвижении сайта. При этом посещаемость сайта формируется только с «визиток».

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

3. Сайт может быть под фильтром

Возможно, ваш сайт по каким-то причинам попал под фильтры поисковой системы.

Если на сайт наложен стандартный фильтр (покупные ссылки, плохие тексты), то это легко узнать в разделе «Безопасность и нарушения» в Яндекс Вебмастере. 

Если вы видите такую картину как на рисунке ниже, то нужен глубокий анализ. На рисунке мы видим падение трафика с поисковиков примерно в 4 раза. Раз трафик упал с обоих поисковиков — скорее всего, это не фильтр. А что-то не так с сайтом.

Сначала нужно установить на какие страницы сайта был трафик. В системе статистики посмотрите раздел «Страницы входа» в периоде, когда трафик был в пике. Затем, если вы удалили эти страницы или стерли с них тексты, нужно всё восстановить. Как узнать, что было на старых страницах? Через Вебархив. 

Если ничего непонятно — делегируйте анализ нам. Заполните форму ниже для краткого бесплатного аудита. Или читайте далее.

Бесплатный аудит сайта онлайн

Проверяем сайт по 11+ ключевым SEO-параметрам


тесты составила Анна Шелепанова, технический директор

Нюансы реализации пейджинга

  • Порядковый номер запрашиваемой страницы (pageIndex), размер страницы (pageSize).
  • Порядковый номер первой записи, которую нужно вернуть (startIndex), максимальное количество записей в результате (count).
  • Порядковый номер первой записи, которую нужно вернуть (startIndex), порядковый номер последней записи, которую нужно вернуть (endIndex).
  • Для подхода с вычиткой +1 записи, приведенного выше, первый вариант с pageIndex и pageSize крайне неудобен. Например, мы хотим отображать 50 записей на странице. Согласно приведенному выше алгоритму, нужно читать на одну запись больше, чем надо. Если этот «+1» не заложен на сервере, получается, что для первой страницы мы должны запрашивать записи с 1 по 51, для второй — с 51 по 101 и т.д. Если указать размер страницы 51 и увеличивать pageIndex, то вторая страница вернет с 52 по 102 и т.д. Соответственно, в первом варианте единственный способ нормально реализовать кнопку перехода на следующую страницу — закладывать на сервере вычитку «лишней» строки, что будет очень неявным нюансом.
  • Третий вариант вообще не имеет смысла, так как для выполнения запросов в большинстве баз данных все равно нужно будет передать количество, а не индекс последней записи. Пусть вычитание startIndex из endIndex и элементарная арифметическая операция, но она здесь лишняя.
  • Получение каждой следующей страницы будет затратнее и медленнее, чем предыдущей, потому что базе данных все равно нужно будет пройти все записи «с начала» согласно критериям поиска и сортировки, после чего остановиться на нужном фрагменте.
  • Не все СУБД могут поддерживать этот подход.

ElasticSearch scroll APICosmos DB

AVL деревья и широта их применения

Решил немного описать на мой взгляд самую полезную древовидную структуру. AVL дерево это бинарное дерево (у каждой вершины не более 2 сыновей), в котором каждой вершине присвоен идентификатор (как раз его и хранит дерево), идентификаторы подчиняются следующему правилу: ID левого сына<ID родителя<ID правого сына. Т.е. если обходить дерево рекурсивно слева направо получим отсортированный по возрастанию список ID, справа налево – по убыванию. Причем дерево максимально сбалансировано: высота левого поддерева отличается от высоты правого максимум на 1. Интересно в нем то, что тогда на проверку существования элемента в дереве уходит log(N) N – количество ID. Ведь надо пройти от корня вниз, а поскольку дерево максимально симметрично то его высота — log(N)+1 Хорошая новость – нам никто не запрещает прикрепить к вершине еще какие-то полезные данные и тогда выборка произвольных данных по ID будет занимать log(N) времени Плохая новость – одинаковые ID как следует из определения в нем существовать не могут. Придется делать финт ушами, один способ сделать вместо каждой вершины список вершин с одинаковым ID, другой – изменить алгоритм балансировки.

Общие слова про устройство поиска в Web

Поскольку очень много вопросов возникло про общую функциональность поисковика вот небольшая вводная статья. Чтобы было немного понятно что такое поисковая система и что она должна делать, опишу в общих словах. Наверное для спецов программеров будет не очень интересно, не обессудьте Но, к делу: поисковая машина по моему скромному мнению должна уметь находить максимально релевантные результаты по поисковому запросу. В случае текстового поиска, к которому мы все привыкли, поисковый запрос – набор слов, лично я ограничил его длину восемью словами. Ответ – набор ссылок на страницы которые наиболее релевантны поисковому запросу. Ссылки желательно снабдить аннотацией, чтобы человек знал чего ожидать и мог выбрать из результатов нужный – аннотация называется сниппет. Надо сказать что задача поиска в общем виде не решается – для любого документа имеющего наибольшую релевантность например по слову «работа», можно создать модифицированную копию, которая будет иметь еще лучшую, с точки зрения поисковой машины, релевантность, однако будет полным бредом с точки зрения человека. Вопрос цены и времени, конечно. Из-за обширности Интернета на сегодняшний день таких страниц, мягко говоря, много. Разные системы борются с ними по-разному и с переменным успехом, когда-нибудь искусственный интеллект победит всех нас…

Поисковые технологии или в чем загвоздка написать свой поисковик

Когда-то давно взбрела мне в голову идея: написать свой собственный поисковик. Было это очень давно, тогда я еще учился в ВУЗе, мало чего знал про технологии разработки больших проектов, зато отлично владел парой десятков языков программирования и протоколов, да и сайтов своих к тому времени было понаделано много. Ну есть у меня тяга к монструозным проектам, да… В то время про то, как они работают было известно мало. Статьи на английском и очень скудные. Некоторые мои знакомые, которые были тогда в курсе моих поисков, на основе нарытых и мной и ими документов и идей, в том числе тех, которые родились в процессе наших споров, сейчас делают неплохие курсы, придумывают новые технологии поиска, в общем, эта тема дала развитие довольно интересным работам. Эти работы привели в том числе к новым разработкам разных крупных компаний, в том числе Google, но я лично прямого отношения к этому не имею. На данный момент у меня есть собственный, обучающийся поисковик от и до, со многими нюансами – подсчетом PR, сбором статистик-тематик, обучающейся функцией ранжирования, ноу хау в виде отрезания несущественного контента страницы типа меню и рекламы. Скорость индексации примерно полмиллиона страниц в сутки. Все это крутится на двух моих домашних серверах, и в данный момент я занимаюсь масштабированием системы на примерно 5 свободных серверов, к которым у меня есть доступ.

Какой регион выбрать?

В Яндексе существуют регионы, которые ранжируются по величине охвата географической территории:

  • Россия (Украина, Казахстан и т.д.)
  • Урал (Сибирь, Центр и т.д.)
  • Свердловская область (Пермская и т.д.)
  • Екатеринбург (Москва, Пермь и т.д.)

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

При подключении Яндексом любого из них к сайту (а зачастую новому сайту, у которого не прописаны контакты и региональные ключевые слова, присваивается либо регион вся Россия, либо, к примеру, Урал) ресурс оказывается в огромной массе всех российских или уральских сайтов. Естественно, получить какие-то позиции в ТОП-10 в этом случае практически невозможно.

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

Например, у компании site.ru филиалы в городах Екатеринбург, Тюмень, Челябинск, Урал, Сургут, Каменск-Уральский, Нижний Тагил, Миасс. Подключение сайту региона Урал ничего не даст, поскольку он будет плохо ранжироваться во всех этих городах. Точное же подключение городов улучшит ранжирование сайта в них на порядок.

Поддерживаемые типы расширенных результатов поиска

В настоящее время инструмент позволяет работать с перечисленными ниже типами данных для расширенных результатов.

Поддерживаемые типы

  • Статья (AMP)
  • Строка навигации
  • Карусель
  • Курс
  • Набор данных
  • Оценка работодателя
  • Ориентировочная зарплата
  • Мероприятие
  • FAQ
  • Проверка фактов
  • How-to
  • Лицензия на изображение
  • Вакансии
  • Профессиональное обучение
  • Местная организация
  • Логотип
  • Movie
  • Товар
  • Страница вопроса с ответами
  • Рецепт
  • Отзыв
  • Окно поиска по сайту
  • Приложение
  • Специальное сообщение
  • Video

Сохранение истории проверок

Ваш код и результаты каждой проверки сохраняются в Search Console. Чтобы у вас остался доступ к странице проверки определенной версии кода, добавьте URL этой страницы в закладки. Результаты хранятся примерно 90 дней. Переходить по таким ссылкам из закладок может кто угодно.

Отправка результатов проверки

С помощью кнопки Отправить можно поделиться с любым пользователем ссылкой на страницу результатов проверки. Для просмотра такой страницы не нужны специальные разрешения. Подобные ссылки действуют около 90 дней.

Вид страницы в результатах поиска Google

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

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


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

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

Дополнительная информация о структурированных данных

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

Как скрыть страницы от поисковых систем

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

  1. Войдите в аккаунт Blogger.
  2. В левом верхнем углу выберите нужный блог.
  3. В меню слева выберите Настройки.
  4. В разделе «Поисковые роботы и индексирование» установите переключатель Использовать персонализированные теги robots для заголовков в положение ВКЛ.
  5. Нажмите Теги для главной страницы, Теги для архивных и поисковых страниц или Теги для сообщений и страниц.
  6. Установите переключатель noindex в положение ВКЛ.
  7. Нажмите Сохранить.

Подробнее о файле robots.txt…

Используйте кавычки, чтобы найти конкретную фразу

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

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

Если вы ищете точную фразу, поместите её в кавычки. В противном случае вы получите огромного количеством бесполезных результатов.

Например, если вы ищете «кошки с длинной шерстью», ваш поиск вернёт результаты с этими словами, расположенными рядом друг с другом и в том порядке, в котором вы их хотели, а не разбросанными по странице сайта.

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

Немного про проектирование баз данных для поисковой машины

Без базы данных, даже без нескольких кардинально разных, такой проект невозможен. Поэтому немного посвящу времени этому вопросу. Итак как минимум будет нужна БД обслуживающая обычные «плоские» («2D») данные – т.е. некоторому идентификатору ID ставится в соответствие поле данных. Почему поле данных я рассматриваю одно? Потому что:

  • выборка производится только по полю ID – поиск по данным не производится. Для этого есть специализированные индексы – иначе с такими количествами информации толку будет мало
  • любое количество полей можно упаковать в одно, для этого я «на коленке» создал набор небольших прикладных библиотек, в частности при упаковке сохраняется CRC данных, чтобы не использовать не дай бог битые

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


С этим читают