Абсолютные или относительные ссылки использовать внутри сайта?

Дабы отобразить ссылки, картинки, скрипты, таблицы стилей, flash и т.п.

<a href="URL">ссылка</a>
<img src="URL" alt="изображение"/>
background: url(URL) no-repeat;
<link type='text/css' rel='stylesheet' href='URL' />
<script type="text/javascript" src="URL"></script>
<param name="movie" value="URL"></param>
браузер отправляет DNS-запросы серверу, чтобы тот вместо хоста (например, shpargalkablog.ru) возвратил ему IP-адрес (адрес компьютера в сети интернет, на котором размещён сайт). Для лучшей производительности DNS-запросы кэшируются ?.

При этом если файлы расположены на одном сервере, то не важно какая форма URL для внутренних ссылок применяется - абсолютная или относительная. Последняя приводятся к абсолютной форме браузером и на сервере имеет полное имя пути.

Аналогично работает Google. Легко заметить в ошибках для сканирования в Инструментах для вебмастеров, что поисковый гигант вместо

 указывает
 См. запятая, благодаря которой страница выдаёт 404 ошибку даже если УРЛ не является значением атрибута тега ХТМЛ. Именно поэтому я предпочитаю не ставить знаки препинания сразу после URL-адреса в тексте и делаю дополнительный пробел.

Итак, для SEO не имеет разницы какую форму УРЛ писать. Тогда в чём преимущество относительных URL в сравнении с абсолютной, чем они различаются, какие ссылки лучше использовать?

Плюсы абсолютных ссылок

http://shpargalkablog.ru/2013/01/absolute-relative-links.html
  • корректная работа в RSS ридерах,
  • при автоматическом копировании материала, как правило, активные ссылки (в том числе и те, которые ведут на сайт источника информации) также переносятся на сайт плагиатора,
  • не возникает вопросов с rel="canonical",
  • точнее определяется поисковыми системами главное зеркало сайта (с www или без),
  • при применении файлов, размещённых на другом сервере (например, при использовании CDN - сеть доставки контента), веб-страница загружается быстрее ?.

Плюсы относительных ссылок без протокола

//shpargalkablog.ru/2013/01/absolute-relative-links.html 
если ссылка установлена на странице http://shpargalkablog.ru/ , то она приведёт на http://shpargalkablog.ru/2013/01/absolute-relative-links.html
если ссылка установлена на странице shpargalkablog.ru/ , то она приведёт на shpargalkablog.ru/2013/01/absolute-relative-links.html

Плюсы корневых относительных ссылок без имени хоста

/2013/01/absolute-relative-links.html
если ссылка установлена на странице http://shpargalkablog.ru/ , то она приведёт на http://shpargalkablog.ru/2013/01/absolute-relative-links.html
если ссылка установлена на странице http://feeds.feedburner.com/shpargalkablog , то она приведёт на /2013/01/absolute-relative-links.html
  • легче HTML код,
  • при переносе на другой домен не нужно менять путь во внутренних ссылках,
  • нет сложностей, если сайт расположен на нескольких доменах (например, .com, .ru, .ua).

Плюсы относительных ссылок, вычисляющихся относительно текущего местоположения

absolute-relative-links.html
../absolute-relative-links.html
  • проще переносить объект в папках,
  • возможно тестирование веб-сайта локально без подключения к интернету.
в f t
наверх ↑

39 комментариев:

aldous
Ох, Нмитра, смотри, чтобы обладатели бесплатных доменов себе относительных ссылок не наставили, а то начитаются...
NMitra
Кстати, да. Я думала и об этом. Помогут ли ссылки правильно склеить зеркала в Яндексе? Ведь они когда-нибудь же склеются или одна из версий вылетит из выдачи.

По идеи Google, главное зеркало - это имя.blogspot.com. А абсолютные ссылки в теле публикации мы как ставим? Берём из строки браузера и копируем. А там имя.blogspot.ru.

