Запрошуємо на SEO-конференцію Collaborator 10 травня Зареєструватися
Зареєструватись

Як швидко та безкоштовно парсити заголовки h2-h6 прямо з ТОПу видачі Google

Тут має бути абзац про те, що от прямо зараз ми будемо створювати табличку для парсингу підзаголовків статті за допомогою Google Sheet. Але ви знаєте про це. А отже ми переходимо безпосередньо до процесу.

В кінці матеріалу — бонус для найвитриваліших😊

Необхідний інструментарій

  • Google Sheet
  • сервіс парсингу видачі Google (у форматі JSON) на прикладі scaleserp.com
  • скрипт для імпорту JSON таблицями

Отримуємо видачу у JSON-форматі

Перша версія цього мікротула для Google-таблиць була зроблена під XML-формат, проте декілька спроб знайти західний аналог вигрузки SERP у XML гідних результатів не дали. Отже, робимо з JSON.

Серед цілої низки API-сервісів для вивантаження гуглової видачі я обрав scaleserp.com, як найбільш user-френдлі і такий, що працює з GET-запитом. До речі, у них є FREE-план на 125 запитів щомісяця. Це не реклама, а просто суб’єктивний вибір.

Все банально: реєструмося, отримуємо свій API-key та можливість спробувати інструмент в адмінці.Тут бачимо, які параметри впливають на запит (серед важливих: країна, мова, домен Google і т.п.).

В налаштуваннях обираємо базово JSON як спосіб виводу:

Також можна одразу налаштувати локалізацію:

Всі ці налаштування додаються до URL запиту:

В результаті отримуємо адресу, схожу на це:

https://api.scaleserp.com/search?api_key={тут ваш особистий ключ для доступу}&q=запит&hl=uk&google_domain=google.com.ua&output=json

Як імпортувати JSON до Google Sheet

В цьому питанні, як не дивно, допоміг Google, адже в його видачі я швидко знайшов потрібне. Питання, на щастя, детально описане тут - Import JSON to Google Sheets: Step-by-Step Tutorial & Script - Apipheny. Дуже вдячний авторам за просте рішення.

Для тих, хто не читає мовою оригіналу, коротко викладу тут:

  1. Відкриваємо Google Sheet.
  2. У меню обираємо Розширення > Apps Script: 
  3. В редакторі скриптів видаляємо пусту функцію: 
  4. Йдемо на Github та забираємо повний текст скрипта import_json_appsscript.js 
  5. Вставляємо в редактор скриптів Google Sheet: 
  6. Не забуваємо зберегти: 
  7. І перейменовуємо скрипт (можна обрати будь-яке ім’я, але ImportJSON - буде легко зайти і зрозуміти): 
  8. Мої вітання: ваш Google Sheet та JSON відтепер друзяки. Можна закривати редактор скриптів та вертатися у таблицю.

Тепер, щоб імпортувати JSON, необхідно обрати відповідну функцію (і як не дивно, це ImportJSON).

Робимо, щоб запити можна було вводити прямо в таблиці

Нагадаю, що ми отримали приблизно такий URL для запиту SERP:

https://api.scaleserp.com/search?api_key={тут ваш особистий ключ для доступу}&q=запит&hl=uk&google_domain=google.com.ua&output=json

Додаємо можливість вводити пошукову фразу безпосередньо в табличку. Для цього перетворюємо API-запит на формулу:

="https://api.scaleserp.com/search?api_key={тут ваш особистий ключ для доступу}&gl=ua&google_domain=google.com.ua&hl=ru&include_answer_box=true&device=desktop&output=json&num=10&q="&A2

Де A2 – клітинка, де ви плануєте вписувати слова для пошуку.

Візьмемо топ у свої руки

Взагалі, щоб загрузити дані з JSON, достатньо вказати просто URL із запитом. Але ми отримаємо таблицю з усіма даними SERP. А нам наразі потрібні тільки адреси сайтів з топу. Тому формулу з функцією ImportJSON необхідно доповнити аргументом із адресою необхідної нам частини.

