rel равно nofollow для сторонних ссылок

#1 23 апреля 2015 в 12:21
Не могу вести блог, но очень хотел поделиться.

Написал маленький хак, дополнение, доработку (читайте как хотите). Вставляется в вашу тему в файл main.tpl перед последним < /body >
  1.  
  2. <script type="text/javascript">
  3. $(document).ready(function(){
  4. $('a[href^="http"]:not([href*="<?php $sitename = explode('.', $_SERVER['SERVER_NAME']);
  5. $site_domain = $sitename[count($sitename)-2].'.'. $sitename[count($sitename)-1]; echo $_SERVER['SERVER_NAME']; ?>"]),a[href^="/go?"]').attr('onclick', 'return !window.open(this.href)').attr("rel","nofollow");
  6. });
  7. </script>
  8.  
Описание: В скрипте идет подстановка адреса сайта если сайт сторонний то к его атрибутам дописывается "rel=nofollow" и открывается в отдельном окне. Если ваш, даже на субдомене "subdomain.site.com" будет определять как собственный.
В случае, когда сторонняя ссылка благополучно открылась в новом окне, мы блокируем открытие ссылки в своем родном окне, т.к. return будет !true=false. И наоборот, если окно открыть не удалось, return true позволит ссылке отработать в штатном режиме. Это замена невалидного атрибута target.
Получаем:
Сторонний сайт
  1.  
  2. <a href="http://levi-site.ru" onclick="return !window.open(this.href)" rel="nofollow">спам не дай бог</a>
  3.  
там же ваш сайт
  1.  
  2. <a href="http://vash-site.ru">ссылка</a>
  3.  
Всем удачи.
#2 23 апреля 2015 в 14:08

к его атрибутам дописывается "rel=nofollow"

Sergey Necr
Зачем? Поисковые системы этого не увидят (меняете то js кодом), а вы ведь для них этот атрибут ставите joke

Это замена невалидного атрибута target.

Sergey Necr
Невалидный он только при неверном DOCTYPE, да и в целом, менять штатный target="_blank" на onclick="return !window.open(this.href)" весьма спорное решение, кроме этого, после вашего хака при неверном DOCTYPE страница по-прежнему будет невалидной, опять же потому что замену делаете посредством javascript.
#3 23 апреля 2015 в 14:23


Зачем? Поисковые системы этого не увидят (меняете то js кодом), а вы ведь для них этот атрибут ставите joke

Fuze

хм, как то стороне выполнения не подумал 😊благодарю.

UPD. а проверил решение на pr-cy.ru
выдало: Внешние ссылки — 4, индексируется — 3
Значит все же работает…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.