Услуги по созданию ссылок


Рассказываем, как использовать cURL и какие проблемы можно решить с его помощью.

Статью подготовил Юрий Никулин, продуктовый SEO-эксперт. Юрий — преподаватель IT-школ «Нетология» и «Кибермаркетинг», победитель Сколково в номинации «Лучший стартап в сфере IT-технологий» 2023 года и модератор конференции «Оптимизация».

Что такое КУРЛ

cURL (URL-адрес клиента) Это встроенная программа командной строки, распространенная в Windows или MAC. Он позволяет взаимодействовать с сервером по разным протоколам, используя URL-адрес в запросе.

Протоколов довольно много, но SEO-специалистам в 99% случаев необходимы только HTTP и HTTPS:

  • HTTP — устаревший и небезопасный протокол передачи данных между двумя серверами, например между вашим компьютером (браузером) и сервером любого веб-сайта. Пример: httphttp://www.сайт.com

  • HTTPS — это расширение протокола HTTP, но данные передаются в зашифрованном виде. Пример: httpshttp://www.сайт.com

Вот как выглядит простейшая диаграмма протокола HTTP/HTTPS:

Схема работы протокола HTTP/HTTPS

Работа с CURL

Давайте посмотрим, как работать с cURL в разных операционных системах.

окна

В Windows 10 и более поздних версиях cURL устанавливается по умолчанию. Если у вас более старая система, загрузите cURL с сайта официальный сайт.

Нажмите «Пуск» и введите поисковую фразу «Терминал Windows». Затем начните вводить запросы cURL. Самый распространенный тип «Hello World» — это цикл —версияэто позволяет вам проверить версию.

MacOS

Откройте «Лаунчер» и через поиск выберите «Терминал». Введите аналогичный запрос локон —версия, После этого версия Curl должна выглядеть, например, так:

Проверка версии cURL на MacOS
Проверка версии cURL на MacOS

Линукс

В Linux cURL также установлен по умолчанию. Чтобы проверить версию cURL в Linux, введите в терминале локон —версия.

Основной функционал cURL для SEO и что он умеет

cURL позволяет узнать, как поисковые роботы индексируют и просматривают страницы. Если вы хотите понять, какой HTML-текст скрыт от поисковых систем или какие HTTP-заголовки из ответа сервера получают сканеры, вам может помочь cURL.

Что он может сделать:

  • Заменить пользовательский агент;

  • Пройти базовую аутентификацию;

  • Получать HTTP-заголовки и следовать цепочкам перенаправления;

  • Получите HTML-страницы.

Три причины, почему он лучше браузера и его расширений:

  1. Чтобы контролировать процесс самостоятельно, в cURL не допускаются ошибки;

  2. Это можно сделать, выдавая себя за поисковую систему, браузер и некоторые расширения;

  3. Расширения в Google Chrome не могут изменить пользовательский агент. Только те, которые построены на платформенных решениях и размещены на отдельном сервере.

ЧИТАТЬ   ВКонтакте делает свои сервисы доступнее для слабовидящих - Новости

Пройдемся по каждой из особенностей, опишем возможные проблемы и пути их решения.

Замена пользовательского агента

Пятно

Вы хотите посмотреть на страницу глазами Яндекса или Google и увидеть, какой контент им недоступен. Конечно, у них есть свои инструменты, но Яндекс ограничивает вывод HTML через инструмент «Проверка ответа сервера» 50 000 строк, а «Тест Google Mobile Optimization Test» полностью перестал работать, поэтому вы его не сможете отобразить. третьи. -вечерние сайты.

Отвечать

Шаг 1: Введите команду

Откройте терминал и введите следующую команду: Curl — URL-адрес «пользовательского агента». Из чего состоит команда:

  • -А- Этот параметр используется для установки пользовательского агента в HTTP-запросе к серверу сайта. Например, мы хотим притвориться Google. В противном случае мы говорим: «Эй, официант, мы поисковый бот Google!» Дайте нам контент, который вы хотите отображать в этой поисковой системе»;
  • «пользовательский агент» — вставка из поискового робота, в нашем случае из Google:
curl -A "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; + 

Список пользовательских агентов Google можно найти в официальной документации. Документация Яндекса представлена ​​в таблице в разделе «Основные поисковые боты».

В результате cURL возвращает следующий ответ:

Ответ в виде HTML-кода

Шаг 2. Найдите контент, невидимый для Google

Существует четыре способа определить контент, который не видит поисковый робот:

