Тонкощі SEO на Drupal: як ми оптимізовуємо ваш сайт

SEO drupal

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

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

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

Все, що стосується посилань

1) "Людяні" посилання

Задача: сучасні пошукові системи вміють читати текст прямо з посилань сторінок, тому правильно ставити посилання на свої матеріали у вигляді так званих "людино-зрозумілих" лінків.

Path - в базовому пакеті Drupal вже міститься цей модуль, що дозволяє створення синонімів для сторінок. Тобто, для зразку, вашій ноді "Наші продукти" не обов'язково мати лінк типу "/node/25". Якщо цей модуль увімкнено, ви можете перейменувати посилання на ноду у формі створення чи редагування на щось типу "/our-products".

Pathauto - якщо у вас велика кількість однотипних матеріалів (каталог, магазин тощо), цей модуль допоможе вам створювати посилання автоматично на основі інформації про ноду (наприклад, на основі заголовку - title.

Transliteration - якщо ваш сайт використовує кирилицю, вам потрібен цей модуль. Він перетворює кириличні заголовки в трансліт перед підстановкою їх в посилання. Тобто, заголовок типу "Наші продукти" перетвориться у посилання "/nashi-producty".

Token - модуль "шаблонів", який потрібен для роботи Pathauto. Він дозволяє використовувати шаблонні підстановки для створення лінків. Тобто, якщо у вас є тип контенту "Телефони" з машинним іменем "phones" і в ньому створений матеріал із заголовком "САТ В2", то ви можете використати правило типу "producst/[node:content-type:machine-name]/[node:title]" і автоматично отримаєте посилання "producst/phones/cat-b2" для свого матеріалу.

2) Карта сайту

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

XML sitemap - найкращий, на нашу думку, модуль, який згенерує для вас якісну карту сайту. Даний модуль має кілька дуже корисних налаштувань (див. сторінку налаштування модуля в адмінці):

- рекомендуємо вибрати найвищий пріорітет для головної сторінки, для інших можна 0,5 (normal);
- поставте час оновлення карти сайту "1 день" - цього буде достатньо;
- відмітьте галочками всі необхідні типи матеріалу, які хочете включити в карту;

Після збереження перегенеровуємо карту. Далі вона буде оновлюватися автоматично. Стандартно карта знаходиться за адресою http://your-site/sitemap.xml - рекомендуємо додати її в панелі для веб-майстрів пошукових систем.

3) Дублі сторінок

Задача: в Drupal для кожної ноди створюються адреси наступного виду:
- http://your-site/node/num - де номер ноди проставляється автоматично;
- http://your-site/?q=node/num - якщо вимкнено модуль Path
- http://your-site/some-node-title - якщо користувач сам задав посилання чи воно було сформовано автоматично модулем Pathauto;
- а ще є сторінок зі слешем «/» - тобто "http://your-site/some-node-title" і "http://your-site/some-node-title/" - це дві різні машинні адреси.

Тобто, виходить, що одна і та сама нода одночасно доступна за чотирма адресами, а це - потенційні дублі (що не дуже добре) для пошукових систем. Потрібно залишити тільки один вид посилань - користувацький. Щоб вирішити цей недолік, варто створити "301 редиректи" з перших двох варіантів на останній.

Global Redirect - цей модуль автоматично зробить всі необхідні 301 перенаправлення для усіх сторінок сайту. Зазвичай його налаштування є оптимальними уже після встановлення, тож переважно змінювати їх немає потреби.

4) WWW-редирект

Задача: за замовчуванням більшість сайтів доступні як за адресою з www, так і без нього. Зазвичай пошукові машини самостійно визначають основне дзеркало, тим не менш, рекомендується вказати його явно, щоб раз і на завжди закрити це питання. Для цього необхідно внести зміни в файлі .htaccess (в корені Drupal) - там вже є необхідний код, який просто слід розкоментувати і налаштувати під себе.

Якщо вам потрібен www, приберіть коментарі (значки #) в файлі .htaccess в наступному блоці коду (два останні рядки): 

# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# uncomment the following:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Якщо вам потрібна адреса без www, приберіть коментарі (значки #) з коду нижче (два останні рядки):

# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment the following:
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]

Правила для роботів

Задача: пошуковик може пройтися по системних сторінках чи каталогах і проіндексувати їх. Тому, треба явно вказати пошуковій машині, що їй треба індексувати, а що не варто. Для цього треба правильно налаштувати файл robots.txt.

RobotsTxt - модуль, який допоможе з цією задачею - генерує файл robots.txt, в якому можна дозволяти чи забороняти пошуковикам доступ до певних сторінок вашого сайту. Однак, для того, щоб досягнути гарного результату, вже згенерований robots.txt треба допрацювати вручну.

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

User-agent * - значить, що зазначеним правилами мають користуватися всі пошукові роботи. 

