Привіт, друзі! Сьогодні я нарешті готовий представити вам свій новий софт для перевірки і вивчення індексації сайту. Глянув на дату і виявилося, що на момент старту розробки пройшло майже 3 місяці. А мені здавалося, що про краудфандінг я писав зовсім нещодавно. Планував встигнути все за місяць, але спочатку звільнення з роботи, організацією свій веб-студії, конференція і т. д. і т. п. Правда і з програмою в цей раз я провозився довго, захотілося відразу все врахувати аж до дрібних подробиць, при тому, що повністю робочий зразок був готовий вже через 2 тижні після старту.

Ну да ладно, не про це зараз мова!

Отже, нова програма називається ComparseR! Це назва вийшло з поєднання двох слів Comparison і Parser, тобто порівняння і парсер. В цьому і є вся суть програми: ми парсим сайт, парсим його проіндексовані сторінки у видачі та порівнюємо ці дані між собою.

Все просто, але вийшло дуже круто, навіть сам не очікував. Зараз все розповім і покажу.

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

Опис та основні можливості ComparseR

Головне вікно програми виглядає приблизно ось так:

На цьому скріншоті відображена основна робоча область програми, де видно результати обходу сайту краулером. Ті, хто користувався програмами типу Xenu Sleuth, Netpeak Spider, Page-Weight, ScreamingFrog швидко розберуться, що до чого.

При обході сайту, програма збирає такі дані:

  • Код відповіді сервера – щоб визначити 404 помилки, внутрішні редиректи та інші помилки.
  • URL сторінки – ну, тут все зрозуміло.
  • Title сторінки – дуже важливий параметр, завжди можна буде подивитися, наприклад, де дублікати, а де title й взагалі відсутній.
  • Rel canonical – якщо на сторінці є meta-тег canonical, програма збереже його вміст. До речі, у мене є великий пост про link rel=canonical, рекомендую прочитати.
  • Глибина парсинга – так я умовно назвав кількість кліків від головної до досліджуваної сторінки. Щоб дістатися до певної сторінки необхідно здійснити 3 переходу по посиланнях від головної сторінки, це означає ця сторінка буде мати глибину 3.
  • Meta robots – якщо на сторінці буде знайдений мета-тег robots, програма збереже його вміст. Нагадаю, що і про мета роботсе я теж писав велику корисну статтю.
  • Файл robots.txt – тут може бути тільки 2 значення Allow і Disallow в залежності від налаштувань вашого файлу robots.txt. Корисно для вивчення закритих від індексації частин сайту.
  • Джерело – це адреса сторінки, з якої був здійснений перехід (знайдена активне посилання) на досліджувану сторінку.
  • Тип контенту – використовується для перегляду та пошуку не html вмісту сайту (архіви, файли і т. д.)

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

Завдяки тому, що при обході сайту програма зберігає всі смітники зв’язку всіх сторінок, як це роблять інші програми, а тільки в’язку «поточний url – url джерело» вдалося добитися високої швидкості парсинга, низького споживання пам’яті і можливості парсити сайти розміром в мільйони сторінок. Останнє безпосередньо залежить від обсягу оперативної пам’яті на вашому компі, за моїми прикидками, стандартний комп’ютер з 8 GB RAM зможе потягнути проект розмірів в 2-3 мільйони рядків. А вам слабо? 🙂 Заради експерименту я максимум збирав 700к сторінок, а потім набридло, і я вирішив не мучити комп і зупинив парсинг.

Для бажаючих є можливість відправити в програму свій список сторінок для обходу або ж вказати для перевірки sitemap.xml.

Нижче основної робочої області розташований лог програми, де фіксуються всі важливі події і помилки, якщо вони виникають. Користувачі програми FastTrust з цією штукою вже знайомі.

Праворуч від робочої області є вікно зі статистикою. Мабуть, це найцінніша річ! Програма класифікує і групує дані. Наприклад, програма може показати тільки сторінки 404, або сторінки за певним типом контенту, тільки індексовані або не індексуються сторінки, сторінки з однаковим title або де title відсутня взагалі. Подібні звіти доступні і для сторінок, зібраних з видачі пошуку.

А ось те, заради чого взагалі вся програма задумувалась спочатку! Після парсинга сайту і видачі пошуковиків можна буде подивитися звіти: сторінки, які були знайдені на сайті, але відсутні в пошуку і навпаки, сторінки, які знайшлися у видачі, але не були знайдені при обході сайту. Такі звіти доступні окремо для Яндекса і Гугла.

