Пагінація сторінок для SEO: Про що мовчить Google і як бути з тайтлами

Давно назрівала необхідність написати у блозі щось свіже та цікаве. Як буває нерідко, життя саме підкинуло тему цікаву, ще й актуальну. І як буває майже так само часто, спочатку гупнуло об неї чолом, потім заставило попотіти, а потім, майже втративши надію і опустивши руки додолу, ми зустріли добру людину, повернули собі надію, віру в добрих людей і зрозуміли, що певно все у нас всіх буде окей. Попутно знайшли тему для поста, яка мало висвітлена у Мережі (це як раз стосовно “Про що мовчить Google” – ви ж не сподівались що ми прозкриємо всесвітню змову). І яка – а раптом – стане комусь у пригоді. А гупнуло нас об SEO-оптимізацію сторінок пагінації.

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

Питання не нове, обсмоктане на форумах/сайтах/блогах до кісточок, а ось, виявляєть, ще не втратило потенціал завдавати головного болю. Майже впевнений, ви знаєте, коли ми розбиваємо велику сторінку на сторінки пагінації (1-а, 2-а… n-а), виникають проблеми з дублями. Це стосується, наприклад, великих категорій інтернет-магазинів.

В категорії “Ноутбуки для роботи” – 1000 і 1 модель. Завантажувати всі тисячу і одну на сторінку – не юзер-френдлі і збільшує час завантаження. Не юзер-френдлі Google, можливо, переживе, а от за повільну швидкіть накаже. Тому розбиваємо категорію з 1001 ноутбука на сторінки по 20 / 30 / n ноутбуків, вирішуємо проблему юзабіліті і безпосередньо переходимо до головного болю з SEO.

По-перше, якщо ми оптимізуємо категорію (“сеошимо”, як каже один мій клієнт) ще якимось SEO-текстом, то повторивши його на кожній сторінці пагінації, отримаємо дубль контенту майже у еталонному вигляді (і зразу товкачкою по голові від Гугла). 99 з 100 читачів цього поста повинні це знати, але, якшо ви той один, не забудьте глянути і забрати SEO-текст з усіх сторінок пагінації крім першої.

Друге – дублі мета (тайтлів/дескрипшенів), якщо сторінки пагінації мають ті самі мета, що й головна розділу. В принципі, вирішується унікалізацією тайтлу кожної сторінки пагінації додаванням до нього “Сторінка 1”, “Сторінка 2” і т.д. Або “Страница 1”, якщо вам так більше до душі.

Але в цілому розбиті сторінки пагінації містять доволі небагатий з точки зору SEO контент. А ще досить неунікальний з тїєї точки зору, що всі продають ті самі ноути. І в усіх в категорії “Ноутбуки для роботи” практично той самий перелік. То як виділитися у цьому морі однакових категорій “Ноубки для роботи”? Правильно – за допомогою отого унікального, ще й дуже “просеошеного” тексту (не так вже і дуже, бо на дворі 2017 рік, і за сеоінг і стаффінг можна отримати вже згадуваною товкачкою).

Ну от і маємо звичайну річ для світу SEO – дилему. Без SEO-тексту контент досить біденнький, ще й неунікальний. З SEO-текстом – взагалі дубль. Проблема давня, багато про це писано. Хлопці з “Сеопрофі” постарались і підготували великий пост, ще й з інфографікою, про 4 можливих варіанти вирішення – https://seoprofy.ua/blog/optimizaciya-sajtov/pagination-for-seo

І ми з нього почали. Та, як виявилось, всієї потрібної нам інформації у ньому не виявилось (що не відміняє велике “Дякую” Сеопрофі за роботу). Якщо захочете, самі почитаєте пост, а в двох словах суть варіантів така.

1) Закриваємо через “ноуіндекс, фолоу” від гріха все крім першої сторінки. Класно, просто, “мнє нравітся”. Але є одне АЛЕ… Оті посилання на сторінки пагінації “1”, “2”, “3” … будуть вести на неіндексовані сторінки. І працювати як чорні дірки, які за звичаєм чорних дірок будуть зливати вагу у безодню Всесвіту. Простіше кажучи, в нікуди. Можливо, не така і біда. Та й ПейджРенк вже не має тієї ваги, як коли Google був ще молодим, кудрявим (так взагалі можна сказати?), милим хлопчиком. Коли ж це було – ніби 100 років тому. Але коли ви б’єтеся за кожнен перегляд, за кожен щабель у ТОПі (а у конкурентних нішах інакше і не буває – а у нас конкурентна ніша), це може зіграти. Відмовились.

2) Слідуємо рекомендаціям Гугла. Ох ці рекомендації Гугла. На думку когось впливового у Всесвітній Корпорації Добра/Зла (потрібне підкреслити) люди люблять переглядати одразу усі варіанти на одній сторіці (терпіти не можу “переглядати одразу усі варіанти на одній сторіці”). Тому Google радить/рекомендує/наказує (потрібне підкреслити) робити одну загальну сторінку домен.ком.уа/компьютери-для-роботи/сі-олл. А також розбивати окремо категорію на пагінацію, і на кожній сторінці пагінації вказувати канонічну сторінку /сі-олл через < link rel=”canonical” href=”домен.ком.уа/компьютери-для-роботи/сі-олл” /> Ось посилання на джерело – https://support.google.com/webmasters/answer/1663744?hl=ru.

