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 і розклад. Файли віддаються стиснутими, а перезбирання відбувається саме — після зміни каталогу не треба нічого натискати.
Як перевірити, що все справді працює
Порядок, який займає п'ять хвилин і ловить більшість помилок.
- Відкрийте
https://ваш-магазин/sitemap.xml— файл має віддаватися без пароля й без редиректу. - Порахуйте URL. Якщо в каталозі 4000 товарів, а в мапі 300 — щось не потрапляє: чернетки, товари без ціни, ціла категорія.
- Перевірте самі адреси. Вони мають бути канонічними: той самий домен, той самий протокол, без службових параметрів. URL, що веде на редирект, витрачає обхід намарно.
- Здайте файл у панель вебмайстра й через кілька днів подивіться, скільки з поданого проіндексовано. Розрив у рази — привід дивитися на самі сторінки, а не на мапу.
- Після великого імпорту перевірте
lastmod. Якщо дати не оновились, робот вважатиме сторінки незміненими.
Що таке lastmod і чому його варто ставити чесно
У кожного URL є необов'язкове поле «дата останньої зміни». Спокуса очевидна: проставити всім сьогоднішнє число, щоб пошуковик «перечитав усе». Так робити не варто, і причина практична.
Робот звіряє заявлену дату з тим, що бачить на сторінці. Якщо мапа щодня каже «оновлено», а вміст не змінюється місяцями, поле просто перестають враховувати — для всього сайту. Ви втрачаєте єдиний спосіб сказати «ось ця картка справді змінилась, перечитайте її першою».
Чесний lastmod найкорисніший саме у великому каталозі: після імпорту цін чи переписування описів він показує, які з десяти тисяч сторінок варті уваги зараз. Тому в CommerCentr дата береться з самої сутності, а не з моменту збірки файла — інакше кожна регенерація «оновлювала» б увесь каталог.
Скільки це коштує сайту
Питання, яке виникає в кожного власника великого магазину: чи не покладе генерація мапи сайт.
Ні, і причина в тому, як файл віддається. Мапа збирається заздалегідь і лягає на диск статичним файлом. Коли робот її запитує, PHP не виконується взагалі — веб-сервер віддає готовий файл, як картинку. Тобто вартість запиту для сайту нульова, скільки б їх не було.
Навантаження виникає лише в момент перезбирання, і воно разове. Тому регенерацію ставлять за розкладом у нічний час, а не на кожну зміну товару: каталог, що змінюється сто разів на день, не потребує ста перезбирань.
Окремо про gzip: стиснута мапа менша в рази, і для каталогу на десятки тисяч URL це відчутна економія трафіку — як вашого, так і чужого обходу.
Типові помилки
У мапі є те, чого не має бути. Сторінки кошика, результати пошуку, службові фільтри. Вони не несуть цінності для пошуку й розмивають обхід.
Мапа суперечить robots.txt. Класика: URL є в sitemap і водночас закритий від обходу. Робот отримує дві протилежні вказівки.
Мапа не оновлюється. Зібрали один раз руками, каталог відтоді змінився втричі. Файл, що відстав на пів року, гірший за відсутній — він активно веде на неіснуючі сторінки.
У мапі товари, яких немає в наявності й не буде. Знята з продажу позиція має або віддавати 410, або зникнути з мапи. Інакше ви самі просите індексувати порожнечу.
Фасетні сторінки: коли фільтр стає посадковою сторінкою
Окремий випадок, який стосується саме магазинів. Фільтр «кросівки + чорні + 42 розмір» технічно породжує адресу, і таких комбінацій у каталозі — тисячі. Класти їх у мапу всі не можна: пошуковик отримає гори майже однакових сторінок, і жодна не виглядатиме важливою.
Але частина таких сторінок — справжні посадкові. «Чорні кросівки» — це попит, за яким люди шукають, і сторінка під нього варта індексації не менше за категорію.
Різниця між цими двома групами — кураторство. Магазин сам вирішує, які комбінації є осмисленими добірками, а які лишаються службовими станами фільтра. Куровані потрапляють у мапу, решта — ні. Автоматично цю межу не провести: вона проходить не по структурі даних, а по тому, чи є на цю комбінацію попит.
Тому в CommerCentr фасетні landing — не «усі комбінації», а явно позначений перелік. Це дрібніша робота, ніж здається: у більшості каталогів осмислених добірок десятки, а не тисячі.
Чого це не робить
Sitemap не піднімає позиції. Він впливає на швидкість знаходження, не на оцінку якості. Товар без опису й без ціни не почне ранжуватися від того, що потрапив у мапу.
Він не замінює внутрішньої перелінковки. Сторінка, на яку не веде жодне посилання з сайту, виглядає для пошуковика неважливою — і мапа цього не компенсує.
І не гарантує індексації. Великий каталог індексується частково завжди; що саме візьмуть, залежить від якості сторінок, а не від файла.
Підсумок
Мапа сайту — інфраструктура, а не інструмент просування. Базовий рівень закриває головне: усі товари, категорії й статті в одному файлі, який оновлюється сам. Це те, що має бути в кожному магазині, і в CommerCentr воно безкоштовне.
Платний рівень потрібен, коли каталог упирається в ліміт стандарту, коли товар продають фотографії, або коли магазин говорить кількома мовами. Поза цими трьома випадками доплачувати немає за що — і чесніше сказати це прямо, ніж продавати «розширену мапу» всім підряд.
Перевірте свій файл прямо зараз: відкрийте, порахуйте URL і звірте з кількістю товарів. Розрив у рази — найчастіша знахідка, і виправляється вона за вечір.
Подивіться також видимість для AI-агентів — там інший формат для інших читачів, — і GPSR і дані про товар, якщо продаєте в ЄС.