В самому кінці файлу дописати 
Sitemap: http://www.your-site.com/sitemap.xml 
- це явно вкаже роботам, де шукати карту сайту.

Сторінки помилок

Задача: Коли користувач намагається пройти за адресою, якої немає на сайті або доступ до якої йому заборонено, сервер рапортує про про помилку (404 і 403 відповідно). Дехто перенаправляє користувачів з неіснуючих сторінок на головну і т.п., але варто явно донести як до відвідувача, так і до пошукового робота, що такої сторінки нема взагалі.

У розділі "конфігурація" можна налаштувати, які сторінки будуть демонструватися при отриманні помилок 403 і 404. Можна заздалегідь оформити гарні сторінки з повідомленнями про помилку і вказати їх адреси.
 

Правильні мета-теги

Задача: про мета-теги чули певно всі - з них пошуковики черпають основну інформацію про сайт. Тому необхідно їх грамотно і коректно заповнювати.

Metatag - дуже корисний модуль для роботи з мета-тегами. Дозволяє налаштувати автозаповнення тегів title, meta description, meta keywords тощо. Модуль дозволяє використовувати шаблони підстановок, тож можна автоматично зробити теги унікальними та релевантними для кожної сторінки.

Якщо ви хочете, щоб ваш сайт правильно взаємодіяв із соціальними мережами (напр. для крос-постингу нових матеріалів тощо), слід використати розмітку Open Graph - протокол тегів для соціальних мереж. Модуль Metatag підтримує і її також.

Також рекомендуємо вставити наступний код в файл template.php вашої теми - він прибере непотрібні нам теги типу  <meta content="Drupal 7 (http://drupal.org)" name="Generator" /> :

function НазваТеми_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
 
}

Тут "НазваТеми" треба замінити відповідно на назву шаблону, який модифікується - таким самим, як і назва паки, де знаходяться файли теми.

 

Заголовки і розмітка

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

Page Title - дуже гарний модуль для автоматичного генерування дуже важливого для SEO тегу - <title>. Він дозволить створити унікальні релевантні заголовки сторінок автоматично за допомогою шаблонів підстановки: напр., використаємо правило [current-page:page-title] | [site:name] і отримаємо заголовок сторінки "Назва статті | Назва сайту".

Menu Breadcrumb - зручний модуль для каталогів з розгалуженою структурою вкладень. Він додає «хлібні крихти» для всіх пунктів меню, будь-яких рівнів і типів вкладеності. Таким чином посилання, які мали різний ступінь вкладеності від кореня сайту, перетворюються на посилання одного рівня.

Word Link - зручний модуль для створення внутрішніх крос-лінків. Дозволяє шукати обрані слова за типами вмісту і автоматично проставляє на них відповідні посилання (по типу Вікі).

 
Медіа-контент

Задача: Пошуковики прекрасно індексують картинки та інші медіа-ресурси, при цьому, розпізнавати їх вони не вміють, і що знаходиться на зображенні визначити не можуть. Тому до картинок варто додавати теги Alt і Title для правильної індексації.

ImageField Tokens - даний модуль автоматично генерує атрибути атрибути alt і title в картинках нод, що впливає на релевантність контенту і значно економить ваш час.

Media Sitemap - модуль генерує файл image_sitemap.xml. Це дозволить зображенням з вашого сайту швидше потрапити в пошукову видачу за релевантними запитами.

 

Швидкодія

Задача: сучасні користувачі визнають тільки швидкісний інтернет, ніхто не хоче чекати по півгодини, поки завантажиться сторінка. Пошуковики про це знають і використовують показник швидкості завантаження сторінки у формуванні рейтингу пошукової видачі. Існує багато думок, яка швидкість є оптимальною, але загалом все зводиться до приблизно наступного: сторінка завантажується менше ніж за 1,5 секунд - це добре, це швидко, а все інше - надто повільно. Отож, треба слідкувати, щоб ваші сторінки вантажилися доволі швидко, а для цього треба, як мінімум, оптимізувати скрипти і стилі, що використовуються сайтом.

Заходимо на сторінку "Швидкодії" в розділі "Конфігурація" і дозволяємо системі автоматично оптимізовувати файли JavaScript і CSS. При бажанні, там можна також налаштувати кешування блоків і сторінок.

 
Додаткові інструменти

Site verification - маленький і зручний модуль для реєстрації вашого сайту в пошукових системах Google, Bing. Yahoo, Yandex тощо.

Google Analytics - модуль, що дозволяє легко підключити трекер Google Analytics до вашого сайту з яким ви зможете слідкувати за всіма коливаннями відвідуваності вашого сайту.

Drupal SEO Tools - модуль, що дозволить аналізувати та коректувати SEO-показники вашого сайту прямо з адмінки.