Моя особиста філософія – якщо Google кудись вказує, ідіть туди і не мастіть собі голову, куди потрапите. Але у данному випадку знову ж таки, як ви здогалались, було АЛЕ. Якщо сторінок пагінації небагато – скажімо у вас 60 ноутбуків, по 20 на сторінку = 3 сторінки – то це досить робоче рішення. Рекомендують до 20 сторінок, але і це багато, як ми переконались. Сторінка /сі-олл стає неповороткою, важкою, грузиться довго, а крім того це ще і зайвий трафік на сервері. На щастя є третій варіант.

3) Альтернативна рекомендація Гугла, на якій ми врешті решт зупинилися. Замість створювати сторінку сі-олл і “приліплювати” до неї через канонікал сторінки пагінації, можно просто самі сторінки пагінації злити в одну додаючи на кожну теги “prev”/“next”. Досить красиве, елегантне рішення:

  • на першій сторінці пагінації додаємо тег  і ствроюємо гачок, на який “підчепимо” другу сторінку;
  • на другій сторінці розміщуємо два теги:

< link rel=”prev” href=”http://домен.ком.уа/компьютери-для-роботи/” >

< link rel=”next” href=”http://домен.ком.уа/компьютери-для-роботи/page3/” >

Тут тонкий момент, з яким стикнулись. В теорії перший тег “prev” має вести на /page1/. Але за цією схемою у якості page1 виступає основна сторінка каталогу – /компьютери-для-роботи/. Бо, якщо була б сторінка /компьютери-для-роботи/page1/, вона б повністю дублювала сторінку /компьютери-для-роботи/. І коли умовно “склеїти” всю пагінацію в одну сторінку, то ми б отримали такий вінігрет: контент /компьютери-для-роботи/ -> повністю такий самий контент /компьютери-для-роботи/page1/ -> далі додається контент /page2/ -> /page3/ -> і т.д. Для чого це потрібно? Ми вирішили – ні для чого, і “вилучили page1 з обігу”. Тобто сторінки склеюються таким чином:

/компьютери-для-роботи/ -> /компьютери-для-роботи/page2/ -> /компьютери-для-роботи/page3/ -> … -> /компьютери-для-роботи/page-n/

  • на n-ній сторінці, як ви зрозуміли, буде тільки один тег:

Як було сказано, красиве рішення, проте, по-перше, треба залучити мінімум логічного мислення, щоб його усвідомити і реалізувати. Бо якщо десь припуститись помилки, то настане те, ще на сторінці підтримки Гугла сформульовано, як:

Если Google обнаружит ошибки в вашей разметке (например, если отсутствует ожидаемое значение атрибута rel="prev" или rel="next"), дальнейшее индексирование страниц и распознавание содержания будет выполняться на основе собственного эвристического алгоритма Google.

Аж страшно собі уявити, що це значить.

А по-друге, і Гугл про це мовчить (він і повинен мовчати, йому до інших байдуже), це не сприймається Яндексом, як директива. Так, так, ми ще маємо на увазі Яндекс. Хоч його частка в Україні і до того була невелика, а тепер зменшилася ще. Все ж вона достатньо вагома в отій битві за кожен перегляд. То ж Яндекс на ці теги не зважає, а отже бачить дублі контенту.

Про рішення зовсім скоро, а поки четвертий варіант.

Отже 4). Просто вивести все на одній сторінці через JavaScript прокрутку. Тобто після перших 20 ноубуків додаємо кнопку “Завантажити ще” і по кліку підгружаємо через ще 20 одиниць. Потім ще 20. І аж до кінця прайсу.

Отже з теоретичними передумовами все. На практиці спочатку замовник дав відмашку “Дєлать полний шарш”, і ми вирішили зробити і за рекомендаціями Гугла, і юзер-френдлі. Виводити на першій сторінці першій сторінці всі одиниці, плюс додавати кнопки на пагінацію “1”, “2”, “3” і т.д. (Хай юзер сам визначає зручний спсоіб навігації.) На сторінках пагінації вказувати першу, як канонічну. А щоб перша не грузилась надто довго, виводити усі елементи по 20 через ту саму Джаваскрипт-прокрутку. Отут і почалося, що інакше як “просто празднік какой-то” не назвеш.

Якщо виводити кожні наступні 20 одиниць через AJAX, то початково у ДОМ вони не існують, а підгружаються через новий запит. І відповідно дана сторінка може не відповідати шаблону сі-олл. Якщо ж виводити одразу всі, але ховати їх першопочатково, і робити видимими лише по кліку через стилі, то нічого по швидкості ми не виграємо. Все рівно воно повинно все завантажитись, і аж після останнього елементу Гугл класне секундоміром і скаже “Все, сторінка завантажена”.

