SEO
Serge Bezborodov
2345

Кейс Preply.com: рост индексации сайта с 20% до 60% за год

Как в Preply.com добились роста индексируемых страниц на 300%, улучшив внутреннюю перелинковку? Кейс от JetOctopus.

В закладки

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

Но главная проблема таких материалов — какой эффект конкретно мне дадут эти рекомендации? Какие результаты я смогу получить, поработав со своей перелинковкой: «вроде стало лучше» или измеримый рост?

С другой стороны, написать статью — это X усилий, а сделать кейс с разбором — это как минимум 5Х. И я рад поделиться с вами кейсом от наших клиентов — сайты онлайн-образования Preply.com.

Preply — это образовательная онлайн-платформа, которая объединяет студентов и репетиторов для изучения иностранных языков и других предметов. На 2017 год на сайте было зарегистрировано 4000 активных преподавателей, которые обучили более 100 тысяч студентов.

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

Я уже рассказывал о том, как мы пришли к написанию собственного краулера и какие выводы сделали о работе поискового бота Google и «Яндекса», когда проанализировали первые 6 млрд лог-строк клиентских сайтов.

Так вот, с самых первых дней Игорь Баньковский был нашим экспертом и наставником. Он занимается глубоким техническим SEO в течение восьми лет и специализируется именно на внутренней оптимизации, а не покупке ссылок. Игорь работал с такими сайтами, как nur.kz, rabota.ua, depositphotos.com, а также он читает собственный курс по глубокому SEO.

Именно ему мы показывали наши первые интерфейсы, обсуждали дальнейшее развитие краулера и прямым текстом спрашивали: «Каких ещё инструментов тебе не хватает для анализа? Что мы ещё можем сделать?».

Разумеется, для меня лично работа над Preply.com была очень ответственной.

Этот кейс — результат кропотливого педантичного труда в течение года. Благодаря полученной информации и внесённым изменениям Preply.com увеличил количество проиндексированных страниц с 20% до 60%.

Что делали

В этом разделе я передаю слово Игорю Баньковскому, который расскажет, как именно он пользовался нашим сервисом, как выстраивал свою аналитику и какие гипотезы строил.

Суть любой SEO оптимизации сводится к тому, чтобы как можно больше нужных страниц попали в индекс Google и «Яндекса», а ненужные страницы — не попадали совсем. Тогда поисковые системы будут показывать пользователям «правильные» страницы в ответ на их запросы, и пользователи, заходя на них, будут находить именно то, что искали. Мы будем увеличивать трафик и, соответственно, продажи, а пользователи — получать свою ценность.

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

Краулинговый бюджет — это определённое количество ресурсов, которое Googlebot тратит на сканирование вашего сайта. Он необходим, чтобы приоритезировать, что и когда сканировать и сколько ресурсов для сканирования может выделить хостинг, размещающий ваш сайт.

Размер бюджета зависит от различных факторов: размера сайта, скорости генерации страниц, структурных факторов, объёма запросов, по которым ранжируется сайт, их частотности и других.

Логически понятно, что если бюджет ограничен, то нужно потратить его на самое лучшее и самое «правильное». В SEO самое лучшее и «правильное» — это страницы, которые приводят много трафика, хорошо перелинкованы, содержат много текста и так далее.

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

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

Страницы c тегом noindex

На сайте есть страницы, которые не должны быть проиндексированы. Скрыть такие страницы от поискового бота можно, если на них поставить метатег noindex. Но механизм работы этого тега состоит в том, что бот должен скраулить страницу, разобрать её (распарсить), обнаружить, что там стоит запрет на индексацию, и отбросить эту страницу.

Ситуация осложняется тем, что официальное руководство позиционирует meta = noindex как самый действенный метод запрета на индексацию. При этом умалчивая, что это может добавить проблем с краулинговым бюджетом.

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

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

Технически мы выполнили следующие действия (здесь и далее мы пользовались сервисом JetOctopus, но вы можете делать кросс-анализ другим удобным способом):

  • В DataTable Pages мы добавили колонку со страницами, на которые ссылаются страницы, открытые к индексации (datatable –> in links from indexable pages).
  • Настроили фильтр на это поле так, чтобы он показал страницы, у которых одна и больше таких ссылок.
  • Добавили сегмент non indexable pages (неиндексируемые страницы).

