JavaScript і SEO: сканує чи Google JavaScript?

  1. Три процесу пошукових систем
  2. Googlebot або Caffeine?
  3. Сканування, індексування та ранжування
  4. JavaScript = неефективність
  5. Гарне SEO = ефективність

Автор: Баррі Адамс (Barry Adams) - співредактор State of Digital.

У міру еволюції інтернету зростає попит на сайти, що мають все більш інтерактивну функціональність. В результаті багато розробників створюють сайти, використовуючи такі фреймворки, як React і Angular. Це, в свою чергу, викликає все більше запитань на тему оптимізації таких ресурсів для SEO. В основному, оптимізатори і веб-майстра ставлять питання так: чи можуть пошукові системи, такі як Google, сканувати JavaScript?

І це неправильний питання.

Давайте розбиратися. Якщо ви використовуєте JavaScript-фреймворки з рендерингом на стороні сервера, ви вже вирішили цю проблему ще до того, як вона виникла. У цій статті мова піде про тих реалізаціях JS-фреймворків, в яких рендеринг здійснюється на стороні клієнта. І це викликає цілий ряд проблем.

Перед тим, як пояснити, чому так, важливо отримати базове розуміння того, як працюють пошукові системи. У своїй статті « The Three Pillars of SEO », Я виклав своє розуміння цього питання. Тут я приведу з неї три основні пункти.

Три процесу пошукових систем

У двох словах, робота більшості інформаційно-пошукових систем заснована на трьох процесах:

  • краулер
  • індексатор
  • движок запитів

Коли справа доходить до JavaScript і SEO, то нас цікавлять перші два процеси. Що стосується Google, то в цій пошуковій системі роль краулер виконує Googlebot, а інфраструктура індексування носить назву Caffeine. Ці підсистеми виконують дуже різні функції, і це важливо розуміти, щоб уникнути плутанини.

Основне завдання краулер - знайти всі URL і обробити їх. Насправді це досить складна система, в якій задіяні такі підпроцеси, як набори джерел, черговість і розклад сканування, важливість URL і відстеження часу відповіді сервера.

Краулер також включає модуль парсинга, який аналізує вихідний HTML-код сканованих сторінок і витягує з нього посилання. Парсер НЕ рендерить сторінки, він тільки аналізує вихідний код і витягує всі URL, які знаходить у фрагментах <a href="...">.

Коли краулер бачить нові URL або URL, які були змінені з моменту останнього відвідування, він відправляє їх індексатора. Індексатор потім намагається зрозуміти ці URL, аналізуючи їх контент і релевантність. Тут також задіяно безліч підпроцесів, які аналізують такі речі, як шаблон сторінки, канонікалізація і оцінка посилального графа для визначення PageRank URL-адреси (оскільки Google все ще використовує цю метрику всередині компанії для визначення важливості URL).

Індексатор також рендерить веб-сторінки і виконує JavaScript. Нещодавно Google опублікував на сайті для розробників добірку документів, в яких пояснюється, як працює Web Rendering Service (Web). Ознайомитися з ними можна по засланні .

У індексатора виконанням JavaScript займається WRS. Інструмент Сканер Google в Search Console дозволяє подивитися, як WRS бачить сторінку.

Краулер і індексатор працюють в тісному зв'язку один з одним: краулер відправляє то, що знаходить, індексатора, а останній «згодовує» нові URL (знайдені, наприклад, при виконанні JavaScript) краулер. Індексатор також допомагає пріоретізіровать URL для краулер, віддаючи перевагу важливим URL, які краулер повинен регулярно відвідувати.

Googlebot або Caffeine?

Плутанина починається, коли фахівці - будь то оптимізатори, розробники або ж співробітники Google - кажуть «Googlebot» (краулер), а насправді мають на увазі «Caffein» (індексатор). Чому так, цілком зрозуміло: ця номенклатура використовується як взаємозамінні навіть в документації Google:

Коли документація по WRS була опублікована, я задав питання на цю тему Гері Ілшу, оскільки мене збивало з пантелику використання в ній слова «Googlebot». Краулер нічого не рендерить. У нього є базовий парсер для вилучення URL з вихідного коду, але він не виконує JavaScript. Це робить індексатор. Тому WRS - це частина інфраструктури Caffeine. Вірно?

Так правильно. Однак цей суперечливий текст як і раніше залишається в документації по WRS. Тому оптимізаторів можна пробачити плутати ці два процеси, називаючи їх «Googlebot». Це відбувається весь час, навіть з боку найдосвідченіших і кваліфікованих SEO-фахівців в галузі. І це проблема.

Сканування, індексування та ранжування