1. Очистите текст, который вам дал cURL, из HTML-тегов, либо выполните поиск в любом онлайн-сервисе по запросу «Очистить текст из HTML-тегов», либо введите DevTools в разделе «Консоль». код javascript console.log(document.body.textContent); и скопируйте полученный текст в редактор.

    Ввод кода JavaScript
    Очистить текст из HTML-тегов

    Сравните тексты, полученные от cURL под пользовательским агентом Google, и текст из вашего браузера со стандартным пользовательским агентом.

    1. Сравниваем два HTML-кода в любом онлайн-сервисе. Только будьте осторожны, они сравниваются построчно. Любое изменение, даже периода, будет рассматриваться как добавление/удаление контента;

    2. Используйте встроенную библиотеку Python БельСуп. Мы не будем вдаваться в подробности, так как это тема отдельной статьи;

    3. Различные расширения для браузера, такие как SEO ALL STARS для Google Chrome. Единственный минус – многие расширения не видят текст под iframe. В любом случае, экспериментируйте.

    ЧИТАТЬ   Приложение Google Search перестало работать на несколько часов прошлой ночью
    Сравнение видимого и невидимого текста для Google

    Важное примечание: если на сайте установлена ​​система защиты от ботов, такая как Cloudflare, то cURL не сможет обойти эту защиту.

    Пройти базовую аутентификацию

    Пятно

    Вы создали новый сайт или страницу, но она недоступна для пользователей и закрыта для посещений. Как протестировать такую ​​страницу глазами Яндекса или Гугла?

    Проверка страницы, которая не сканируется

    Отвечать

    cURL позволяет пройти базовую авторизацию на странице и получить все данные, предоставляемые сервером сайта.

    Откройте терминал и войдите в него URL-адрес Curl -u «имя пользователя:пароль»и установите пользовательский агент бота по инструкции выше: добавьте дополнительно — «Пользовательский агент».

    Что ввести:

    • Вместо Логин Пароль введите свое имя пользователя и пароль;

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

    Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +

    Параметр используется для указания учетных данных и сообщает cURL, что страница подключена.

    Вот как это выглядит в терминале:

    Команда в терминале

    После прохождения базовой авторизации и просмотра страницы глазами Google остается только сравнить HTML, полученный от Google и в браузере, и найти текст, который не видит поисковая система. Для этого воспользуйтесь инструкциями выше.

    Получение HTTP-заголовков и следование цепочке перенаправлений

    Пятно

    Вы заходите на сайт и видите страницу с ответом сервера 200 ОК. Пользователи жалуются, что на одной и той же странице им открывается совершенно другой контент или они перенаправляются в другое место. Вы хотите подтвердить жалобы пользователей и одновременно проверить ответы сервера и цепочки перенаправлений.

    Отвечать

    Шаг 1. Проверьте, что видит Google

    Такая ситуация может возникнуть, когда продакт-менеджер провел сплит-тест и случайно добавил в него поисковых ботов или нецелевые аудитории. Возможно, сплит-тестирование было отключено и разработчики неправильно исправили техническую часть. По этой причине содержимое, ответы сервера и заголовки HTTP могут выводиться по-разному.

    Сначала проверяем, нет ли ненужных редиректов для бота Google и какие HTTP-заголовки ему возвращаются:

    curl -sSL -D - -A "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; + 

    Чуть позже мы расшифруем все параметры этого запроса.

    Мы получаем следующий ответ, где видим HTTP-заголовки и строки перенаправления:

    HTTP-заголовки возвращены

    Мы видим, что у бота срабатывает 301 редирект. Но это вызвано не проблемой сервера, а правильно настроенными редиректами с HTTP на HTTPS. Мы помним результат.

    ЧИТАТЬ   Важные особенности и преимущества использования ссылок на презентацию для достижения целей бизнеса

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

    Для этого вам необходимо знать пользовательский агент, язык согласия и согласия пользователя, у которого возникла проблема. Вы можете узнать больше о Accept и Accept-Language в документации Mozilla.

    Данные об акцепторах и пользовательских агентах мы получаем через онлайн-сервис webtools или через браузер пользователя: DevTools -> Сеть -> Заголовки -> Заголовки запросов.

    После обнаружения этих данных введите в консоль следующий запрос:

    curl -sSL -D - -H "User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/105.0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Accept-Language: en-US,en;q=0.5"    

    Мы получаем ответ, в котором видим заголовки HTTP и строки перенаправления только для пользователя, испытывающего проблему. Теперь вам нужно сравнить ответы сервера для пользователей и ответы сервера для Google.

    Сравнение ответов сервера для пользователей и для ботов Google

    На скриншоте мы видим, что с HTTP-заголовками все в порядке и цепочки редиректов для пользователей и ботов одинаковы.

    Рекомендация: на всякий случай проверьте то же самое, только у своего пользовательского агента. И сравните то, что видят пользователи, что видит Google и что видите вы.

    Параметры в запросе:

    — этот флаг означает «тихий» режим и не отображает информацию о ходе процесса на терминале;

    — этот флаг не отображает ошибки, возникающие в процессе запроса, чтобы не загромождать терминал;

    — этот флаг позволяет cURL следить за редиректами в запросе и отображать всю строку;

    -Д- — этот флаг генерирует HTTP-заголовки в ответе терминала и не записывает в файл;

    -ЧАС- — Этот флаг указывает на добавление заголовка к HTTP-запросу. Это позволяет вам уникально запрашивать и выдавать себя за любого пользователя.

    Давайте подведем итоги

    cURL — это простая программа, которая по умолчанию установлена ​​практически на всех компьютерах под управлением Windows и MAC. Он позволяет вам отправлять HTTP-запросы к любому сайту и получать HTTP-заголовки и тело страницы.

    Мы рассмотрели три основные ситуации, в которых SEO-специалист может использовать cURL:

    • Просматривайте страницы глазами поисковой системы, независимо от того, работают ли официальные сервисы Яндекса и Google;

    • Получить тело страницы, когда это разрешено и поисковые роботы не могут получить к нему доступ;

    • Проверьте, получаете ли вы, ваши пользователи и ваши поисковые боты одинаковые перенаправления и HTTP-заголовки.



Source link