Завдяки цим звітам ви зможете дізнатися, які сторінки вашого сайту індексуються, а які ні. Але це банально, так адже? Набагато цікавіше дізнатися, що є в індексі такого, чого немає на сайті! Цікаво ж? Наприклад:

  • Найтиповіший випадок – змінили структуру сайту або взагалі створили новий сайт, а редиректи зі старих адрес не прописали. Дуже часто таке трапляється, коли в процесі не задіяний оптимізатор, а розробники і думати не знали про редиректи. Старі урли сайту залишаться у видачі, і в кращому випадку будуть видавати 404 помилку, а в гіршому будуть віддавати відповідь 200 і створювати дублі!
  • Непотрібні адреси сторінок можуть потрапити у видачу, навіть якщо на них немає посилань усередині сайту. Є маса способів пошуковику дізнатися про наявність сторінки на сайті – браузер (Яндекс.Браузер пінг адреси в Яндекс, Chrome пінг в Google), додаток/розширення/плагін (Яндекс.Бар пінг адреси в Яндекс), лічильник (Яндекс.Метрика, якщо не відключити відповідну опцію, буде надсилати адреси на індексацію). Пам’ятаєте історію з індексацією SMS-повідомлень абонентів Мегафона Яндексом http://www.rb.ru/article/yandeks-raskryl-lichnuyu-perepisku-abonentov-megafona/6737357.html . Може бути і у вас є сторінки, не призначені для індексації, але вже потрапили в індекс?
  • Дуже часто до адрес сторінок «прилипають» параметри. Вони можуть генеруватися соцмережі, коли ви розміщуєте там посилання на свій сайт. Для обліку статистики рекламних кампаній посилання варто розмічати за допомогою UTM_ міток, це теж параметри і вони можуть індексуватися. Якщо не використовувати rel=canonical чи не заборонити в robots.txt індексацію параметрів, то можуть індексуватися повні дублі сторінок, тим самим знижуючи основну сторінку. Дізнатися про це можна тільки вивчивши сторінки в індексі.

Насправді, подібних поширених прикладів можна привести ще штук 10, але це вже предмет окремої розмови.
Давайте окремо розглянемо парсинг пошукових систем.

Парсинг видачі пошукових систем Яндекс і Google

Коли ви перейдіть на вкладку «Яндекс» і натиснете кнопку «Запустити», перед вами з’явиться вікно з настройками парсинга:

Розглянемо трохи докладніше:

  • Адреса сайту – тут все зрозуміло, можете вказувати в будь-якому вигляді, з www або без www, http:// або без, це не важливо. Програма сама все зрозуміє і почне сканувати сайт.
  • Джерело – крута фішка! Для Яндекса можна отримувати дані з трьох источинков. Пошукова видача – звичайний парсинг видачі із запитом типу site:alaev.info, самий універсальний метод. Яндекс XML – парсинг видачі через XML, швидко, ефективно, без капчі, потрібен лише доступ в xml.yandex.ru і наявність доступних лімітів. Яндекс Вебмастера – так само швидко і без капчі, але тільки парсити ви можете сайти, підтверджені у вашому обліковому записі, дані для доступу до якого ви можете вказати в налаштуваннях.
  • Метод парсинга – як ви знаєте, з пошукової видачі можна зібрати не більше 1000 результатів з будь-якого запиту. Для сайтів у яких сторінок мало, немає ніякого головного болю, а от для великих сайтів виникає питання – що ж робити? Діяти методом перебору. Для цього спочатку треба спарс краулером сам сайт, побудувати його структуру (вкладка «Структура» — «Побудувати дерево») і спираючись на цю структуру парсити сайт по частинах. Метод цікавий і складний, має багато особливостей, але це тема окремої розмови, я присвячу цьому спеціальний розділ на промо-сайті. Головне, що метод перебору дозволяє в більшості випадків обійти обмеження в 1000 результатів і зібрати з видачі більшу кількість сторінок.
  • Таймаут – затримка між запитами до пошукової видачі. Для парсингу видачі потрібно ставити великі затримки, для парсингу XML можна ставити мінімальні затримки, так само як і для парсингу Вебмастера, т. к. там немає капчі. Для полегшення долі, зрозуміло, передбачена підтримка сервісів антикапчи.
  • Обмеження кількості результатів – раптом комусь здасться, що парсити треба не всі, а тільки частина, або хтось вирішить надавати послуги з парсингу видачі за гроші з оплатою за результат 🙂 …я не знаю.
  • Сортування видачі – є два варіанти: по релевантності, коли показується стандартна видача, і за датою, коли свежепроиндексированные документи відображаються спочатку. Комусь ця настройка буде корисною.
  • Регіон пошуку (код регіону) – якщо ви не знаєте код регіону, можете почати вводити, програма автоматом визначить місто і підставить код, а можете відразу вказати код самі.
  • Перевіряти дату збереженої копії – так, програма може парсити дату сохраненки, що дуже корисно, наприклад, для того, щоб зрозуміти, як часто переіндексіруются сторінки вашого сайту.
  • Враховувати правила регулярних виразів – з вашого дозволу, про регулярки я розповім трохи далі.
  • Перевірка коду відповіді сервера – при парсингу сторінок з видачі програма може одночасно пінговать ці адреси і дивитися, яку відповідь віддає сервер. Дуже корисно, щоб дізнатися, чи немає неіснуючих сторінок у видачі або якихось проблем з сайтом.