Ссылки на статьи (те, которыми мы не размещаем сами, например, с Главной на Сообщения) меняются в зависимости от домена. То есть если домен имя.blogspot.com, то ссылка указывает на http://имя.blogspot.com/2013/01/blog-post.html и, наоборот.
NMitra
Кстати, из RSS мы попадаем именно на имя.blogspot.com

Так что от относительных ссылок не велика беда, если ещё пару штук добавиться. Интересную всё таки вещь сделали в Гугл.
aldous
Ну Гугл да, для себя они молодцы сделали. Какой бы домен не был, а в head каждого поста вшита каноническая ссылка на домен com. Это здорово и разумно. Ещё и заголовки сервера работают, вообще сказка - только галочки ставишь.

Чтобы не путаться в доменах (когда пишешь статью и берешь свои ссылки из браузера), можно использовать данный ncr, в виде скрипта, который визуально отправляет тебя и посетителя на домен-первоисточник. Это даже замечательный поведенческий фактор, который помогает (то есть я вижу, что у тех, кто использует ncr, домен ru практически отсутствует в Яндексе). Яндекс так, роботом, и через метрику (особенно если там определить зеркала) понимает, что основные тыцки ведутся на главном домене com и выкидывает ссылки ru из индекса.

Если нашпиговать свеженький блог относительными линками? Яшка конечно будет по ним следовать и индексить тот домен, который первым нашёл. Это подтверждают сейчас юзеры в моих комментах. Совсем несмешной "лол" - Яндекс выкинул все ссылки с доменом com и оставил только ru. Как быть с этим перекосом я не знаю. Пщукин не знает тоже.

Основная надежда - rss и sitemap, как ты написала. Там можно выудить "канонические" для Яндекса ссылки настоящего домена com. Правда, я в сомнениях, что Яндекс так уж сильно доверяет фидам и конфигам с ссылками.
Ну и конечно надо ставить побольше абсолютных ссылок на домен com. Я вижу по своему блогу: хоть зеркала и не склеились (ну и в задницу их), но домен ru не препятствует, ибо его почти нет.

Ведь они когда-нибудь же склеются или одна из версий вылетит из выдачи
Я в это верю с каждым днём всё меньше и меньше :-).
aldous
А где открытка?
Что-то знакомое. Вроде у меня такая бумажная была.
NMitra
Какая открытка?
aldous
С мишкой. Новогодняя.
NMitra
Итак, для Яндекса
1) даём тот Sitemap, который Яша поймёт. По твоему совету: http://shpargalkablog.ru/robots.txt
2) внутренние ссылки ставим на .com
3) чтобы внешние ссылки ставились не на .ru, а на .com, ставим скрипт

<script type='text/javascript'>
//<![CDATA[
(function(){
var esTRADUCIR = top.location.href.indexOf("://translate.googleusercontent.com/translate_c");
if(esTRADUCIR!=-1){
}else{
if( document.URL.match(/\.blogspot\.(com\...\/|..\/)/) ){
var URL = document.URL
URL = URL.replace(URL.match(/\.blogspot\.(com\...\/|..\/)/)[0],".blogspot.com\/ncr\/")
document.location = URL
}
}
})()
//]]>
</script>

Хотя пункт 3 - сомнительная рекомендация. Как там поисковик относится к редиректам JavaScript? Довольно часто отрицательно.

4) в кнопках подписки применяем data:post.canonicalUrl

Вроде это все доступные способы. Думаю, что если это сделать, то проблем не должно возникнуть. К тому же больше я ничего пока придумать не могу)))
NMitra
Стиль заголовка меняла, заодно и её убрала, а то она так и весела бы до следующего Нового года.)
aldous
Хотя пункт 3 - сомнительная рекомендация. Как там поисковик относится к редиректам JavaScript? Довольно часто отрицательно.
Ну, редирект редиректу рознь. Вообще он не запрещён. И частое явление у крупных сайтов, типа вордпресс или гугл. Тут же такая схема:
1)Яндекс индексирует com (ссылок много в индексе)
2)Яндекс "видит" редирект с ru на сom, который при условии пункта 1 - доверенный домен. Внутренние ссылки все нацелены на com. Всё в порядке, пока проблем нет.

