У кошику порожньо!
Дублі сторінок — це дві або більше URL із однаковим або майже ідентичним контентом. Google розмиває між ними PageRank і не знає, яку індексувати. Виправлення через canonical, 301 редирект або noindex — залежить від типу дубля. Нижче — повний чеклист з інструментами і кейсами CMS.
Зміст
- Що таке дублі і чому вони шкодять SEO
- Типи дублів: технічні, контентні, параметричні
- Як знайти дублі: Screaming Frog, Ahrefs, GSC
- Canonical — коли і як правильно використовувати
- 301 редирект проти canonical: що вибрати
- noindex для дублів — небезпечний інструмент
- Параметри URL: UTM, сортування, фільтри
- Дублі в CMS: WordPress, OpenCart, Magento
- Пагінація і дублі — поширена проблема
- Часті запитання
Що таке дублі сторінок і чому вони шкодять SEO
Дубль — будь-який URL, який повертає суттєво схожий або ідентичний контент до іншого URL на тому самому сайті. Google визначає дублі не лише за текстом: він порівнює title, description, основний контентний блок і структуру розмітки.
Проблема не в самому факті існування дубля — пошуковик уміє їх розпізнавати. Проблема в наслідках:
- Розмивання PageRank. Зворотні посилання можуть вести на різні версії одного URL — /page/, /page/index.html, /page?ref=nav. Вага ділиться між ними замість концентруватися на одній.
- Витрата краулінгового бюджету. Googlebot обходить дублі замість унікальних сторінок. Для великих сайтів із 50 000+ URL це критично.
- Невизначеність індексу. Google сам обирає, яку версію показувати — і часто це не та, яку ви хочете.
- Канібалізація позицій. Дві майже однакові сторінки конкурують за одні й ті самі запити, взаємно знижуючи одна одну.
У нашій практиці найчастіша причина втрати трафіку після переїзду сайту — саме неконтрольоване дублювання: старі URL лишалися доступними, нові додавалися, і обидві версії потрапляли в індекс з різними backlink-профілями.
Типи дублів: технічні, контентні, параметричні
Розуміння типу дубля визначає спосіб виправлення. Ось основна класифікація, яку ми використовуємо в аудитах:
| Тип дубля | Причина виникнення | Типовий прояв | Рішення |
|---|---|---|---|
| HTTP vs HTTPS | Неналаштований редирект після переходу на SSL | http://site.ua і https://site.ua обидва доступні | 301 редирект з HTTP на HTTPS |
| www vs non-www | Відсутність канонічного домену у налаштуваннях сервера | site.ua і www.site.ua — обидва відповідають 200 | 301 редирект + canonical |
| Трейлінг слеш | Сервер не нормалізує URL | /page/ і /page — різні URL | Нормалізація на рівні сервера + canonical |
| URL-параметри | Сортування, фільтри, UTM, session ID | /catalog?sort=price, /catalog?utm_source=fb | Canonical + налаштування GSC |
| Пагінація | Перша сторінка категорії доступна за двома URL | /blog/ і /blog/?page=1 — ідентичний контент | Canonical /blog/?page=1 → /blog/ |
| Мовні версії без hreflang | Одна сторінка доступна під різними мовними префіксами | /uk/page/ і /page/ — однаковий контент | hreflang + canonical для кожної версії |
| Контентні дублі | Копіювання контенту між сторінками категорій і тегів | /category/phones/ і /tag/smartphones/ — один контент | noindex на теги або canonical → категорія |
| Print-версії | CMS генерує /print/ або ?print=1 для кожної сторінки | /article/seo/ і /article/seo/print/ | noindex або canonical → оригінал |
Як знайти дублі: Screaming Frog, Ahrefs, GSC
Три джерела дають повну картину — краулер, зовнішній аудит і дані самого Google.
Screaming Frog SEO Spider (найшвидший старт):
- Запустіть краулінг: Configuration → Spider → увімкніть Store HTML і Check Hashes.
- Після краулу перейдіть до вкладки Duplicate Pages — тут зібрані URL з однаковим MD5-хешем контенту.
- Вкладка Page Titles → Duplicate покаже сторінки з однаковим title, навіть якщо контент трохи відрізняється.
- Вкладка Meta Description → Duplicate — додатковий сигнал.
Ahrefs Site Audit:
- Site Audit → Issues → у пошуку введіть duplicate.
- Зверніть увагу на: Duplicate pages, Duplicate titles, Pages with conflicting canonical.
- Відфільтруйте за HTTP-статусом 200 — це активні дублі, що краулиться.
Google Search Console:
- Indexing → Pages → у списку знайдіть причину «Duplicate without user-selected canonical» — Google сам обрав іншу версію.
- Причина «Duplicate, submitted URL not selected as canonical» — ви надіслали URL у Sitemap, але Google вибрав інший.
- Причина «Alternate page with proper canonical tag» — canonical спрацював правильно.
З нашого досвіду: при аудиті інтернет-магазину в ніші побутової техніки (2024 рік, ~8 000 сторінок) ми виявили 1 200+ дублів — переважно через комбінації фільтрів кольору і розміру. Після правильного налаштування canonical і GSC-параметрів органічний трафік виріс на 34% за 3 місяці, без жодних змін контенту.
Для великих сайтів (50 000+ URL) рекомендуємо починати з GSC — він показує фактичну поведінку Google, а не гіпотетичні проблеми краулера. Потім деталізувати Screaming Frog.
Повний аудит дублів з пріоритизацією та рекомендаціями по кожному типу — частина нашого технічного SEO-аудиту сайту.
Canonical — коли і як правильно використовувати
Canonical тег (<link rel="canonical" href="...">) — підказка для Google: «ця сторінка є копією, основна версія ось тут». Детальний розбір правил впровадження — у нашій статті про помилки і кращі практики canonical тегів.
Правила canonical, які не можна порушувати:
- Абсолютний URL: завжди вказуйте повний шлях, включаючи протокол —
https://site.ua/page/, не/page/. - Self-referencing canonical: на кожній унікальній сторінці canonical повинен вказувати на саму себе. Це захист від випадкового дублювання.
- Canonical ≠ noindex: не ставте noindex і canonical одночасно — це суперечливі сигнали. Google ігнорує canonical на noindex-сторінках.
- Canonical і hreflang: при мовних версіях canonical на кожній мовній сторінці повинен вказувати на саму себе (не на головну мовну версію), а hreflang — перехресно між версіями.
- Canonical у заголовку HTTP: для PDF і не-HTML ресурсів canonical можна передавати через HTTP-заголовок
Link: <URL>; rel="canonical".
Перевірити, яку версію Google вважає canonical, можна двома способами: у GSC (Indexing → Pages → вибрати URL → «Google-selected canonical») або через оператор пошуку info:site.ua/page/.
301 редирект проти canonical — що вибрати
Це питання виникає в кожному проєкті. Є чітке правило: якщо дублікат не повинен бути доступним взагалі — 301. Якщо дублікат має власну причину існувати (наприклад, підтримка старих посилань) — canonical.
| Критерій | Canonical | 301 Редирект | noindex | GSC-параметри |
|---|---|---|---|---|
| Тип сигналу Google | Підказка (рекомендація) | Директива (обов'язково) | Директива (не індексувати) | Підказка (для Googlebot) |
| URL доступний для користувача | Так | Ні (редирект) | Так | Так |
| Передача PageRank | Так (~100%) | Так (~99%) | Ні | Залежить від налаштування |
| Вплив на краулінг | Дублікат все ще краулиться | Googlebot слідує за редиректом | Краулиться, але не індексується | Googlebot може пропустити параметр |
| Коли використовувати | Параметричні URL, пагінація, версії друку | Переїзд сайту, злиття сторінок, HTTP→HTTPS | Службові сторінки адмінки, пошук по сайту | UTM, сортування, фільтри в каталозі |
| Ризик | Google може ігнорувати | Ланцюжки редиректів знижують швидкість | Випадкове блокування важливих сторінок | Застарілий інструмент, може зникнути з GSC |
| Складність впровадження | Низька (HTML-тег) | Середня (.htaccess / nginx) | Низька (meta robots) | Середня (GSC + перевірка) |
На практиці ми використовуємо такий алгоритм вибору: якщо є зворотні посилання на обидві версії — 301 редирект. Якщо дублікат генерується динамічно і не має посилань — canonical. Якщо сторінка взагалі не потрібна (наприклад, сторінка пошуку по сайту) — noindex.
noindex для дублів — небезпечний інструмент
Тег <meta name="robots" content="noindex"> прибирає сторінку з індексу, але не передає PageRank на іншу. Це головна пастка: ви можете «заховати» дубль, але всі посилання, що вели на нього, просто зникнуть у нікуди.
Коли noindex виправданий для дублів:
- Сторінки пошуку по сайту — /search?q=... з унікальним запитом не мають SEO-цінності і не отримують зовнішніх посилань.
- Сторінки кошика і checkout — не повинні індексуватися взагалі.
- Технічні службові сторінки — /wp-admin/, /cart/, /account/ у WordPress.
- Теги з дублюючим контентом — якщо тег повністю повторює категорію і не отримує трафіку.
Коли noindex — помилка:
- Для сторінок пагінації — краще canonical або дозволити індексацію.
- Для категорій з фільтрами, що мають зовнішні посилання.
- Для будь-яких сторінок, на яких є цінні backlinks.
Параметри URL: UTM, сортування, фільтри — як закрити
Параметри URL — найпоширеніше джерело тисяч дублів на сайтах електронної комерції. Один каталог із 10 фільтрами і 3 варіантами сортування дає 30+ URL з ідентичним або майже ідентичним контентом.
Типи параметрів за впливом на контент:
- Не змінюють контент: utm_source, utm_medium, utm_campaign, ref, affiliate_id, fbclid, gclid. Завжди закривати.
- Змінюють порядок, але не склад: sort=price, order=asc, view=grid. Canonical на базовий URL без параметра.
- Змінюють контент суттєво: color=red, size=xl, brand=samsung. Можуть мати SEO-цінність — аналізувати окремо.
- Технічні: sid=, sessionid=, phpsessid=. Завжди закривати, бажано блокувати генерацію на рівні CMS.
Три способи закрити параметричні дублі:
- Canonical на кожній параметричній сторінці — вказує на базовий URL. Найпростіший варіант для UTM і session ID.
- GSC URL Parameters (Legacy tools) — вкажіть Google, що параметр не змінює контент. Працює лише для Googlebot, не для Bing.
- Блокування у robots.txt —
Disallow: /*?sort=. Найжорсткіший варіант, але зупиняє краулінг повністю.
Наш рекомендований підхід: canonical — основний інструмент, GSC-параметри — додатковий, robots.txt — крайній захід для session ID і технічних параметрів, які ніколи не повинні краулитися.
Дублі в CMS: WordPress, OpenCart, Magento — типові кейси
Кожна CMS генерує специфічні типи дублів. Знати їх наперед — половина роботи аудитора.
WordPress:
- Дублі архівів: /category/news/, /tag/seo/, /author/admin/ — всі можуть показувати ті самі пости. Вирішення: Yoast SEO або RankMath → noindex на теги і автора.
- ?p=123 і permalink: WordPress зберігає цифровий ID паралельно з ЧПУ. Переконайтесь, що ?p=123 редиректить на permalink.
- Feed-сторінки: /feed/, /comments/feed/ — технічні дублі. Yoast → Search Appearance → вимкнути індексацію feeds.
- Attachment pages: для кожного зображення WordPress створює окрему сторінку /wp-content/... з мінімальним контентом. Yoast → Media → Redirect attachment URLs to the attachment itself.
OpenCart:
- ?route= і SEO URL: OpenCart за замовчуванням генерує два URL для кожної сторінки. Переконайтесь, що в налаштуваннях увімкнені SEO URL і ?route= редиректить на ЧПУ.
- Сторінки пошуку: /index.php?route=product/search&search=... — тисячі унікальних URL. Закрийте через robots.txt:
Disallow: /index.php. - Пагінація категорій: /category/?page=1 і /category/ — додайте canonical на кожній сторінці пагінації.
- Варіанти товарів: якщо варіанти мають окремі URL — canonical з кожного варіанта на головний товар.
Magento:
- Store views: якщо різні store views дають однаковий контент, обов'язково налаштуйте canonical для кожного view.
- Layered navigation: фільтрація товарів генерує комбінаторні URL. У Magento 2 є вбудований canonical для категорій — перевірте в Catalog → SEO.
- /m/ мобільна версія: якщо сайт має окрему мобільну версію на /m/ — hreflang + canonical, або об'єднайте в адаптивний дизайн.
Пагінація і дублі — поширена проблема
Пагінація — один із найчастіших джерел дублів, і одночасно одне із найбільш неоднозначних питань SEO. Після того як Google відмовився від підтримки rel="prev/next" у 2019 році, стандартний підхід змінився.
Що Google рекомендує зараз: дозволити індексацію всіх сторінок пагінації, якщо вони мають унікальний контент (різні товари або статті). Google сам об'єднає їх у кластер і ранжуватиме першу сторінку за загальними запитами, а конкретні — за запитами, що відповідають контенту конкретної сторінки.
Де виникає справжня проблема з пагінацією і дублями:
- /category/ і /category/?page=1 — ідентичні сторінки. Вирішення: canonical з /category/?page=1 → /category/ або 301 редирект.
- Пусті сторінки пагінації — наприклад, /category/?page=50 при 30 сторінках повертає 200 з пустим контентом. Налаштуйте 404 або 301 на останню сторінку.
- Пагінація з параметрами сортування — /category/?page=2&sort=price і /category/?page=2&sort=name — два URL з майже однаковим контентом. Canonical на /category/?page=2 без параметра сортування.
Кейс з нашої практики: інтернет-магазин меблів мав 520 сторінок пагінації для категорії «Дивани». Перша і ?page=1 дублювалися. Ще 15 сторінок після останньої реально поверталися зі статусом 200. Після виправлення (canonical + 404 для порожніх) краулінговий бюджет скоротився на 18%, і Google почав швидше краулити нові товари.
Детальніше про технічний аудит і виявлення подібних проблем — у нашому покроковому гайді з технічного SEO-аудиту.
Офіційна позиція Google щодо консолідації дублів URL описана в документації для вебмайстрів.
На практиці
До нас звернулося українське новинне медіа з аудиторією близько 2,5 млн унікальних відвідувачів на місяць. Сайт працював на кастомній CMS і публікував матеріали паралельно двома мовами — російською (/ru/) та українською (/uk/). Проблема виявилася під час аудиту GSC: 1 800 статей існували в двох мовних версіях без жодного canonical і без hreflang. Google індексував обидві версії хаотично — іноді в індекс потрапляла російська, іноді українська, без жодної логіки.
Screaming Frog підтвердив: 74% україномовних URL значилися в GSC як «Duplicate without user-selected canonical».
Роботу проводили у два етапи. Спершу через Ahrefs Site Audit визначили, яка версія кожної статті має більше посилальної ваги — вона ставала основою для self-referencing canonical. Потім розробники впровадили шаблонну генерацію hreflang: кожна /ru/-версія отримала атрибут hreflang="ru" і перехресне посилання на /uk/, і навпаки. Паралельно прописали canonical на кожній мовній сторінці, що вказував на саму себе.
GSC почав коректно розпізнавати мовні пари через 11 днів після переобходу. За 7 тижнів видимість україномовних статей у пошуку зросла на 90% за даними Ahrefs — без публікації нового контенту, лише завдяки усуненню невизначеності для Googlebot.
Ключовий висновок цього проєкту: для двомовного сайту canonical і hreflang — не взаємозамінні інструменти, а обов'язкова зв'язка. Canonical без hreflang не пояснює Google мовну логіку. Hreflang без canonical залишає вибір версії за пошуковиком — і він його робить непередбачувано.
Часті запитання
Що буде, якщо не виправити дублі сторінок?
Google розмиє ваговий сигнал між дублями — жодна з версій не займе хорошу позицію. Краулінговий бюджет витрачатиметься на зайві сторінки, а поведінкові метрики погіршаться через неконсистентні URL у зворотних посиланнях.
Чи може canonical не спрацювати?
Так. Google сприймає canonical як підказку, а не директиву. Якщо дублікат отримує більше посилань або кращі поведінкові метрики, пошуковик може ігнорувати canonical. У таких випадках потрібен 301 редирект.
Як швидко Google реагує на додавання canonical?
Зазвичай від 1 до 4 тижнів після наступного краулу. Перевірити статус можна в Google Search Console: розділ Indexing — Pages — вибрати причину «Alternate page with proper canonical tag».
Чи потрібен canonical на кожній сторінці?
Рекомендовано. Навіть на унікальних сторінках self-referencing canonical захищає від випадкового дублювання через UTM-параметри, сортування чи session ID, які можуть дописуватися зовнішніми сервісами.
Є дублі — є втрачений трафік
Дублі сторінок — тихий вбивця SEO-позицій. Часто власники сайту не підозрюють про сотні або тисячі дублів, що з'являються автоматично через CMS або UTM-розмітку. Ми проводимо повний технічний аудит і знаходимо дублі всіх типів — від HTTP/HTTPS до параметричних URL у каталозі.
SEO-аудит дублів та канонізації · SEO-просування сайту
Дізнайтесь більше про виявлення технічних проблем у нашій статті про роботу з Google Search Console.