У нас получилась таблица со страницами, которые не индексируются, и сразу с адресами страниц, которые на них ссылаются. Мы убрали эти ссылки, и по логам стало видно, как бот увеличил посещения на другие страницы, в частности, которые не посещал ранее вовсе. Как итог — рост количества страниц в индексе.

Снижение непроиндексированных страниц в динамике по месяцам Аналитика Preply.com​

Зависимость показов от количества внутренних ссылок

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

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

Чтобы проверить гипотезу, мы сделали следующее:

  • К упомянутой выше таблице мы добавили новый слой данных из Google Search Console, где были все страницы, у которых был хотя бы один показ (>0). У нас получилось определённое количество страниц с показами, которое я, к сожалению, не могу разглашать.
  • Затем мы подсчитали среднее количество внутренних ссылок на эти страницы с показами.
  • После этого мы посчитали, сколько внутренних ссылок стоит на страницы, у которых совсем нет показов (=0).
  • Сравнили эти данные и поняли, куда нужно больше поставить ссылок.

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

Динамика роста от перелинковки

И наконец мы хотели понять, как меняется динамика роста от перелинковки. Для этого мы сделали один краулинг сайта до выливки перелинковки. И затем ещё один краулинг после. И сравнили два результата сканирования.

Это позволило увидеть, что количество страниц, которые открыты к индексации, выросло с 20% до 60% от общего количества. А также это сравнение показало динамику по исправлению ошибок и дополнительные ошибки в перелинковке. Кроме того, мы нашли страницы совсем без ссылок.

Динамика страниц в индексе Google Аналитика Preply.com

Выводы

Работа с сайтом — это постоянный и непрерывный процесс, а работа с большим сайтом ещё добавляет сложностей из-за объёмов данных.

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

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

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

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

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Serge Bezborodov", "author_type": "self", "tags": [], "comments": 28, "likes": 9, "favorites": 63, "is_advertisement": false, "subsite_label": "seo", "id": 85808, "is_wide": false, "is_ugc": true, "date": "Mon, 30 Sep 2019 10:32:48 +0300", "is_special": false }
0
{ "id": 85808, "author_id": 22646, "diff_limit": 1000, "urls": {"diff":"\/comments\/85808\/get","add":"\/comments\/85808\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/85808"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199127, "last_count_and_date": null }
28 комментариев
Популярные
По порядку
Написать комментарий...
3

Не увидел кейса...только рекламу..Описаны стандартные действия для абсолютно любого сайта от 100 страниц до нескольких миллионов (причем описаны так, что заголовок несет больше инфо нагрузки, чем остальная статья). Все это описано в сотнях блогов начала 2010 годов в более полном и понятном виде. Даже рекламную статью не удосужились подать с пользой.

Подобный кейс пишется за 5 минут:

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

Ответить
1

абсолютно правы! все seo можно свести - делай контент и ссылки - будет профит.

Ответить
2

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

Спасибо, что поделились опытом!

Ответить
1

Крутая статья! Data-driven подход в SEO - это то, чего многим нашим специалистам не хватает, к сожалению.

Недавно тестила анализатор логов JetOctopus. Обнаружилось, что 20% наших открытых к индексации страниц вовсе не посещаются ботом. Так что как раз с перелинковки и начали, явно наше слабое место. Заодно и кучу мусора почистили. 

Всем советую к прочтению, но ещё лучше - берите и применяйте на вашем сайте :)

Ответить
0

Спасибо, Mia.

Ответить
2

Три комментария Mia за полгода и все к вашим статьям. Поклонник таланта, не иначе, берегите ее.

Ответить
1

Слушал вебинар про перелинковку на больших сайтах - понравилось, как Сергей на конкретных примерах показывает как нужно и НЕ нужно линковать страницы. Ждем следующий вебинар!

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

Ответить
0

Igor Sochenko,  спасибо за вопрос. 

Из логов достаете страницы, которые посещаются поисковым ботом. Накладываете краулинговые данные и данные из GSC на этот список и получаете все техн.параметры каждого урла. И фильтруете: по скорости загрузки, по количеству внутренних ссылок и проч. Из чего видно, что один кластер страниц находится на 5м уровне вложенности, а на вашем сайте Crawl ratio оптимальное на 2-3 DFI, то эти страницы можно разместить ближе. Какие-то страницы можно наполнить дополнительным уникальным контентом и так далее. 

Ответить
0

Нет, серьезно, вы сами их пишите что ли? Блин, ну, грустно это как-то.

Ответить
0

Согласен, грустно. В том-то и дело, что не сами..

Ответить
1

 