Есть и плохая схема:
1) Яндекс индексирует ru в кол-ве 100 штук
2) Яндекс видит вдруг редирект на какой-то com.
Блог получает бан за дорвей.

Схема с ncr полезна только при относительно высоком кол-ве ссылок в индексе. У меня их было ~100, и редирект спас ситуацию. Я показывал платону редирект, они его одобрили.
aldous
Стиль заголовка меняла, заодно и её убрала, а то она так и весела бы до следующего Нового года.)
Это ещё из страны Советов. Тогда такие вещи в детстве наряду с синими ёлками и кремлёвской звездой вызывали ощущение новогоднего волшебства. Хотя может я путаю.
NMitra
Мне нравятся такие вещи)))

Комментарий 10 звучит разумно.
aldous
Вот сейчас мне привалило ещё два примера с одинаковым симптомом: повылетали все ссылки с зоны com, остались только с ru.
Похоже, "кто-то твиттер понажимал" и спровоцировал индексирование ru раньше, чем com, которых было и так было мало в индексе.
Хз, как все назад возвращать. Слишком большое поле для ошибок.
aldous
Да, там есть ещё один косяк, он реальней твиттера. В обеих ситуациях была допущена фатальная ошибка - в вебмастер был помещён домен ru, вместо com.
NMitra
Однако без редиректа никак не обойтись. Так будет людям проще.
aldous
Я свой блог с этим редиректом отправил на модерацию в суппорт Яндекс Маркета (чтобы контентный API дали, хочу парсить инфу из Маркета). Первую модерацию прошёл, редирект их не смутил, сейчас долбят относительно "нарисуйте нам макет".

А вот юзеры пачками летят под фильтры. Уже собираю коллекцию причин, которые шлёт Щукин. Надо Гугл долбить, чтобы дал добро на директиву host в robots, иначе бида...
NMitra
Не думаю, что те проверяют такие вещи. Мы же им платим, а не они нам.

Яндекс Маркету нужны магазины, причём здесь блог?
aldous
Там два API - один магазинный, второй - для обычных сайтов.
У меня посетитель - работяги (в большинстве), даже дискусом не умеют пользоваться или не хотят. Поэтому я решил (точнее Gene из Graddit предложил) попробовать на каждый обзор инструмента давать инфу из маркета.
Но модерация очень строгая. Почти как в ЯК, только в диалоговой форме: они спрашивают - я отвечаю, дали задание - выполняю.
NMitra
То есть это тот же РСЯ, только для Маркета? У меня автоматом дали, после того, как приняли в РСЯ. Никаких заданий не было.
aldous
Честно говоря, я не знаю. Описания у них скудные, до конца непонятно, что я могу оттуда выуживать, и что мне за это будет.
Тут есть весомый бонус - часть контента будет принадлежать Яндексу (он с маркета будет парситься), а это решает все текущие и будущие проблемы разом. Задания дали, чтобы посмотреть, чего я хочу и сколько мне дать.
NMitra
Расскажи, плиз, что в итоге получилось, очень интересно.
aldous
Окей, но наверное напишут "ваши ожидания не совпадают с нашими возможностями".
aldous
Ещё забыл спросить. Скажи, что за быстрые ссылки у тебя в Гугле?
NMitra
Они сами формируются. Раньше такая красота была и в Яндексе, только я меню изменила (сменила пару пунктов, раньше были Сообщения, теперь Страницы, так проще их искать мне в админке), и те слетели. Может обратно восстановятся.
aldous
В Гугле как-то странно у тебя формируются, рандомно. У меня тоже были (может и сейчас остались), но брались из меню.
А вот для Яндекса думаю, если сотворить на видном месте 4 тыцки, каждая из которых будет на странице выдавать результат по меткам через js.
Например:
Лучшее в тематике Seo
Лучшее в тематике Яндекс
Лучше в тематике Болтовня
Лучшее в тематике Виджеты

