CommerCentr
UA
Увійти

Sitemap для магазину: що в нього класти і навіщо

sitemap.xml — найнудніший файл у магазині і водночас найдешевший спосіб пришвидшити індексацію. Він не піднімає позиції й не замінює роботу над SEO. Він робить одну річ: каже пошуковику, які сторінки у вас є, не змушуючи знаходити їх переходами.

Для каталогу на десять сторінок це не має значення. Для каталогу на десять тисяч — має, і саме там починається різниця між «файл є» і «файл працює».

Що він дає насправді

Пошуковий робот обходить сайт за посиланнями. Товар, на який не веде жодне посилання з видимих сторінок — глибока позиція у фільтрі, стара картка, сезонна категорія — може не знайтись місяцями.

Без sitemapЗ sitemap
робот шукає сторінки переходамиотримує повний перелік одразу
глибокі сторінки чекають своєї чергипотрапляють у чергу нарівні з іншими
дата оновлення невідомау файлі стоїть lastmod

Чого він не робить: не гарантує індексації й не впливає на позиції. Це запрошення, а не наказ — пошуковик сам вирішує, що взяти.

Базовий рівень: один файл

У CommerCentr плагін Sitemap безкоштовно збирає www/sitemap.xml із трьох джерел: товари, категорії, статті. Файл віддається статикою — жодного PHP на запит робота, тобто навантаження на сайт нульове.

Для більшості магазинів цього достатньо, і зупинитись тут — нормально.

Коли одного файла стає замало

Три ситуації, у кожній базовий файл перестає покривати потребу.

Каталог виріс. Стандарт sitemaps.org обмежує один файл: 50 000 URL і 50 МБ у розпакованому вигляді. Магазин із варіаціями й фільтрами доходить до межі швидше, ніж здається. Рішення — індексний файл: маленький sitemap.xml, що перелічує окремі мапи, і вже вони несуть URL частинами (товари окремо, категорії окремо).

Товар продають фотографії. Меблі, одяг, декор — покупець приходить із пошуку за зображеннями. Щоб картинки туди потрапили, їх треба оголосити в мапі окремим блоком: адреса файлу, підпис. Звичайний <url> про зображення не каже нічого.

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

Що додає платний рівень

Розширення закриває рівно ці три випадки плюс дві технічні дрібниці:

Гілковані файли. Мапа розкладається на кілька (sitemap-categories.xml та інші), а корінь стає індексом. Ліміт стандарту перестає бути стелею.

Зображення. Головне фото товару й додаткові потрапляють у мапу окремим блоком, разом із підписами. Сюди ж ідуть WebP-версії, якщо магазин їх генерує.

Відео. Якщо до картки прив'язане відео, воно оголошується як відео, а не як ще одне посилання.

Мовні альтернативи. Кожен URL несе перелік своїх мовних версій, тож пошуковик знає, що це переклади, а не дублі.

Gzip і розклад. Файли віддаються стиснутими, а перезбирання відбувається саме — після зміни каталогу не треба нічого натискати.

Як перевірити, що все справді працює

Порядок, який займає п'ять хвилин і ловить більшість помилок.

  1. Відкрийте https://ваш-магазин/sitemap.xml — файл має віддаватися без пароля й без редиректу.
  2. Порахуйте URL. Якщо в каталозі 4000 товарів, а в мапі 300 — щось не потрапляє: чернетки, товари без ціни, ціла категорія.
  3. Перевірте самі адреси. Вони мають бути канонічними: той самий домен, той самий протокол, без службових параметрів. URL, що веде на редирект, витрачає обхід намарно.
  4. Здайте файл у панель вебмайстра й через кілька днів подивіться, скільки з поданого проіндексовано. Розрив у рази — привід дивитися на самі сторінки, а не на мапу.
  5. Після великого імпорту перевірте lastmod. Якщо дати не оновились, робот вважатиме сторінки незміненими.

Що таке lastmod і чому його варто ставити чесно

У кожного URL є необов'язкове поле «дата останньої зміни». Спокуса очевидна: проставити всім сьогоднішнє число, щоб пошуковик «перечитав усе». Так робити не варто, і причина практична.

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

Чесний lastmod найкорисніший саме у великому каталозі: після імпорту цін чи переписування описів він показує, які з десяти тисяч сторінок варті уваги зараз. Тому в CommerCentr дата береться з самої сутності, а не з моменту збірки файла — інакше кожна регенерація «оновлювала» б увесь каталог.

Скільки це коштує сайту

Питання, яке виникає в кожного власника великого магазину: чи не покладе генерація мапи сайт.

Ні, і причина в тому, як файл віддається. Мапа збирається заздалегідь і лягає на диск статичним файлом. Коли робот її запитує, PHP не виконується взагалі — веб-сервер віддає готовий файл, як картинку. Тобто вартість запиту для сайту нульова, скільки б їх не було.

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

Окремо про gzip: стиснута мапа менша в рази, і для каталогу на десятки тисяч URL це відчутна економія трафіку — як вашого, так і чужого обходу.

Типові помилки

У мапі є те, чого не має бути. Сторінки кошика, результати пошуку, службові фільтри. Вони не несуть цінності для пошуку й розмивають обхід.

Мапа суперечить robots.txt. Класика: URL є в sitemap і водночас закритий від обходу. Робот отримує дві протилежні вказівки.

Мапа не оновлюється. Зібрали один раз руками, каталог відтоді змінився втричі. Файл, що відстав на пів року, гірший за відсутній — він активно веде на неіснуючі сторінки.

У мапі товари, яких немає в наявності й не буде. Знята з продажу позиція має або віддавати 410, або зникнути з мапи. Інакше ви самі просите індексувати порожнечу.

Фасетні сторінки: коли фільтр стає посадковою сторінкою

Окремий випадок, який стосується саме магазинів. Фільтр «кросівки + чорні + 42 розмір» технічно породжує адресу, і таких комбінацій у каталозі — тисячі. Класти їх у мапу всі не можна: пошуковик отримає гори майже однакових сторінок, і жодна не виглядатиме важливою.

Але частина таких сторінок — справжні посадкові. «Чорні кросівки» — це попит, за яким люди шукають, і сторінка під нього варта індексації не менше за категорію.

Різниця між цими двома групами — кураторство. Магазин сам вирішує, які комбінації є осмисленими добірками, а які лишаються службовими станами фільтра. Куровані потрапляють у мапу, решта — ні. Автоматично цю межу не провести: вона проходить не по структурі даних, а по тому, чи є на цю комбінацію попит.

Тому в CommerCentr фасетні landing — не «усі комбінації», а явно позначений перелік. Це дрібніша робота, ніж здається: у більшості каталогів осмислених добірок десятки, а не тисячі.

Чого це не робить

Sitemap не піднімає позиції. Він впливає на швидкість знаходження, не на оцінку якості. Товар без опису й без ціни не почне ранжуватися від того, що потрапив у мапу.

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

І не гарантує індексації. Великий каталог індексується частково завжди; що саме візьмуть, залежить від якості сторінок, а не від файла.

Підсумок

Мапа сайту — інфраструктура, а не інструмент просування. Базовий рівень закриває головне: усі товари, категорії й статті в одному файлі, який оновлюється сам. Це те, що має бути в кожному магазині, і в CommerCentr воно безкоштовне.

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

Перевірте свій файл прямо зараз: відкрийте, порахуйте URL і звірте з кількістю товарів. Розрив у рази — найчастіша знахідка, і виправляється вона за вечір.

Подивіться також видимість для AI-агентів — там інший формат для інших читачів, — і GPSR і дані про товар, якщо продаєте в ЄС.