Дзеркала і редіректи
В продовження теми про URL`и сторінок, угодні для SEO. обов'язково потрібно обговорити і початок всіх шляхів - домени. Тема, до речі, пікантна: чого вартий один префікс www (подовжує домени до третього рівня), що має як затятих прихильників, так і радикальних противників.
Але крім проблем ідеологічних, є і організаційні. Повною мірою вони виявляються, коли домен відвідуваного сайту доводиться міняти, чого звичайно не буває при розробці, але трапляється в процесі експлуатації і підтримки проекту. І набагато складніше цей процес здійснити не порушивши гармонії з рідним Яндексом.
Втім, сподіваюся, що читачам в будь-якому випадку стануть в нагоді знання про специфіку пошукових систем і готові сніппети для настройки постійних редиректів в веб-серверах Apache і nginx.
Почнемо з принципових відмінностей у відносинах до доменів Яндекса і Google. Світовий гігант не наділяє домен якимись винятковими якостями в порівнянні з іншою частиною URL`а, тому у видачі Google цілком можуть зустрічатися різні домени в сниппета для сторінок з одного і того ж сайту.
Однак, якщо власник сайту хоче однозначності, то досягти її нескладно.
Відповідно, встановити такі редіректи слід для всіх сторінок.
В панелі «Інструментів для веб-майстрів» від Google є додатковий засіб для завдання основного домену (головного дзеркала) сайту:
А далі треба буде дочекатися чергової переиндексации і поновлення видачі.
www проти non-www
Поки сайт новий у нього єдиний домен, але зате майже обов'язково на додачу є піддомен з www спочатку.
При цьому працювати повинні обов'язково обидва домени (як з префіксом, так і без).
Редирект на основне дзеркало силами веб-сервера
Оскільки війна за головне дзеркало зазвичай трапляється між www і non-www варіантами, то нагадаю конфіги для організації постійних (301-их) редиректів силами популярних веб-серверів.
Отже, почнемо з Apache. Перенаправити з www на non-www можна додавши наступний блок в початок файлу .htaccess з кореневої директорії сайту:
Перенаправити з non-www на www:
Це запрацює, якщо включений модуль mod_rewrite і дозволено перевизначення відповідних директив в .htaccess. На віртуальному хостингу - так воно, як правило, і буває, а на сервері під власним контролем потрібно самостійно активувати модуль і для кореневої директорії в описі віртуального хоста додати як мінімум AllowOverride FileInfo Options. а якщо хост не бойовий, то можна дозволити перевизначати все підряд AllowOverride All.
Перевірено на Apache / 2.2.16 під Ubuntu Server 10.10.
Любителям швидкісного вітчизняного фронт-енду nginx пощастило з лаконічним синтаксисом. Для перенаправлення з www на non-www досить додати в початок блоку server:
А щоб перенаправити з non-www на www:
Необхідний модуль включений за замовчуванням, перевірено на nginx / 0.7.67 під Ubuntu Server 10.10.
Представлені вище сніпети зручні тим, що конкретні назви доменів в них не використовуються, тобто однаково добре такі редіректи працюватимуть як на серверах для розробки, так і на бойових хостах.
Перше знайомство домену з Яндексом
Але розібравшись з універсальними редирект, доведеться визнати страшне: для Яндекса перенаправлень недостатньо.
Більш того, Яндекс не показує URL`и з різними доменами для одного і того ж сайту, завжди вибираючи для виведення в сниппет головне дзеркало. І ось як воно визначається ...
У загальному випадку наш робот вибере головне дзеркало відповідно до свого алгоритму.
Відчули різницю в підходах? Проте, якщо ви маєте справу з новим сайтом і новим доменом (коли обидва - які раніше не проіндексовані), то підказати роботу головне дзеркало можна цілком однозначно.
Досить слідувати таким правилам:
Встановити директиву Host в robots.txt для блоку User-agent: Yandex (щоб не лякати павуків Google незнайомою командою), вказавши там бажаний домен.
Що вирішив Яндекс?
Звичайно можна вивчити пошукову видачу, звертаючи увагу на те, який домен показується там, але є спосіб простіше: через згадану вище форму можна повторно додати на індексацію один з Альяс (притому будь-який). Якщо ви вказали неголовне дзеркало, то Яндекс повідомить про це:
Переїзд за версією Яндекса
Якщо головне дзеркало з якихось причин захочеться змінити, то доведеться вирішувати нетривіальний квест.
Існує два незалежних методу для зміни головного дзеркала:- За допомогою директиви Host.
- За допомогою серверного редіректу зі сторінок старого домену на відповідні їм сторінки нового. Цей спосіб рекомендується використовувати в тому випадку, якщо новий домен не є неголовним дзеркалом.
З точки зору Яндекса може існувати 4 типи зв'язку між двома і більше доменами:
Єдиний відомий Яндексу домен (він же обов'язково є головним дзеркалом)
Найпростіший приклад: уявімо сайт, відгукується по одній єдиній домену - example.com. і не доступний навіть по поддомену www.example.com (от не налаштував власник Альяс з принципових міркувань). Все однозначно, домен єдиний - він же і основний.
Додатковий відомий Яндексу домен (неголовне дзеркало сайту)
Різниця проявиться в тому, що URL`и в сниппета пошукової видачі Яндекса буду починатися саме з головного дзеркала (з example.com без www).
Якщо власник сайту змінить принципам знову і захоче, щоб основним дзеркалом тепер став домен www.example.com (а example.com. Відповідно, додатковим), то проводити рокіровку рекомендується з використанням директиви Host у файлі robots.txt (а не за допомогою редиректу ).
Два незалежних раніше відомих домену
Новий (що раніше не проіндексований) домен
Невідомий перш Яндексу домен можна зробити чиїмось додатковим дзеркалом за рахунок одного лише 301-го редіректу з нового домену на основне дзеркало.
замість підсумку
Простіше, звичайно ж, визначитися з головним дзеркалом ще до запуску сайту. Вказати потрібний домен в директиві Host для Яндекса і налаштувати редіректи з інших Альяс.
Але всяке буває (захотіли додати або прибрати префікс, відхопили домен по-красивіше, змінили бренд або юридична особа), в такому випадку змінити головне дзеркало - цілком можливо, в чому, сподіваюся, допоможуть представлені вище поради.
Керує розробкою, підтримкою та просуванням декількох веб-проектів. Шанує і активно використовує Drupal і Ubuntu. Викладає на математичному факультеті МПГУ. Одружений. Не курить. Багато їсть. Мало спить. Пише в Твіттер.
Не питання. Досить поглянути на самі пошуковики. чи користуються вони префіксом www.
Боюся, тут різниця в термінах: ви під сніпетів розумієте опис, в ідеалі взяте з мета-дескріпшена. Я під сніпетів, в даному випадку, мав на увазі весь блок видачі, присвячений конкретній сайту (посилання-заголовок, опис, url та ін.).
> Досить поглянути на самі пошуковики
Своє бачення це, звичайно, добре, але є офіційне визначення. Ще раз повторюся, що незалежно від довжини урла - в сниппет більше знаків не влізе, ніж належить.
Що твориться з перенаправленням у Яндекса - це їх особиста справа. Досить бачити те, що для зовнішніх пошукових систем, і Яндекс і Гугл, і інші великі сайти воліють виводитися з префіксом www.
> Яндекс буквально недавно поміняв висновок url`а, а саме зрізав www і
> Розділив домен і іншу частину шляху значком «>», через те, що
> Значок оточений пробілами, місця для виведення url в цілому не додалося,
> Але зате тепер можна відразу переходити на головну сторінку сайту
А ви як би запропонували називати весь шматок видачі, присвячений одному навіщо він потрібен?
> Начебто вже півроку їм
Але з урахуванням останніх нововведень, по довжині урла вердикт виходить такий (можна вважати значимим доповненням до статті):
2. Для Гугла аргумент про економію символів у видимій частині урла за рахунок www - залишається актуальним.
З www на non-www:
Якщо ви хочете перенаправити на нову сторінку зі старою, то це робиться так:
Всі ці сніппети повинні знаходитися в PHP-коді строго до тих пір, поки що-небудь відправляється на висновок.
Ніякої шкоди ви від існування Альяс не отримаєте. Користі, втім, теж.