=ImportJSON(A1;"/organic_results/link")

Де A1 — клітинка, де сформоване посилання для доступу до API, а в лапках вказано, що нам потрібно забрати саме лінки з органічної видачі. (До речі, сервіс віддає ще дуже багато різних даних. Можете потестувати і створити більш розширені інструменти аналізу ТОПу під себе.

Отримуємо перші результати:

Імпортуємо структуру заголовків

Тут нам допоможе вбудована функція ImportXML.

Наприклад:

=IMPORTXML(B1;$A$1)

Тут ми посилаємося на адресу, що отримали з ТОПу та на конструкцію елементів XML, які відповідають заголовкам: //h2 | //h3 | //h4 | //h5 | //h6

І тут важливий нюанс. Дані можуть імпортуватися так:

Чи навіть отак:

А тому, на жаль, не можна розмістити їх на одному аркуші у стовпчиках поряд (при виводі буде помилка). Тому наступний крок – це створення 10 аркушів таблиці:

На кожному ми додаємо посилання на відповідний документ з видачі:

І додаємо формулу імпорту:

Далі треба розібратися з тим, що в деяких випадках заголовки розкидані по стовпчиках.

Впоратися з цим нам допоможе функція CONCATENATE. Тут все просто. Додаємо у перший стовпчик формулу та протягуємо її на декілька стовпців:

Збираємо все до купи

Створюємо на першому аркуші стовпці 1-10. Кожному додаємо у другому рядку посилання на відповідне місце в ТОП видачі.

Для кожного стовпця посилаємося на отриманий результат на відповідному аркуші:

Для пришвидшення можна використати автозаповнення:

Результат

Ми отримали простий тул, що допоможе дуже швидко проаналізувати ТОП по конкретному запиту.

Ви отримуєте всі підзаголовки, що визначають структуру сторінки. Проте, варто розуміти, що далеко не всі і не завжди використовують теги h2-h6 за призначенням. Але в такому разі жоден інструмент безсилий.

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

Як можна покращити: корисні лайфхаки

  1. Топ не завжди 10. Тому можна в API-запиті використати параметр &num=, вказавши йому значення 20. Тоді ви будете отримувати більше, ніж 10 сторінок для аналізу, з яких буде парситься саме десять. 
  2. Замість формули імпорту JSON адреси для аналізу можна додавати вручну. Для цього можна додати чекбокс та робити запит за умови. Якщо галка знята, можна ввести власні URL. 
  3. Для універсалізації додамо поле для введення власного API-ключа. 

  4. Додати до API-запиту параметри: країна, мова, домен Google.

Щодо останнього — це завдання з невеличкою зірочкою. Додаємо аркуш з відповідними таблицями, що містять значення для країни, домену та мови:

Додаємо клітинки та налаштовуємо перевірку даних, щоб отримати відповідні випадаючі списки:

Трошки допрацьовуємо формулу:

="https://api.scaleserp.com/search?api_key={тут ваш особистий ключ для доступу}&gl="&IF(NOT(ISBLANK(C2));C2;"ua")&"&google_domain="&IF(NOT(ISBLANK(C4));"google."&C4;"google.com")&"&hl="&IF(NOT(ISBLANK(C3));VLOOKUP(C3;'Гео'!C:D;2;0);"uk")&"&output=json&num=20&q="&A2

А от локацію, думається, виставляти треба в адмінці сервісу, якщо таке необхідно.

На цьому все. Всім дякую. А для найвитриваліших бонус – готова ТАБЛИЦЯ, яку можна скопіювати, вставити свій API-key і тестувати.

PS від редакції Блогу: Матеріал підготував підписник нашого SEO-чату Collaborator. Також маєте цікавий матеріал, показовий кейс чи корисний лайфхак? Залишайте контакти нашому саппорту [email protected]. Ми зв'яжемся з вами та обговоримо варіанти співпраці. 

 

Згідно з нашою політикою використання файлів cookie ми обробляємо їх для забезпечення найкращого досвіду користувача