Набір параметрів залежить від обраного джерела даних (видача, xml або вебмастер), де настройка застосовується, то вона і не відображається, щоб нікого не вводити в оману.

Схожими параметрами володіє і парсер Google:

Основні відмінності в тому, що у Google тільки одне джерело даних – пошукова видача. Так само в Гуглі немає сортування результатів за релевантністю або датою, немає вказівки регіону пошуку (а чи потрібна вона?).

Зате у Google є одна особлива настройка – «Показати приховані результати». Це supplemental index, в простолюдді «соплі». Якщо цю встановити галку, то запит додасться параметр &filter=0 і будуть парситься не тільки сторінки, що знаходяться в основний видачі, але взагалі всі відомі Гуглу сторінки сайту. Один з прикладів використання даної опції: можна просканувати сайт, спарс видачу Гугла без показу прихованих результатів, а потім порівняти – відразу буде видно, які сторінки вашого сайту не потрапляють у видачу і не ранжуються. За допомогою звіту, показує сторінки, знайдені на сайті і відсутні в основній видачі Google, стане зрозуміло, над якими сторінками на сайті треба попрацювати і надати їм більшої значущості. Якщо в цьому списку виявляться важливі сторінки, значить це тривожний сигнал!

І є ще одна, на жаль, неприємна особливість Гугла від Яндекса – запит до збереженої копії для перевірки дати кеша є рівнозначним запитом до видачі, тобто запитує капчу за будь-якої підозрілої активності. Так що дану опцію варто використовувати з обережністю, на відміну від Яндекса, де можна парсити «сохраненки» нонстопом.

Ну ось, програму вам показав, про парсинг пошукачів розповів. Хіба що досі не показав налаштування парсера сайту. Секундочку…

Можливості та налаштування парсинга сайту

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

Все досить стандартно, так що пробегусь за основним важливим моментам:

  • Адреса сайту – зрозуміло, кількість потоків – зрозуміло… Максимальну кількість потоків у програмі – 50, це більш ніж достатньо. Мої експерименти показали, що така кількість потоків адекватно тримає тільки один сайт – це vk.com 🙂 На контакті можна вправлятися з налаштуваннями програми скільки завгодно, нічого не блокується і працює швидше, ніж ви оком моргнете. Для звичайного пересічного сайту вистачить 5 потоків за очі, а то і зменшити доведеться, ну, в загальному, все в ваших руках.
  • Слідувати правилам мета robots і robots.txt – якщо галки встановлені, то програма подібно пошуковому роботу буде слідувати правилам, і не буде індексувати сторінки, заборонені правилами. Якщо ж дані галки зняті, то програма усі сторінки додасть в таблицю, але у відповідних клітинках зробить відповідні помітки про те, чи заборонена сторінка індексації чи ні.
  • Перевірка зображень – комусь може знадобитися така штуковина, але я її зазвичай відключаю, щоб не займати даремно потік і пам’ять. Чим ця штука може бути поліна – наприклад, пошук на сайті битих картинок.
  • Враховувати атрибут rel=canonical – знову ж таки про індексацію, якщо галка стоїть, то програма, заходячи на сторінку і бачачи там каноникал, відмінний від адреси поточної сторінки, не стане її індексувати і заносити в таблицю, а перейде з канонічного адресою і проіндексує тільки його.
  • Настройка, яка здалася мені цікавою, це перехід за посиланнями з атрибутом rel=nofollow. Подейкують, що пошуковик не повинен переходити за посиланнями з nofollow, ви згодні? Тоді і програмі можна заборонити це робити, просто знявши галку.

