Прогнал своё расширение на случайных сайтах и поймал его на пяти ошибках. Рассказываю, как их чинил
Привет, я Артём, делаю сайты. Вы могли видеть мой пост про два расширения для Яндекс Карт и 2ГИС, которые складывают организации в Excel. Это продолжение, и оно про то, как я проверял свой же код.
Таблицу с названиями и телефонами теперь собирает кто угодно, и мой парсер в том числе. Файл получился удобный, но из строки «шиномонтаж, телефон, сайт» не видно, о чём вообще можно говорить с человеком.
Открывать сайты руками я пробовал: на десятом уже не помню, у кого была Метрика, а у кого только красивая шапка. Поэтому я написал третье расширение, Analyzer. Оно берёт список адресов или тот же Excel, открывает публичные страницы и дописывает рядом то, что лежит в HTML: на чём сайт, какой title, есть ли заголовки H1, стоят ли Метрика и GTM, есть ли форма заявок.
Показывать «смотрите, какой молодец» неинтересно, поэтому я сделал так: набрал в поиске четыре запроса (шиномонтаж в Твери, стоматология в Самаре, фитнес в Воронеже, салоны и косметология в Перми), взял из выдачи 14 сайтов обычных небольших компаний и прогнал как обычный клиент. Названия компаний в файле заменил буквами: мне нужно было проверить как работает инструмент.
Путь клиента, шаг за шагом
Сначала расширение не даёт ничего сделать, пока не примешь условия использования. Дальше я загрузил файл: 14 адресов плюс два фейка, строка вообще без сайта и вымышленный домен. Всего 16 строк. Нажал «Начать анализ», и расширение открывает сайты в фоновых вкладках.
Весь файл ушёл примерно за минуту. Компании раскладываются по четырём кучам: «Сайт», «SEO», «Маркетинг», «SMM». У меня вышло 3, 2, 7 и 4 соответственно.
Дальше можно скачать Excel. В нём 57 колонок, я показываю 12:
Самое полезное здесь не цифры, а сравнение соседей. Две стоматологии в одном городе в обычной выгрузке выглядят близнецами: телефон, сайт, рейтинг. А в таблице у одной Битрикс, нет Метрики, есть форма и запись, а у другой WordPress, нет H1, нет Метрики, нет формы и счётчик Google Analytics, который давно не работает. Это уже интересно!
Пять ошибок, которые я нашёл в процессе тестирования
Когда я сверил выводы расширения с исходным кодом страниц, нашлось пять мест, где оно говорило не то. Расскажу по порядку, потому что именно так я и понял, что без такой проверки инструмент работал бы с багами.
Первый. Один салон из Перми расширение записало в «Сайт» с пометкой «сайт не открывается». Я открыл его браузером и через curl, ответ 200. Оказалось, что для Chrome сервер то сбрасывает соединение, то отдаёт ошибку сертификата, и только для него. Хуже всего, что эта же фраза попадала в «сообщение для связи», то есть я мог бы сообщить человеку «у вас не открывается сайт». Я добавил базовый ретрай, теперь расширение пробует с паузами в 3 и 8 секунд, а если не вышло, пишет: «сайт не ответил при проверке — откройте вручную». Фраза «не открывается» осталась только для случая, когда домена просто нет в DNS (мой вымышленный домен).
Второй. У одной клиники в коде стоит Google Analytics с идентификатором UA-... Расширение писало «GA: да». Но Universal Analytics Google отключил в 2023 году, и этот счётчик ничего не считает. Теперь в колонке написано «устарел».
Третий. Для проверки robots.txt и sitemap расширение делает отдельные запросы. Если запрос падал по сети, оно записывало «файла нет» и добавляло баллы за «нет sitemap». Получалось, что один и тот же файл в двух прогонах давал разные категории. Теперь сетевой сбой считается «неизвестно» и баллов не даёт.
Четвёртый. Колонка «запись» знала всего несколько сервисов вроде YCLIENTS. На 13 открывшихся сайтах она в первом прогоне не нашла записи ни на одном, хотя на половине сайтов крупными буквами написано «Записаться на приём», а у одного стоит виджет MEDFLEX. После правки «запись» нашлась на 9 из 13.
Пятый. Показатели SMM считались только по колонке «Соцсети» в исходном Excel, то есть по тому, что отдала карта. В моём файле такой колонки не было, и 10 из 13 сайтов упали в SMM по одной причине «нет соцсетей». Теперь, если в таблице соцсетей нет, расширение ищет ссылки на VK, Telegram и WhatsApp на самой странице (кроме кнопок «поделиться»). Тот же файл теперь даёт 4 сайта в SMM из 16.
После правок я прогнал файл ещё раз. Результаты совпали по всем 16 строкам. На правки в логике написал тесты, так что больше сломаться не должно.
Что осталось неидеальным
Текст кнопки «скопировать сообщение» собирается по шаблону из найденных проблем. Раньше в подсказках стояло что-то вроде «КП — счётчик и цель за одну итерацию» или «нет Метрики и GTM и пикселя». Читалось как записка менеджера в пятницу вечером, я это поправил: теперь «Что предложить: счётчик и цель за одну итерацию». Всё равно это шаблон, и отправлять его как есть я бы не стал, переписывайте лучше своими словами. Само расширение ничего никуда не отправляет, и это правильно.
Расширение не производит замер скорости сайта и в Вебмастер не ходит. CMS может определять не всегда из-за их большого разнообразия: из 13 сайтов четыре остались «не определено». Список CMS я буду дополнять в обновлениях.
Честно скажу про баллы. Это эмпирическая метрика: веса («нет Метрики — столько-то, нет H1 — столько-то») я назначил сам. Высокий балл значит «много пробелов». В одном из следующих обновлений я, возможно, заменю её на что-то более осмысленное.
Если захотите попробовать
Расширение лежит в Chrome Web Store. Без лицензионного ключа в день доступно 30 проверок открытой вкладки и 5 из файла или списка, так что мои 16 строк на демо целиком не прогнать, я гонял с тестовым ключом.
У кого есть опыт ручной проверки сайтов и «технички»? На что обращаете внимание и какими инструментами пользуетесь?








