Як швидко та безкоштовно парсити заголовки h2-h6 прямо з ТОПу видачі Google
Спробуйте Collaborator.pro
Виберіть із 36199 високоякісних веб-сайтів і 3412 Telegram каналів
ВпередТут має бути абзац про те, що от прямо зараз ми будемо створювати табличку для парсингу підзаголовків статті за допомогою 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. Дуже вдячний авторам за просте рішення.
Для тих, хто не читає мовою оригіналу, коротко викладу тут:
- Відкриваємо Google Sheet.
- У меню обираємо Розширення > Apps Script:
- В редакторі скриптів видаляємо пусту функцію:
- Йдемо на Github та забираємо повний текст скрипта import_json_appsscript.js
- Вставляємо в редактор скриптів Google Sheet:
- Не забуваємо зберегти:
- І перейменовуємо скрипт (можна обрати будь-яке ім’я, але ImportJSON - буде легко зайти і зрозуміти):
- Мої вітання: ваш 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 за призначенням. Але в такому разі жоден інструмент безсилий.
Будьте уважні та обережні, перевіряйте сторінки з сумнівними заголовками вручну.
Як можна покращити: корисні лайфхаки
- Топ не завжди 10. Тому можна в API-запиті використати параметр &num=, вказавши йому значення 20. Тоді ви будете отримувати більше, ніж 10 сторінок для аналізу, з яких буде парситься саме десять.
- Замість формули імпорту JSON адреси для аналізу можна додавати вручну. Для цього можна додати чекбокс та робити запит за умови. Якщо галка знята, можна ввести власні URL.
-
Для універсалізації додамо поле для введення власного API-ключа.
- Додати до 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]. Ми зв'яжемся з вами та обговоримо варіанти співпраці.