Однако, если на нашем сайте больше миллиона страниц, мы просто не можем отправить в индекс их все — поисковики просто не готовы тратить на нас столько ресурсов.

Не севошник, но на одном моём билингвальном ресурсе краулер гугла за пару месяцев изучил более 3 млн страниц. По моему несеошному мнению ключевыми факторами были:

– перелинковка;

– автогенерируемые ПРАВИЛЬНЫЕ сайтмепы с ссылками на ВСЕ нужные в индексе страницы;

– серверное сжатие всего и вся;

– быстрое время отдачи.

Время, затраченное на загрузку страницы (в миллисекундах):

– Высокий – 210

– В среднем – 93

– Низкий – 60

Изначально была допущена ошибка с настройкой сервера, поэтому с Яндексом поначалу не сложилось, хотя просматривал он не сильно меньше краулера гугла, но на данный момент подход даёт тоже неплохие результаты и в Яндексе: проиндексировано 6.5+ млн,  в индексе 2+ млн.

Ответить
0

Поделись какая ошибка была допущена?

Ответить
0

Как оказалось (внезапно!), для Яндекса для многоязычных сайтов необходимо делать сайтмепы в формате, отличном от гугловского. Еще была проблема с зеркалированием из-за неправильной настройки https (внезапно #2!) и Яндекс не смог сам отделить мух от котлет.

Ответить
0

Независимо от кейса - сам краулер JetOctopus годный (я зареган с 2016 на vc, так что нечего тут про отзывы). Технические ошибки представлены в виде удобных дашбордов, и есть клевые пересечения в отчетах, например - сегмент страниц по количеству ошибок, контента, ссылок/данные из GSC. Много сразу очевидных вещей замечаешь, которые раньше не видел. Еще б интеграцию с Я.Вебмастером добавили, понятно что РФ рынок не особо интересен, но тут тоже есть жизнь

Ответить
2

спасибо за отзыв Илья!

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

Ответить
0

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

Ответить
0

Использовали сервис для проверки корректности урлов после переезда сайта на новый движок. А потом и проверки индексации.

Я могу рекомендовать. 

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

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

Я вот недавно к другим товарищам залил сайт на 150к страниц всего и 3 дня ждал пока колесо докрутится. 

А по кейсу — руку действительно надо держать на пульсе. Тупейшие ошибки находил у клиентов, которые работали 2-3 года со штатными спецами.

Ответить
0

ошибка подзаголовка

Ответить
0

Не понял в чем? Уточните, Николай. 

Ответить
1

Страницы, а не "старницы"

Ответить
0

А не проще сделать last modified?

Ответить
0

lastmod хороший рабочий метод, но решает проблему лишь частично

Ответить
0

Так вроде бот не особо следует этой директиве? 

Ответить
1

Googlebot нормально ее воспринимает, вся суть в том, что когда он к вам приходит с заголовком if-modified-since и если у вас контент не поменялся с этой даты, вы отдаете ему 304 код без контента.

Как итог - у вас увеличивается количество посещенных страниц с кодом 200. Но есть детали реализации, не стоит например на весь сайт лупануть одну и туже last-modified дату, ее нужно "размазывать" во времени. Точно также не стоит совмещать внедрение 304 кода вместе с обновлением перелинковки, когда вам наоборот нужно, чтобы бот переобошел как можно больше страниц.

В алгоритмах бота очень много эвристик, и если он видел что-то похожее на баг, он может начать это игнорировать.

Как например если вы отдаете 5xx код для robots.txt в течение месяца и более, он начинает игнорировать его.

Ответить
0

Для нового сайта, который не проиндексировался еще нужно настраивать last-modified ?

Ответить
1

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

Ответить
0

Алексей, спасибо за комментарий. Согласен с вами, что можно загнать и 5 и более млн. страниц в индекс. Суть моего выражения была в том, что ВСЕ  страницы сайта на 1 млн.+страниц загнать невозможно. Поэтому нужно приоритизировать работу с сайтом. 

Ответить
–1

У меня на сайтах 2000...10000 страниц, вопрос линковки решил через Sitedozor (если это реклама, пусть модератор сотрет). Плюс - он сам отправляет страницы в переобход, причем как заявлено по алгоритму, учитывающему важность страниц. В том числе новые, продвигаемые и т.д. с учетом лимитов. Комплексным анализом можно быстро найти косяки всех страниц. Есть еще отдельный анализ перелинковки - пока не пользовался, так как времени не хватает все править.

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }