SEO-оптимизация Shopify сайта

Практическое руководство по SEO-оптимизации сайта на Shopify. Настройка мета-тегов, скорости загрузки и краулингового бюджета.

SEO-оптимизация Shopify сайта — это работа в условиях закрытой платформы. Shopify решает базовые технические задачи самостоятельно, но накладывает ограничения, которые требуют нестандартных решений. За 8 лет практики мы настроили более 50 магазинов на Shopify и выработали подход, который учитывает специфику платформы. В этой статье разберём все доступные способы улучшить позиции магазина: от стандартных настроек до правки кода Liquid и подключения внешних сервисов индексации.

SEO-возможности Shopify

Shopify предоставляет сертификат SSL сразу после подключения домена. Сертификат выпускается автоматически и поддерживает протокол HTTPS для всего сайта. Редирект с HTTP на HTTPS настраивается на уровне платформы и не требует ручных правок. Это закрывает базовое требование поисковых систем к безопасности соединения.

Мобильная адаптивность — вторая сильная сторона платформы. Все темы Shopify адаптированы под мобильные устройства. Google проверяет страницы через Mobile-First Indexing, и в Shopify проблем с этим не возникает. Скорость загрузки зависит от выбранной темы и количества установленных приложений. Из коробки Shopify обеспечивает быструю загрузку за счёт собственной CDN и кэширования.

Однако Shopify — это SaaS с закрытой серверной частью. Вы не сможете править .htaccess или конфигурацию Nginx. Нельзя менять структуру постоянных ссылок за пределами предусмотренных платформой форматов. Нет доступа к логам сервера. Все SEO-доработки ведутся либо через админ-панель, либо через редактирование Liquid-шаблонов, либо через приложения.

Ещё одно ограничение: невозможно удалить префиксы в URL — /products, /collections, /pages. Платформа жёстко добавляет их ко всем страницам. Это не критично для ранжирования, но влияет на длину и читаемость адресов.

Настройка Title и Description

Shopify позволяет задать заголовок и мета-описание для любого товара, коллекции, страницы блога и информационной страницы. Поля находятся в нижней части карточки товара под вкладкой «Поисковая оптимизация». При редактировании система показывает превью того, как страница будет выглядеть в выдаче.

Для заголовка (Title) действует лимит в 55–60 символов с учётом пробелов. Всё, что выходит за пределы, Google обрезает. Мета-описание (Description) не должно превышать 150–160 символов. Система может перезаписать описание на основе содержимого страницы, если сочтёт ваш вариант нерелевантным запросу. Рекомендуем проверять не только длину, но и наличие ключевых слов — они подсвечиваются в выдаче и повышают CTR.

Магазинам с большой номенклатурой неудобно заполнять мета-теги вручную. Shopify поддерживает шаблоны через переменные Liquid в файле theme.liquid. Например, можно задать структуру:

{{ product.title }} – купить в {{ shop.name }}
{{ page_description | default: product.description | strip_html | truncate: 160 }}

Этот код подставляет название товара и очищенное описание. Но злоупотреблять автоматизацией не стоит: уникальные Title и Description работают лучше шаблонных.

Для быстрого массового редактирования используйте встроенную функцию «Bulk editor». Она позволяет открыть до 50 позиций одновременно, но для тысяч товаров удобнее подключать приложения вроде Smart SEO, которые мы разберём ниже.

Структура URL в Shopify

Формат адресов в Shopify жёстко закреплён:

  • /products/handle — страница товара;
  • /collections/handle — страница коллекции;
  • /pages/handle — информационная страница;
  • /blogs/news/handle — запись блога.

Удалить префиксы нельзя. Это особенность архитектуры платформы: маршрутизация работает на уровне этих сегментов. С точки зрения SEO префиксы не являются проблемой. Google и Яндекс давно не придают веса «чистым» URL без служебных слов. Важнее то, что находится после префикса — handle.

Handle (slug) — это уникальный идентификатор сущности, который генерируется из названия. Вы можете редактировать его в карточке товара в поле «URL-адрес». Правила формирования handle:

  • только латиница, цифры, дефисы;
  • все символы в нижнем регистре;
  • пробелы и спецсимволы заменяются дефисом;
  • максимальная длина — 255 символов, но на практике не превышают 100.

Следите, чтобы handle не дублировался. Если вы удалили товар и создали новый с таким же handle, старый адрес будет отдавать 404, если не настроен редирект. Платформа не предупреждает о коллизии.

Отдельная проблема — коллекция по умолчанию /collections/all. Она автоматически включает все товары магазина. Её канонический URL часто становится источником дублей. Мы рассмотрим это в разделе технических деталей.

Работа с изображениями

Поисковый трафик по картинкам даёт до 15% посещений интернет-магазина. Shopify автоматически конвертирует загруженные изображения в формат WebP при отдаче через CDN. Исходный файл остаётся в оригинальном формате (JPEG или PNG), а браузер получает WebP. Это сокращает размер файлов на 25–35% без видимой потери качества.

Для каждого товара можно задать несколько изображений. Основное становится тем, что участвует в сниппетах Google Images. Обязательно заполняйте Alt-текст для всех картинок. Shopify предоставляет отдельное поле Alt для каждого изображения в карточке товара. Рекомендации по заполнению:

  • длина до 125 символов;
  • описывайте, что конкретно изображено;
  • добавляйте ключевое слово, если это уместно;
  • избегайте переспама и перечисления ключей через запятую.

Массово ALT-теги обновляются через CSV-импорт. Экспортируйте товары, заполните столбец Image Alt Text и импортируйте обратно. Либо используйте приложения типа TinyIMG, которые умеют генерировать ALT на основе названия товара и заданного шаблона.

Дополнительно сжимать изображения можно до загрузки. Shopify не сжимает исходный JPEG, поэтому если загрузить файл весом 5 МБ, он будет храниться как есть, хоть и отдаваться в WebP. Для ускорения бэкенда и экономии места используйте сервисы сжатия: TinyPNG, ImageOptim или приложения из Shopify App Store типа Crush.pics. Они обрабатывают изображения уже после загрузки.

Приложения для SEO

Shopify App Store предлагает десятки SEO-приложений. Они компенсируют негибкость платформы. После установки приложения получают доступ к шаблонам темы через API и могут добавлять микроразметку, массово править мета-теги, управлять редиректами. Мы сравнили три самых популярных решения.

Функция SEO Manager Plug In SEO Smart SEO
JSON-LD разметка Product, Article, BreadcrumbList, Organization Product, Article, BreadcrumbList, FAQ, LocalBusiness Product, Article, BreadcrumbList
Массовое редактирование мета-тегов Да, с шаблонами Да, с шаблонами и поиском/заменой Да, с умными шаблонами
Аудит SEO Базовый Глубокий (проверка alt, битых ссылок, скорости) Нет встроенного аудита
Управление редиректами Только мониторинг битых ссылок Да, создание 301 Нет
Работа с вариантами товаров Канонизация по умолчанию Добавляет каноникал только для основного варианта Позволяет индексировать варианты (с осторожностью)
Цена $29/мес Бесплатно / $24/мес $19/мес

Все приложения добавляют структурированные данные в формате JSON-LD. Разметка типа Product, BreadcrumbList, Organization помогает Google формировать расширенные сниппеты — цену, наличие, рейтинг. По опыту, подключение JSON-LD через приложение занимает 10 минут и сразу улучшает CTR на 3–5%.

Если вы не хотите ставить дополнительное приложение, разметку можно добавить вручную через редактирование шаблонов. В файле sections/main-product.liquid или snippets/product-json-ld.liquid прописывается структура:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "{{ product.title | escape }}",
  "image": "https:{{ product.featured_image | image_url }}",
  "description": "{{ product.description | strip_html | escape }}",
  "sku": "{{ product.selected_or_first_available_variant.sku }}",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "{{ shop.currency }}",
    "price": "{{ product.selected_or_first_available_variant.price | money_without_currency }}",
    "availability": "{% if product.available %}InStock{% else %}OutOfStock{% endif %}",
    "url": "{{ product.url }}"
  }
}

Этот код генерирует базовую разметку для товара. Не все темы имеют готовый сниппет, поэтому приложение избавляет от рутины. Важно проверять результат через валидатор Google Rich Results Test — часто темы выводят разметку с ошибками из-за неправильного формата цены или отсутствия обязательных полей.

Блог для SEO

Встроенный блог Shopify — это стандартный движок, который позволяет публиковать статьи по адресу /blogs/название_блога/. Один магазин может иметь несколько блогов. Каждый напоминает рубрику. Технически блог ограничен: нет категорий, тегов (кроме меток статьи), нельзя настроить ЧПУ отдельной статьи без префикса /blogs/ и названия блога. Но для контент-маркетинга этих возможностей достаточно.

Стратегия работы с блогом для SEO магазина:

  • Создайте блог с названием, отражающим тематику (например, «reviews», «how-to», «brand-journal»).
  • Публикуйте статьи, отвечающие на вопросы покупателей: обзоры, инструкции, сравнения.
  • Используйте внутренние ссылки на товары и коллекции. В редакторе статьи есть кнопка вставки ссылки на товар — она автоматически подставляет URL.
  • Настройте мета-поля для каждой статьи. Они находятся в разделе «SEO» при публикации.

Статьи блога хорошо индексируются и могут привлекать трафик по информационным запросам. Коммерческие страницы товаров часто не получают трафик из-за высокой конкуренции. Информационные запросы менее коммерциализированы, и через них можно прогревать аудиторию. Например, магазин зоотоваров может опубликовать статью «Как выбрать лежанку для собаки» и вести читателя в карточку товара.

Ограничение Shopify: URL статьи всегда содержит /blogs/имя_блога/, изменить это нельзя. Также страница блога по умолчанию показывает последние записи и не имеет настроек SEO (Title, Description) отдельно от стандартных настроек. Приходится редактировать файл blog.liquid, чтобы добавить уникальные мета-теги для страницы списка статей. О том, как это сделать, читайте в статье «Shopify — SEO и индексация».

Редиректы

Shopify предоставляет встроенный инструмент для создания 301 редиректов. Найти его можно по пути: Онлайн-магазин → Навигация → URL-редиректы. Интерфейс простой: две колонки — «Откуда» и «Куда». Можно указывать относительные пути без домена. Например, /old-product → /new-product.

Этот функционал особенно полезен в трёх случаях:

  • После смены handle товара или коллекции.
  • При удалении страницы, на которую есть внешние ссылки.
  • При переносе магазина с другой платформы.

Для массового импорта редиректов Shopify поддерживает добавление через CSV. В админке над списком редиректов есть кнопка «Импорт». Файл должен содержать колонки Path и Target. Важно: при импорте существующие редиректы не заменяются, а добавляются. Дубликатов лучше избегать.