Содержимое не индексируемое этих страниц. Но Яндекс в своих примерах по быстрым ссылкам упоминал страницу контакты, фото и т.д. Может прокатит?
NMitra
В Google в основном берётся список самых популярных статей блога в какой-то определённый промежуток времени. У меня по меню действительно часто щёлкают, по аналитике смотрела. Поэтому и Страницы часто попадают в быстрые ссылки.

Про Яндекс сомневаюсь. Там, во-первых, ресурс должен быть довольно популярен, во-вторых, ссылки на эти страницы стоять довольно продолжительное время, в-третьих, если будет js, то он просто их не проиндексирует (ссылки).

Не проще ли разрешить индексацию ярлыков? Только на странице ярлыков размещать не всю статью, а только заголовок. Например, вот так http://shpargalkablog.ru/2011/06/ .

Знаешь о чём я думаю? - вот дура, что ж раньше до этого не дошла. Есть ведь даже условия страниц ярлыков... только я его не помню((( Зачем придумывать скрипты, которые создают страницу с Содержанием или Оглавлением, которые не индексируются, когда есть уже созданный инструмент. Для него можно придумать отдельный стиль, используя эти знания http://shpargalkablog.ru/2011/04/raspolozhit-soobshcheniya-bloga-v-dva.html , и получиться вполне не плохо.

Осталось дела за малым: заставить себя.(((
NMitra
Возвращусь к старой теме: rel='canonical' ведёт на com. Вопрос: если ссылки ведут на ru, то Google будет их зачислять на счёт com аналогично www и без него?

Если будет, тогда зачем вся эта шумиха поднялась и даже скрипт был реализован на западе? Там же нет Яндекса)))
aldous
Про Яндекс сомневаюсь.
Ну я тоже сомневаюсь. Но в примере Яндекса они дали страницу "контакты". То есть фактически кроме js там можно и текстик написать :). Страница будет популярна, есть замутить классную сортировку: например топ 10 популярных постов. Народ любит туда щелкать.

Только на странице ярлыков размещать не всю статью, а только заголовок.
Я уже думал над этим, но руки не дошли. Самое смешное, что не помню, как это делается. Но есть большое подозрение, что я об этом писал.

когда есть уже созданный инструмент
Хорошая идея.

Осталось дела за малым: заставить себя
:-)

el='canonical' ведёт на com
Тут я не совсем понял.
На странице *.blogspot.RU/20213/01/ghgh.html вшита в head ссылка, генерируемая Гуглом:
<link href='http://*.blogspot.COM/20213/01/ghgh.html' rel='canonical'/>. Робот ходит по ru страницам и индексит согласно ссылке вышеприведённой ссылке.

Скрипт сделали для удобства. Больше он, в принципе, не нужен.
Шумиху поднял один блоггер, когда написал, что роботы других поисковых систем не имеют доступа к домену com.
Я тогда полез в инструмент проверки индексации Яндекса и проверил: домен com не пускал никого из России. Потом был шум, появился вот этот упомянутый выше канонический url в head, робота Яндекса пустили в com и т.д.

если ссылки ведут на ru, то Google будет их зачислять на счёт com аналогично www и без него
Ты имеешь ввиду беки? Если кто-то извне ссылается на твой бесплатный ru, для Гугла это все равно, что ссылки на com. Это в теории. На практике подозреваю, что все по другому. Надо дождаться нескольких апов PR и сверить домены. Я хз, как в Гугле клеются зеркала. Читал, что там супер-пупер система, всё отслеживает. Даже robots не нужен, Гугл его читает - делает одолжение.
Представляешь, сколько в ближайшие месяцы будет недовольных? Ведь "без молотка и такой-то матери не разберешься". Уже начали просыпаться те, кто хоть сколько то соображает.
поэзия-Денис
попробовал ваш скрипт :
-script type='text/javascript'>
//
</script-
Думал, изменив .ru сделаю все ссылки на ру домен, однако, теперь даже после удаления кода редиректит на ком( раньше было на ру) искал что означают куски кода, но дельного ничего не нашёл , как вернуть старый региональный редирект, метатегошные , и некоторые явоскриптные пробовал, но там просто прыгает с ру на ком и очень быстро и до бесконечности. Куда вносит изменения программный код, будьте добры, если можно.
Денис
скрипт с 8ого комментария, удалив код скрипта, он продолжает работать, т.е все директы на .com , как и было обещанно, но мне хотелось сделать на .ru , что вышло можно глянуть перейдя на сайт в подписи, живой пример недоSEOшности.
Denis Grozesko
проблему исправил, но теперь ру на ру кидает, а ком на ком, пропал основнйо редирект. что делать- не знаю даже. а надо что со всех кидало на ком. когда просто изменил в скрипте на .ру начало бешенно редиректить только на ру. Видимо включая .ру домен тоже.
NMitra
А зачем вам? Яндекс и так поклеит ru основным, а Гугл - com. Посетителям все равно. Только один минус появится - междоменный редирект на javascript, к которому не очень хорошо относятся поисковики.
NMitra
<script type='text/javascript'>
//<![CDATA[
(function(){
var esTRADUCIR = top.location.href.indexOf("://translate.googleusercontent.com/translate_c");
if(esTRADUCIR!=-1){
}else{
if(! document.URL.match(/\.blogspot.ru/) ){
var URL = document.URL
URL = URL.replace(URL.match(/\.blogspot\.(ru\...\/|..\/)/)[0],".blogspot.ru")
document.location = URL
}
}
})()
//]]>
</script>
Marina Voronova
привет) не могу разобраться, как сделать разделитель между ссылками вот такой http://gyazo.com/5e81f0a4efcdc956c6c2e57490158363. помогите пожалуйста
NMitra
<style>
.myURL {
margin: 0 15px;
font-weight: bold;
color: black;
text-decoration: none;
}
.myURL.activ {
border-bottom: 2px solid red;
}
</style>