І знову ми підійшли до розмови про регулярних виразах, відкладати більше нікуди, давайте і про них я, нарешті, розповім.

Використання регулярних виразів

Є в головному верхньому меню пункт «RegExp» — це воно, скорочення від Regular Expressions або Регулярні Вирази. Опція для більш просунутих користувачів, хоча користуватися їй до неподобства просто, впорається і школяр. Але не суть.

Є два варіант використання регулярок: можна прописати правила виключення або правила включення (вже не зміг я підібрати іншого зрозумілого антоніма до слова «виключення»). Якщо ви пропишете правила винятки, то всі до и сайту, підпадають під правила не будуть заноситися в таблицю і будуть виключені. Наприклад, вам не потрібно сканувати якусь категорію або розділ сайту, або певні службові урли мішаються, тоді винятку – це те, що вам треба!

Включення – це пряма протилежність, ви задаєте правила та згідно з цими правилами в таблицю потрапляють тільки задовольняють адреси сторінок.

Допитливий юзер запитає, «Ха-ха, а що буде якщо одночасно використовувати і те і інше? А?». Ну як че! Цей момент, звичайно ж, було розглянуто нами при проектуванні. Якщо ви вкажете однакові правила для включення і виключення, то програма буде працювати даремно, тому що спочатку програма буде шукати і збирати тільки адреси згідно з роздільною масці, а потім відразу ж відкидати їх, тому що вони потрапляють під виключення. Тобто по кроках це працює так – спочатку шукаємо дозволяють збіги, потім дивимося на що виключають. Так що одночасно використовувати правила має сенс, коли ви хочете дозволити для перевірки якийсь конкретний розділ сайту, але вже всередині цього розділу виключити якісь його частини – ось так буде правильно!

Ще одна важлива річ, яка була врахована при написанні алгоритмів виключення адрес – це обхід краулером заборонених сторінок. Всі відомі мені програми для сканування сайтів діють так: якщо url потрапляє під забороняє маску, то він навіть не потрапляє в чергу, а просто відкидається. У нас інакше, виключає правило лише скасовує запис адреси в таблиці, але не скасовує сканування сторінки і перевірку посилань на неї. Таким чином, сайт при будь-якому розкладі буде просканувати цілком і повністю, але просто не всі адреси будуть записані. Це дуже і дуже важливо, якщо ви розумієте, про що я!

Ось ніби і все про основні функції програми.

Хоча наостанок я припас один секретик – у програмі є функція пакетного видалення url-адрес з індексу Яндекса! Для цієї мети в панелі вебмастера Яндекса є спеціальний інструмент. Їм можна користуватися і вручну, тільки поштучно вбивати нехай навіть 50 урлов завдання не для слабкодухих. Зате з ComparseR – тільки склав список, ctrl+c, ctrl+v, ок – все готове за три кліка для будь-якої кількості адрес!

А можна спробувати, скільки коштує, як купити?

Звичайно, у програми є промо-сайт — parser.alaev.info — так-так, витримую єдиний стиль в кольорах і оформленні!

Вартість однієї копії програми становить 2000 р. Правила і процедура покупки докладно описана на спеціальній сторінці. В цей раз я вирішив продавати по одній ліцензії для активації одного комп’ютера, але і вартість так само знизив.

And one more thing…
Та сама крилата фраза, яку говорив Стів Джобс, коли у фіналі свого виступу хотів піднести аудиторії сюрприз. У мене теж є для вас сюрприз – ЦЕ ДЕМО-ВЕРСІЯ!

Ну все, друзі, більше я вас не затримую. Спасибі вам за увагу!
Сподіваюся, я вас порадував своєю новою розробкою. Чекаю від вас запитань, цікавих пропозицій та інших коментарів.
До зв’язку!

Завантажити демо-версію ComparseR Безкоштовно без реєстрації і смс :)))

З повагою, Олександр Алаєв