Звичайно, Гугл вже вміє копирсатися у джаваскриптах. То ж міг би і встановити, що при АДЖАКС-прокрутці ми маємо канонічну сторінку сі-олл. Або при другому варіанті можна було погратись зі способом виведення картинок (вони основні гризуть трафік) і виводити тільки теги зображень, а самі ресурси підвантажувати по кліку. І ви це можете спробувати. Але тут замовник дав другу відмашку “дєлать нє полний фарш”, і ми перейшли до варінту 3.

Він дійсно досить красивий. Руки вже тягнулись відкорковувати шампанське, як на обрії чорною хмарою стало питання – що робити з тайтлами. І тут “празднік” досяг свого апогею. Бо Гугл про це скромно, знову ж, таки мовчить. А в решті джерел скільки авторів, стільки варіантів відповіді. З грубшого три основних:

  1. Виводити на всіх сторінках пагінації один той саймий. До якого спершу схилялись і ми, бо це здавалось логічним. Якщо всі сторінки пагінації через прев/некст зводяться в одну, тобто є чатками умовної загальної сторінки, то і тайтл вони повинні мати, як ціла сторінка. Бо інакше друга сторінки при “зведенні” приносить із собою тайтл “Контент основного тайтлу. Сторінка 2”. Третя – “Контент основного тайтлу. Сторінка 3” і т.д. А навіщо на одній зведеній сторінці декілька різних тайтлів? Не переконались ще в цьому остаточно, та здається логіка ця хибна.
  2. Унікалізувати через ті самі додатки Сторінка 2Сторінка 3Сторінка 4.
  3. Виводити тільки на першій, а з решти забрати від гріха. І ми так вирішили робити згодом. Логіка така – це може і не допоможе, але і не зашкодить. (Можливо, логіка сумнівна, а бек-ендщик – ми були підрядниками тільки по SEO – взагалі висловився в сенці “Ви что, одурєлі, кто так дєлает!?” Майже як у незабутнього Семена Фаради: “Кто так строит!?”).

І ламали б ми голову над цим питанням до сих пір, якби не хороша людина з форуму підтримки того ж Гугла (велике їй “Дякую”) просто не сказала “Хлопці, робіть так, так і так. І буде у вас все прєвосходно”. А саме – і це вже наше рішення, на якому не наполягаємо, але готові вислухати критику (і заради якого увесь сир бор):

  • Незалежно від того, вибираємо варіант canonical чи prev / next унікалізуємо мета – додаємо до тайтлів / дексрипшенів “Сторінка 1”, “Сторінка 2”. Цього достатньо. Логіка наскільки розумію така – це хоч пов’язані, та все ж окремі сторінки. Дублі навіть на пов’язаних сторінках – вони і є дублі.
  • Під Яндекс, якщо ми використовуємо варіант prev/nex ми повинні закрити від індексації сторінки пагінації. Яндекс на ці теги не зважає, тому буде розглядати контент сторінок пагінації, як дубль. Для цього, знову ж таки, є два способи.

Перший трохи елегантнійший, але технічно складніше реалізується:

На всі сторінки пагінації, крім першої, ми додаємо тег < meta name=”robots” content=”noindex, follow” />. noindex – щоб Яндекс не індексував сторінки (дублі на його думку), follow – щоб переходив по посиланнях і сканував сторінки окремих елементів, які, як правило, “прив’язані” до головної тільки через категорії, і у протилежному випадку можуть перетворитись на сторінки-“сироти”, не пов’язані з головною жодним посиланням.

А окремо для Гугла додаємо < meta name=”googlebot” content=”index, follow” />, щоб він розумів, що наведена вище директива стосується всіх, крім нього, а його ми із задоволенням запрошуємо індексувати контент.

Другий – трохи ламерський, але зато технічно простий.

У файл robots.txt всього лише додаємо код:

User-Agent: Yandex
Disallow: /*?PAGE=

, де ?PAGE= це шаблон, який використовує ваша платформа для пагінації. (Ми ж пам’ятаємо, що перша сторінка вона ж у нас і головна розділу, і не має в УРЛі цього суффіксу. А отже не підпаде під дію цього правила.)

Оце і є рішення, до якого ми дійшли через терни. Бо такий вже він шлях SEO – важкий, тернистий, але прекрасний (ще й іноді по’язаний із відкорковуванням шампанського).

У таких випадках прийнято писати щось на кшталт “Сподіваюся Вам сподобався пост і ви поділитеся посилання з друзями”. Але я лише висловлю вам подяку і захоплення вами за те, що ви дочитали його до кінця. Попрошу вибачення за те, що він вийшов ду-у-уже довгий. І попрошу написати все критичне, що у вас на думці. Крім конструктивної критики приймаються будь-які думки. Бо просто конструктивна критика, то не дуже цікаво.

І хай у вас все буде добре. Та й у всіх нас. А також – May the SEO be with you!

 

Поділитись