Ограничение: Shopify не позволяет настраивать сложные правила с регулярными выражениями. Нельзя сделать редирект с масок типа /category/*. Для таких задач нужны сторонние приложения — Easy Redirects или Redirect Pro. Они создают правила с поддержкой шаблонов.

Ещё один момент: редиректы Shopify имеют приоритет над другими ресурсами. Если вы создали редирект /products/kurtka на /products/new-kurtka, но позже создали товар с handle «kurtka», редирект переопределит доступ к товару. Система предупредит об этом при создании товара. Проверяйте конфликты после импорта.

Международное SEO

Для магазинов, которые работают на несколько стран, Shopify предлагает Markets. Эта система позволяет создать версии сайта для разных регионов с разными валютами, ценами и доменами. По умолчанию Markets использует субдиректории: example.com/en-us, example.com/fr-fr. Также можно подключить отдельные домены (example.fr) или субдомены (fr.example.com).

С точки зрения SEO главная задача — правильно указать hreflang. Shopify Markets автоматически добавляет теги hreflang в заголовок страницы для всех активных рынков. Например:

<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/products/shirt" />
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr-fr/products/chemise" />
<link rel="alternate" hreflang="x-default" href="https://example.com/products/shirt" />

В тестах мы замечали, что не все темы корректно выводят канонический URL для региональных версий. Иногда каноникал указывает на основную версию, что сбивает индексацию. Проверяйте код страницы в каждом регионе. Если каноникал неправильный, придётся редактировать тему — править head-секцию в theme.liquid, добавив условие для разных market.handle.

Перевод контента Shopify Markets не делает. Для мультиязычности придётся использовать приложения перевода (Langify, Weglot, Translate My Store) или встроенную функцию Translate & Adapt. Последняя позволяет вручную редактировать контент для каждого рынка — товары, коллекции, статьи. Автоматический перевод даёт Google Translate API, но качество для SEO низкое. Лучше закладывать бюджет на ручной перевод хотя бы ключевых страниц.

Отдельное внимание — карта сайта. Shopify генерирует отдельные sitemap для каждого языка/рынка, если включена функция Markets. Эти sitemap автоматически добавляются в robots.txt. Подробнее о структуре карты читайте в материале «Как создать sitemap для Shopify сайта».

Технические детали

Проблема /collections/all

Каждый магазин Shopify имеет коллекцию по умолчанию с handle «all». Она содержит все товары без фильтрации. Проблема в том, что на неё часто ссылаются внутренние навигационные цепочки, а также её могут проиндексировать поисковики. Это создаёт дубликат контента с другими коллекциями и страницами товаров.

Решение — исключить /collections/all из индексации. Поскольку править robots.txt нельзя (он генерируется автоматически), самый простой способ — добавить мета-тег noindex на эту конкретную страницу. Сделать это можно через Liquid. В файле templates/collection.all.liquid (если его нет — создать) добавить в начало:

{% if collection.handle == 'all' %}
  <meta name="robots" content="noindex, follow">
{% endif %}

Если тема не имеет отдельного шаблона для all, можно вставить условие в head секцию theme.liquid: проверить, является ли текущая коллекция 'all', и вывести noindex.

Второй вариант — каноникализировать /collections/all на корень магазина. Но это не рекомендуется, потому что на корне обычно другая страница (главная). Лучше исключить из индексации.

Обработка вариантов товаров и их URL

Товары с вариантами (размеры, цвета) получают URL с параметром ?variant=. Например, /products/kurtka?variant=32098564063330. Такой URL может расцениваться как отдельная страница и создавать дубли. По умолчанию Shopify добавляет канонический тег, указывающий на основной URL товара без параметра variant. Но не все темы это делают корректно.

Проверьте, что в head страницы товара присутствует тег:

<link rel="canonical" href="{{ canonical_url }}">

Переменная canonical_url в Shopify автоматически убирает параметр ?variant= и указывает на чистый URL товара. Если этого нет, нужно добавить в theme.liquid.

Дополнительная проблема: SEO-приложения могут настраивать индексацию отдельных вариантов, если у них уникальный контент (например, отдельное описание для цвета). Делать это следует с осторожностью, так как легко создать сотни дублей.

Theme customization через Liquid для SEO-элементов

Liquid — это язык шаблонов Shopify, который позволяет менять логику вывода HTML. Основные файлы, в которые вносятся SEO-правки:

  • layout/theme.liquid — общий макет, где можно добавить глобальные мета-теги, счётчики, скрипты;
  • templates/product.json (или product.liquid) — шаблон товара;
  • templates/collection.json — шаблон коллекции;
  • sections/*.liquid — отдельные блоки страницы (шапка, футер, карточка товара).

Пример кастомизации: добавление мета-тега robots для страниц пагинации коллекций. При переходе на ?page=2 и далее желательно, чтобы контент не дублировался, но индексация была разрешена. Можно в theme.liquid написать:

{% if current_page and current_page > 1 %}
  <meta name="robots" content="noindex, follow">
{% endif %}

Это закроет от индексации все страницы пагинации кроме первой, сохранив передачу веса по ссылкам.

Настройка theme.liquid для кастомных мета-тегов

Проверка title и description обычно автоматизирована, но иногда нужно добавить что-то специфическое. Например, Open Graph-теги для соцсетей. Shopify автоматически формирует og:title, og:image, og:url, но можно переопределить. В theme.liquid до закрывающего вставляется:

{% if template contains 'product' %}
  <meta property="og:description" content="{{ product.description | strip_html | truncate: 200 }}" />
{% endif %}

Для управления индексацией страниц, которых нет в стандартном выводе (например, страницы поиска, 404), в layout можно добавить:

{% if template == 'search' or template == '404' %}
  <meta name="robots" content="noindex, follow">
{% endif %}

Всегда проверяйте, что внесённые изменения не ломают стандартную функциональность и не выводят дублирующиеся теги. Shopify при редактировании темы показывает предупреждения, если синтаксис Liquid содержит ошибки.

Structured data через JSON-LD в theme templates

Ранее мы привели пример базовой разметки Product. Но также важно добавить разметку BreadcrumbList и Organization. Организация может быть прописана в theme.liquid глобально, хлебные крошки — в соответствующем сниппете.

Пример для BreadcrumbList в файле snippets/breadcrumbs.liquid:

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@id": "{{ shop.url }}",
        "name": "Главная"
      }
    },
    {% if collection %}
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@id": "{{ collection.url }}",
        "name": "{{ collection.title | escape }}"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@id": "{{ product.url }}",
        "name": "{{ product.title | escape }}"
      }
    }
    {% endif %}
  ]
}

Если сниппета нет — создайте его и включите через {% render 'breadcrumbs' %} в нужных шаблонах. С хлебными крошками стоит быть аккуратным: не дублируйте разметку, которую может добавлять тема или приложение. Валидация через Google Search Console покажет ошибки.

Индексация сайта и ускорение обхода

После всех настроек файл sitemap.xml генерируется автоматически и доступен по адресу /sitemap.xml. Он включает все товары, коллекции, страницы, статьи блога. Google заходит за ним по расписанию, которое нельзя контролировать. Чтобы поисковики быстрее узнавали о новых и обновлённых страницах, мы подключаем IndexNow API.

Это открытый протокол, который поддерживают Яндекс, Bing и Naver, а с 2024 года в экспериментальном режиме и Google. Shopify не имеет встроенного модуля для отправки уведомлений. Но можно настроить отправку через сторонний сервис. Например, после добавления товара в Shopify админ отправляет запрос к IndexNow с URL страницы. Сервис Index-Now.ru позволяет подключить такой мониторинг без написания кода — достаточно указать ключ API и задать расписание. Для магазинов с частым обновлением каталога это сокращает время попадания в поиск до нескольких часов.

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

Можно ли полностью удалить /collections/all из индекса?

Да, через добавление мета-тега noindex в шаблоне коллекции. Самый надёжный способ — создать шаблон collection.all.liquid с указанием . Либо через условие в theme.liquid, проверяя handle коллекции. После этого в Google Search Console запросите временное удаление страницы или дождитесь переобхода.

Как проверить, что каноникалы для вариантов товаров работают правильно?

Откройте любой товар с вариантами, переключите вариант и посмотрите HTML-код. В head должен быть , указывающий на URL без ?variant=. Также в Search Console в разделе «Покрытие» отслеживайте предупреждения о дублирующемся контенте без канонической страницы.

Можно ли изменить URL товара без потери позиций?

Да, если после изменения handle сразу создать 301 редирект со старого URL на новый. Shopify позволяет делать это массово через импорт CSV. После изменения адреса передайте новые URL в IndexNow, чтобы ускорить переиндексацию.

Какое SEO-приложение лучше для небольшого магазина?

Для магазина до 500 товаров достаточно Plug In SEO в бесплатной версии. Он закрывает основные задачи: проверка мета-тегов, alt-изображений, базовая JSON-LD разметка. Если нужна расширенная работа с вариантами и шаблонами мета-тегов, смотрите Smart SEO за $19/мес.

Как настроить hreflang для мультиязычного магазина на разных доменах?

При использовании отдельных доменов через Shopify Markets hreflang генерируется автоматически. Проверьте, что в разделе Markets для каждого рынка выбран правильный язык и страна. Если каноникал или hreflang неверны, правьте тему: в head секции должен выводиться корректный alternate link в зависимости от market. Если домены на отдельных магазинах (не Markets), то придётся вручную вставлять link-теги через theme.liquid, определяя домен через request.host.