Сайт с WWW и без
Думаю, что большинство из Вас знают, что сайты "www.site.ru" и "site.ru" - это одно и то же. То есть введите Вы один адрес, введите Вы другой адрес - ничего в содержимом не поменяется. Однако, мало, кто знает, что для поисковых систем - это совершенно разные сайты, которые никак друг с другом не связаны. И это очень плохо, и вот почему.
Поисковые системы очень не любят дублирование - повторяющийся контент, то есть когда, допустим, страница "http://site.ru/1.html" содержит абсолютно такой же контент (или очень похожий), как страница "http://site.ru/2.html". В результате, в лучшем случае одна из страниц выпадет из индекса, а в худшем ещё могут быть наложены фильтры.
А теперь смотрите, что получается: у Вас есть два АБСОЛЮТНО одинаковых сайта. В результате, для поисковых систем Ваш сайт просто ужасен! Ни о какой оптимизации и речи идти не может, думаю, это понятно. Но и это ещё не всё. Поскольку сайт с www и без - это разные сайты, то и входящие ссылки на сайт с www и без будут разными, ведь человек на Вас может сослаться так: "www.site.ru", а может и так "site.ru". В результате, общий вес будет делиться на два сайта. То есть Вы ещё теряете и в весе.
И вот теперь я расскажу, как избавиться от этой очень серьёзной проблемы. Для начала нужно определиться, какой вариант написания сайта Вы хотите использовать: с WWW или без.
Допустим, Вы захотели, чтобы Ваш сайт был с WWW. Тогда в файле .htaccess добавьте следующие строки:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^myrusakov.ru$ [NC]
RewriteRule ^(.*)$ http://www.myrusakov.ru/$1 [R=301,L]
Разумеется, "myrusakov.ru" замените на домен своего сайта.
Если же Вам хочется, чтобы Ваш сайт был без WWW, то тогда необходимо добавить в .htaccess следующие строки:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.myrusakov.ru$ [NC]
RewriteRule ^(.*)$ http://myrusakov.ru/$1 [R=301,L]
Что делают данные строки? Они при вводе URL сайта автоматически редиректят на правильный адрес. Происходит это через 301-ый редирект. Например, мой сайт без WWW. Попробуйте на этой странице добавить к URL "WWW". Вы увидите, что "WWW" отпадёт. Это сработал 301-ый редирект. Таким образом, я склеил сайт с WWW и без, избавившись от дублирования и потери ссылочной массы.
Как видите, вот такую простую вещь очень многие Web-мастера не делают, а потом жалуются на свои позиции в поисковых системах. Поэтому обязательно определитесь с вариантом написания адреса сайта и установите его как основной.
-
- Михаил Русаков
Комментарии (49):
Здравствуйте! Не могу найти файл .htaccess у себя на хостинге (cishost.ru)! Может его нужно самому создавать? Если да, то в какую папку его закачать?
Ответить
Его нужно создавать самому и заливать в корень сайта.
Ответить
Залил в корень сайта через FTP, но он сразу же исчез оттуда! Это нормально? А сайт стал доступен лишь по одному адресу: без www (то что нада). Но где делся этот файл :)?
Ответить
Он не должен исчезать, но главное, чтобы он работал. Возможно, Ваш хостинг (либо FTP-клиент) каким-либо образом его скрывает.
Ответить
Здравствуйте! Помогите создал 521.htaccess добавил строки, скинул в корень сайта через FTP и нечиво невыходит!!! В чом ошыбка?
Ответить
Надо 1 создать, и не забыть заменить адрес сайта на свой. Также обратите внимание, что не каждый хостинг поддерживает работу с .htaccess.
Ответить
Михаил, я не понял второй абзац статьи, где Вы пишите про дублирование /1.html и /2.html. Но ведь любой сайт построен по такому принципу. И на первой и на второй страницах есть шапка, меню, подвал, рекламные блоки. Меняется только контент центрального блока, например написана новая статья. Что значит "выпадет из индекса", "могут быть наложены фильтры"? Проиндексируется файл index.html, а остальные в игнор?
Ответить
Вы плохо прочитали, дублирование - это когда 2 абсолютно одинаковых страницы. А когда есть какое-то серьёзное отличие (не говоря уже об абсолютно другой центральной части), это не дублирование.
Ответить
Ясно. Меня смутили слова "(или очень похожий)". Михаил, правильно ли я понимаю, что на первоначальном этапе лучше создать сайт с минимумом статей и потом РЕГУЛЯРНО добавлять их, чем сразу выложить все материалы и ничего не писать. Спасибо.
Ответить
Да, лучше сначала выложить минимум статей, а затем регулярно добавлять. А ещё лучше выложить сразу много статей и регулярно добавлять, но это смотрите сами.
Ответить
:-))) Ну да. Лучше быть здоровым и богатым, чем бедным и больным.
Ответить
Не очень понятно в какое место файла .htaccess вставлять. И еще значек # по всей видимости закомментирование строк? т.е. предложенный код не должен содержать его?
Ответить
В любое место можно вставлять данный код. А значка # я не вижу, откуда Вы его взяли, тоже не ясно.
Ответить
Ну как же, вот кусок кода из htaccess. Сплошные ###. RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not already been internally rewritten to the index.php script RewriteCond %{REQUEST_URI} !^/index\.php # and the request is for root, or for an extensionless URL, or the # requested URL ends with one of the listed extensions RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC] # and the requested path and file doesn't directly match a physical file RewriteCond %{REQUEST_FILENAME} !-f # and the requested path and file doesn't directly match a physical folder RewriteCond %{REQUEST_FILENAME} !-d # internally rewrite the request to the index.php script RewriteRule .* index.php [L] # Я так понимаю это комменты.Сайт на джумле.
Ответить
У нормальных сайтов (своих движков, а не на Joomla) такого мусора нет. А что касается #, то действительно это комментарии.
Ответить
Здравствуте! А в какой программе нужно создат файл .htaccess в блокноте или в другой программе и закинуть в корневую папку? И еще хостинг джино поддерживает работу .htaccess и как узнать, что поддерживает?
Ответить
В любом текстовом редакторе.
Ответить
Провел эксперимент на одном из своих сайтов.Сделал всё по рекомендации для файлов robot и htaccess. Результат на следующий день: откат в яндексе и гугле на несколько позиций назад по тому же ключевому запросу, что и днем ранее. Может, конечно, рановато я в колокола забил?
Ответить
Реакция на это будет не раньше, чем через несколько месяцев. А то что на следующий день откатились, это уж что-то иное, например, пользователям не нравится Ваш сайт, а Яндекс сейчас это активно учитывает.
Ответить
Сделал по Вашей рекомендации.Слежу за статистикой через google analitics. И вот какую ошибку стал выдавать Google: Ошибка. Указанный в настройках сайт (http://www.mysite.ru) выполняет переадресацию на другой домен (http://mysite.ru). В настоящее время раздел "Статистика страницы" поддерживает работу только в одном домене. Обратите внимание, что www.example.com и example.com считаются разными доменами. Убедитесь также, что отсутствует переадресация с http:// на https:// и наоборот.
Ответить
Укажите в настройках Google тот домен, который является основным.
Ответить
Здравствуйте! На Вашем сайте пишу впервые, поэтому сразу СЛОВА БЛАГОДАРНОСТИ за статьи, Михаил. В примере статьи приведен частный случай подмены. Может, стоит добавить и общий вид (как в CMSках, например). С уважением, Виталик
Ответить
Добрый день! Прошу у Вас помощи) Подскажите пыталась сделать 301 редирект при помощи файла .htaccess. Вписала туда код: RewriteEngine On RewriteCond %{HTTP_HOST} ^www.myrusakov.ru$ [NC] RewriteRule ^(.*)$ http://myrusakov.ru/$1 [R=301,L] В итоге при попытке открыть сайт, браузер выдает это - Загрузка веб-страницы по адресу http://tv-crime.ru/ вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов. Если это не поможет, возможно, проблема связана не с вашим компьютером, а с конфигурацией сервера. Подскажите как решить эту проблему? спасибо.
Ответить
Полный код файла .htaccess какой?
Ответить
Вот его содержимое: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress Еще раз спасибо)
Ответить
Добавьте после всего этого в конец RewriteCond %{HTTP_HOST} ^test.local$ [NC] RewriteRule ^(.*)$ http://www.test.local/$1 [R=301,L] Замените только домен. Убедитесь, что одна команда на одной строке, а не всё в одну строку. В этом коде, например, 2 строки.
Ответить
Доброе утро. Не помогло - сайт как был c www так и остался((
Ответить
RewriteCond %{HTTP_HOST} ^www.myrusakov.ru$ [NC] RewriteRule ^(.*)$ http://myrusakov.ru/$1 [R=301,L] - вот этот код без www.
Ответить
Я наверно уже Вас замучила((( но проблема сного та же: Загрузка веб-страницы по адресу http:вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов. Если это не поможет, возможно, проблема связана не с вашим компьютером, а с конфигурацией сервера.
Ответить
Много было вопросов и остался у меня один, сам созданный файл .htaccess нужно как-то привязать к страничкам, или он автоматически применяется ко всему?
Ответить
Он применяется сразу к текущему и всем внутренним каталогам, если там нет другого .htaccess
Ответить
благодарю
Ответить
Михаил, мой сайт немного меньше года индексировался с www, после смены хостинга в индексе осталась 10 часть страниц, а посещаемость с 300 упала до 80. С добавлением www возникли кое-какие проблемы, и было решено перейти на адрес сайта без www. Как Вы считаете, если в "Инструментах для веб-мастера" сменить главный сайт на "без www", Google нормально проиндексирует, ведь на сколько я знаю, то для Google сайт с www и без него два разных ресурса?! В robots.txt для Яндекса указал host без www.
Ответить
С www и без - 2 разных ресурса, надо выбрать 1, который на данный момент лучше проиндексирован, и его указать.
Ответить
А если оставить без www, дольше будет индексироваться или вообще не будет?!
Ответить
Надо оставить только 1 вариант.
Ответить
Михаил, ещё хотелось бы знать ваше мнение по поводу:допустим в кабинете вебмастера goolge сайт стоит с www как основной, в robots.txt адрес sitemap на сайт без www. Что Вы можете по поводе этого прокомментировать, так "прокатит")))?! Дело в том, что плагин на WP не создает почему-то карту сайта с адресом начинающем с www.
Ответить
Надо либо плагин править, либо искать аналог, у которого таких проблем нет. А вообще: http://myrusakov.ru/php-engine-vs-null.html
Ответить
Михаил, такой вопрос, а от дублирования типа sait.ru/index.php разве не надо избавляться?
Ответить
Надо: http://myrusakov.ru/php-index-url.html
Ответить
Здравствуйте ! Что Вы прописывали в .htaceess для hostia ? Дело в том, что входя на технический домен, используется 302 редирект. Нормально ли это ?
Ответить
Дмитрий, нормально. Ничего страшного в редиректе нет.
Ответить
У меня не совсем корректно перенаправляет с www на просто. Все время перекидывает на ссылку вида "http://mysite.com/index.php" (сайт на joomla 2.5). Кому интересно сделал перенаправление через php - $urls = substr($_SERVER['SERVER_NAME'], 0, 3); if($urls == 'www') { $head_301 = 'Location: http://mysite.com' . $_SERVER['REQUEST_URI']; header($head_301, true, 301); } вместо "mysite.com" вставить свой адрес. Теперь и с внутренних страниц перекидывает на те же внутренние но без "www". PS - код вставить в файл входа (тобиж в index.php) в самое начало)))
Ответить
Вся проблема наверняка, что у Вас Joomla.
Ответить
Добрый день, Михаил! Если у меня сайт на домене .рф, то, выходит, поисковая система видит 4 сайта : ремонтвколомне.рф , www.ремонтвколомне.рф, cn07832.tmweb.ru и www.cn07832.tmweb.ru ? На cn07832.tmweb.ru редирект выполняется, а .рф - нет. :( Почему? тут можно что-то сделать?
Ответить
У меня случай такой, захожу на http://www.mysite.ru идет редирект 301 на http://mysite.ru, а потом на https://mysite.ru с кодом 302. Как сделать чтобы с http://www или c http://mysite.ru редирект шел сразу на https://mysite.ru? Вобщем как сейчас настроено на myrusakov.ru. Сертификат на моём сайте также есть.
Ответить
Скажите, пожалуйста. У меня сейчас прописан такой код. RewriteEngine On RewriteCond %{HTTP_HOST} ^www.mysite.ru$ [NC] RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L] ErrorDocument 404 /404.html AddDefaultCharset UTF-8 RewriteRule ^index.php$ / [QSA,R] Хочу перевести домен на HTTPS. Хостер предложил редирект 301 сделать так. RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] Как корректно соединить эти коды, чтобы редирект был правильным. Спасибо!
Ответить
Добрый день. можно как то запретить отображение ссылки /index.php если я руками указываю файл он всегда отображается.
Ответить
https://t.me/tokkerbot
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.