Коли розробники і оптимізатори задають питання, чи може Googlebot сканувати JavaScript, ми схильні думати, що відповідь «Так», оскільки Google дійсно обробляє JavaScript, витягує з нього посилання і ранжирує ці сторінки. Так чи має значення, що це не краулер, а індексатор обробляє JavaScript? Чи потрібно нам знати, що це різні процеси, які виконують різні функції, якщо в кінцевому підсумку Google ранжує JavaScript-сторінки?

Так потрібно. Ми повинні про це знати.

Незважаючи на неймовірну складність Googlebot і Caffeine, JavaScript-контент робить процеси сканування та індексування надзвичайно неефективними. Вбудовуючи контент і посилання в JavaScript, ми запитуємо - немає, вимагаємо - щоб Google доклав зусиль і обробив всі наші сторінки. Що до його честі, він фактично і робить. Однак для цього потрібен час і тісний контакт між краулер і индексатором.

Але, як ми знаємо, терпіння Google не безмежне. Концепція «краулінгового бюджету» - об'єднання різних концепцій навколо пріоритетності обходу і важливості URL - каже нам, що Google не буде нескінченно намагатися просканувати всі сторінки сайту. Ми повинні йому трохи допомогти і зробити так, щоб всі сторінки, які повинні бути просканувати і проіндексовані, легко знаходилися і були правильно канонікалізіровани.

Використання JavaScript-фреймворків ускладнює цю задачу.

JavaScript = неефективність

Щодо нескладний процес, в ході якого краулер знаходить сторінки сайту, а індексатор їх оцінює, раптом стає складним. На JS-сайтах, де більшість або всі внутрішні посилання не є частиною вихідного HTML-коду, при першому відвідуванні краулер знаходить тільки обмежений набір URL. Потім йому потрібно почекати, поки індексатор обробить ці сторінки і витягне нові URL, які краулер потім просканує і відправить індексатора. І так раз по раз.

На JavaScript-сайтах процеси сканування та індексування стають повільними і неефективними.

Це також означає, що оцінювання графа внутрішніх посилань сайту має здійснюватися знову і знову в міру того, як все нові URL витягуються з JavaScript. З кожним новим набором сторінок, які індексатор витягає з JavaScript-коду, внутрішня структура сайту повинна піддається повторної оцінки, а відносна важливість сторінок буде змінюватися.

Це може привести до того, що ключові сторінки будуть розцінюватися як неважливі через недостатню кількість посилального ваги, а щодо неважливі сторінки будуть сприйматися як такі, що високу цінність, оскільки на них вказують звичайні HTML-посилання, для знаходження яких не потрібно рендеринг JavaScript.

Оскільки сторінки скануються й обробляються відповідно до їх оціночної важливості, не виключена ситуація, коли Google буде витрачати багато часу на сканування і рендеринг непотрібних сторінок і дуже мало часу на обробку тих сторінок, які повинні ранжуватися.

Гарне SEO = ефективність

З роками я дізнався, що гарне SEO, здебільшого, зводиться до того, щоб полегшити життя пошукових систем. Коли ми робимо наш контент легко знаходять, легко що споживаються і простим для оцінки, ми отримуємо більш високі позиції в SERP.

JavaScript ускладнює життя пошукових систем. Ми просимо Google робити більше, щоб виявити, обробити і оцінити наш контент. І часто це призводить до більш низьких позиціях сайту у видачі.

Так, JavaScript-контент індексується і ранжирується, але ця робота виконується з трудом. Якщо ви серйозно налаштовані щодо досягнення успіху в органічному пошуку, намагайтеся максимально все спрощувати. Це означає, що контент і посилання повинні надаватися пошуковим системам у вигляді простого HTML-коду, щоб вони могли максимально ефективно сканувати, індексувати і ранжувати ваші сторінки.

Фактично, правильною відповіддю на питання, сканує чи Google JavaScript, буде «Ні».

Відповіддю на запитання, індексує чи Google JavaScript, буде «Так», а на питання, чи треба використовувати JavaScript - «Залежить від ситуації».

Якщо вас хвилює SEO, то менша кількість JavaScript означає більш високу ефективність і, отже, більш високі позиції в ранжируванні. Те, на чому ви зробите упор, визначить той шлях, який ви повинні вибрати. Успіхів!

В основному, оптимізатори і веб-майстра ставлять питання так: чи можуть пошукові системи, такі як Google, сканувати JavaScript?
Googlebot або Caffeine?
Вірно?
Так чи має значення, що це не краулер, а індексатор обробляє JavaScript?
Чи потрібно нам знати, що це різні процеси, які виконують різні функції, якщо в кінцевому підсумку Google ранжує JavaScript-сторінки?

Дополнительная информация

rss
Карта