<a href="#URL" class="myURL activ">Популярные</a>|<a href="#URL" class="myURL">Последние</a>
NMitra
Хм, вот спец символ: |
Marina Voronova
спасибо! вы как всегда меня выручаете! )) @---
Анонимный
Здравствуйте,
подскажите, как мне бороться с таким чудом

ранее на моем сайте перелинковка была исключительна на абсолютных ссылках (т.е. <a href="http://mysite.ru/service.html" )
все было классно, поисковик выдавал все заточенные страницы по ключевым запросам
сделал новый адаптивный сайт, контент не трогал, и заменил абсолютные ссылки на относительные (т.е. <a href="service.html" )
сейчас, по ключевым запросам выдает только главную страницу, а заточенные страницы пропали
в чем может быть причина?
NMitra
Здравствуйте, смена дизайна (текст может быть прежним, но робот считывает HTML, а он при смене дизайна меняется) или CMS, как правило, всегда сказывается на позициях сайта. Тем более если сайт большой. Посмотрите старые страницы, особенно в работоспособности которых участвовал PHP или JavaScript, возможно на них что-то съехало. Если в шаблоне появились новые id, которые ранее были использованы в теле статьи, то будут проблемы и с CSS.

Если грешите на перелинковку: поисковику по большему счёту все равно абсолютная это ссылка или относительная, но возможно при смене увеличилось количество битых ссылок. Я бы посмотрела в ошибках в вебмастере Яндекса или Гугла http://shpargalkablog.ru/2011/08/poisk-bityh-ssylok.html#ya Там их все видно.