В чём проблема сайта доступного по адресу с www и без?
Для начала хочу сразу сказать, что нужно ещё до начала создания сайта определить будет он с www или без. Для этого нужно сначала, перед выкладыванием сайта на хостинг, запретить индексацию всего сайта, чтобы не были проиндексированы обе версии написания адреса, а затем в файле robots.txt, в конце файла указать строку с дерективой Host (то есть главное зеркало), где поисковой системе указано с www или без индексировать сайт:
Host: yoursite.ru
Либо...
Host: www.yoursite.ru
Если это не сделать, то появятся следующие проблемы:
1. Для любой поисковой системы сайт с www и без www – 2 разных интернет-ресурса. В результате будет понижен вес обоих адресов и рейтинг в выдаче по поисковым запросам, так как один и тот же материал доступен на двух разных сайтах.
2. Помимо этого могут быть проблемы с куками для подобных сайтов - если залогиниться на сайте с www, то для сайте без www вы всё ещё не зашли на ресурс.
3. Соответственно на сайтах, где есть доступ и с www, и без, есть возможность дважды лайкать, голосовать, проходить тест и прочее. Вашему сайту оно надо?
Как склеить сайт с www и без в один адрес (htaccess и php)?
1. Самый популярный вариант решения, используем следующую запись в файле htaccess (Что такое htaccess?)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.yoursite.ru$ [NC]
RewriteRule ^(.*)$ http://yoursite.ru/$1 [R=301,L]
Если перейти по адресу http://yoursite.ru или http://www.yoursite.ru то пользователя в любом случае перешлёт на http://yoursite.ru, так же и с подкаталогами. А поисковые системы отныне они будут считать, что есть только адрес http://yoursite.ru. Почему указал пример кода без www? Скорее потому, что запись с www (3w консорциума) является уже устаревшей и никак ни на что не влияет.
2. Также можно сделать следующую запись в php
<?php
header("HTTP/1.1 301 Moved Permanently"); // заголовок
header("Location: http://yoursite.ru/"); // пересылаем на новый адрес БЕЗ www
exit();
?>
Между наличием www и без нет принципиальной разницы. Поэтому выбирайте сами какой адрес использовать. Да, достаточно старые компании используют сайт с www (например, Yandex и Google), но в основном потому, что на момент создания так было принято, а изменять что-либо уже поздно да и не за чем. |
Как указать Поисковым системам основной адрес сайта?
Для этого существует файл robots.txt (Что такое robots.txt?). В конце данного файла нужно указать следующую строку
User-agent: *
Host: yoursite.ru
По результатам этой записи ВСЕ поисковые системы (Yandex, Google и тд) будут отдавать предпочтение адресу БЕЗ www, и считать, что он основной.
Для того, чтобы оперативно объяснить каждой поисковой системе рассматривать Ваш сайт с www или без, следует зарегистрироваться в них (Как зарегистрировать сайт в поисковых системах?), а затем зайти в раздел Вебразработчику, и либо выставить галочку напротив Главного зеркала, либо загрузить файл sitemap (возможно у Вас его и не было) в соответствующем разделе Файлы Sitemap.