Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Разработка

REST API и адреса: чем отличаются от страниц

Продолжаем разговор о разработке темой, о которой часто забывают при проектировании сайта, — адресами программного интерфейса.

Две разные задачи под одним доменом

Страница сайта предназначена для человека и поисковой системы: у неё есть заголовок, текст и оформление. Адрес API возвращает структурированные данные, обычно в формате JSON, которые потребляет приложение или скрипт. Смешивать эти два мира в одном пространстве адресов опасно.

Как принято строить адреса API

Адрес описывает ресурс, а действие определяет метод запроса. Такой подход делает интерфейс предсказуемым.

GET    /api/products        — список товаров
GET    /api/products/125    — один товар
POST   /api/products        — создание
DELETE /api/products/125    — удаление

Почему адреса API не должны попадать в индекс

  • ответ в формате JSON не имеет ценности для пользователя поиска;
  • робот тратит на такие адреса часть бюджета обхода;
  • в выдаче могут оказаться технические данные, которые не предназначены для публикации.

Самый простой способ — вынести все адреса интерфейса под единый префикс и закрыть его в файле robots.txt.

Заголовки как надёжная защита

Директива в robots.txt лишь просит робота не заходить. Для гарантии добавьте к ответам API заголовок X-Robots-Tag со значением noindex — он действует независимо от того, обнаружил ли робот адрес по ссылке.

Правило: страницы сайта и API — разные зоны. Префикс /api/ закрывается целиком, а публичное содержимое живёт вне его.

Когда страница получает данные из API

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

Доступ к API и разграничение прав

Закрытие от индексации — не то же самое, что защита данных. Если интерфейс отдаёт информацию, которую нельзя показывать всем, доступ к ней должен ограничиваться авторизацией, а не только запретом в robots.txt. Робот честно соблюдает запреты, но злоумышленник — нет.

  • публичные данные — открытые адреса без авторизации, но с запретом индексации;
  • приватные данные — только после проверки прав пользователя;
  • служебные данные — доступны лишь внутренним системам.

Коды ответов и формат ошибок в API

Интерфейс должен возвращать корректные коды: 200 при успехе, 404 при отсутствии ресурса, 400 при неверном запросе. Единый формат сообщений об ошибках упрощает жизнь тем, кто использует API. Для самого SEO это тоже полезно: даже закрытые адреса не должны отвечать кодом 200 на несуществующие запросы.

Частые вопросы

Нужно ли закрывать адреса API от индексации?

Да, они не предназначены для пользователей поиска и лишь тратят бюджет обхода, поэтому их закрывают через robots.txt и заголовок noindex.

Чем адрес API отличается от адреса страницы?

Адрес API отдаёт структурированные данные для приложения, а страница — оформленное содержимое для человека и поисковой системы.

Как удобнее всего отделить API от остального сайта?

Разместить все его адреса под единым префиксом, например /api/, и закрыть этот префикс целиком.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также