Добавление Canonical на Инстанте

+58
4.93K
Покопался немного в коде, вот что получилось.

Нужно добавить php код в файл шаблона template.php, в самый верх (рядом с другим php кодом)

  1. $where = $_SERVER["REQUEST_URI"]; // адрес текущей страницы
  2. $q = strpos($where,'?'); // позиция символа "?"
  3. if ($q){ $canonical = substr($where,0,$q); //если страница с параметрами - отрезаем их
  4. }else{ $canonical = $where; }
  5. if ($canonical=='/'){$canonical='';} //если главная, убираем слэщ в конце
  6. elseif ($canonical=='/index.php') {$canonical='';} //если главная, убираем index.php
  7. $canonical = 'http://'.$_SERVER['HTTP_HOST'].$canonical;
  8.  
И в то место, где должен выводить canonical такой код
  1. <link rel="canonical" href="<?php echo $canonical; ?>"/>
У себя проверил, вроде все правильно работает. Поправьте если что не так.
0
SJen SJen 12 лет назад #
Вы что-то имели ввиду, кинув ссылку, или просто для информации?
0
universe universe 12 лет назад #
для информации =)
0
Anonim Anonim 12 лет назад #
Пустая страница по ссылке
0
Malanas Malanas 12 лет назад #
Нужно ссылку копировать и вставлять,а так режется...
+1
reload reload 12 лет назад #
SJen, респект!
отлично и правильно все работает!
сам код удачный или нет в написании и правильности не знаю но работает как доктор прописал)
Плюсище!
+3
soxom soxom 12 лет назад #
Не знаю насколько это подойдет для моего проекта, но посмотрел на вашем сайте, проверил все ))) Классно, работает на 5! Если действительно без ошибок, то это наверное самое полезное введение что я видел для Инстанта в плане оптимизации. Огромный плюс
0
Malanas Malanas 12 лет назад #
Большое спасибо!!!
0
spacer spacer 12 лет назад #
И в то место, где должен выводить canonical такой код
А где это место? Объясните слабым, пожалуйста. :)
0
SJen SJen 12 лет назад #
между <head> и </head>
0
picaboo picaboo 12 лет назад #
в шабе template.php
секция <head>
0
eoleg eoleg 12 лет назад #
А как проверить?
0
lezginka.ru lezginka.ru 12 лет назад #
вопрос кто разбирается.
мы тут бурю в стакане не устроили ?
кто реально "пострадал" от этой проблемы, можете показать(хотя бы в личку) ?
что-то мне не вериться, что ПС этих моментов не учитывают(проверить не могу, нет опыта и площадок).
буду очень признателен.
+1
SJen SJen 12 лет назад #
Это важный момент, который однозначно говорит ПС, что разные адреса должны быть склеены. И решает куу проблем с дублями в индексе.

Можете верить или не верить, но для серьезного проекта это довольно важно и однозначно должно быть.
0
Hunter (Роман) Hunter (Роман) 12 лет назад #
А если два доменных имени у сайта .ru и рф. - все равно дубли будут (под разными доменными именами) или эту проблему таким способом не решишь. Что можно сделать чтобы определялся клей двух доменов.
+1
soxom soxom 12 лет назад #
Если два доменных имени, то в любом случае ставьте 301 ))) Это самое правильное решение
0
Hunter (Роман) Hunter (Роман) 12 лет назад #
Да полезная вешь все действительно работает
0
Dinar Dinar 12 лет назад #
А появление страниц вида http://сайт.ру/раздел/сайт.ru - тоже с этим связано?

у меня куча страницы с ошибкой 404 в Я.вебмастере
0
soxom soxom 12 лет назад #
В каноникале от SJen есть маленькие недочеты (исправляются редиректами), но 404 это точно не из этой оперы
0
FreeLancer FreeLancer 12 лет назад #
Что за недочеты? smile И подскажите сразу решение раз уж знаете)
+1
SJen SJen 12 лет назад #
я бы связал это с кривыми ссылками на сайте, вы значит сами отдаете Яндексу такие ссылки, а он их индексит
0
FreeLancer FreeLancer 12 лет назад #
хм.. досада.. у меня на сайте самописный компонент, куда передаются ссылки с параметрами через "?". Можно конечно делать поиск по подстроке REQUEST_URI и в нужном месте не обрезать ее, хотя компонент все равно думаю переделывать под другие ссылки. Поэтому с каноникалом мне придется повременить..

P.S. к СЕО-шникам, подскажите пожалуйста.. если я изменю вид ссылок, но прошлый контент останется также и по старым ссылкам (на сайте старых ссылок не останется, они будут лишь в индексе поисковиков), будут ли такие ссылки считаться дублем?
0
SJen SJen 12 лет назад #
будут, до момента полного выпадения старых ссылок из индекса - надо 301 редирект со старых сделать. У яндекса старые ссылки могут еще очень долго болтаться.. Я помню у себя менял юрлы - больше месяца старые виседи в Яще.
0
FreeLancer FreeLancer 12 лет назад #
хм... ну месяц то ладно)
0
NickSolver NickSolver 12 лет назад #
404 страницы всегда можно побыстренькому покикать из индекса. Через удаление страницы в вебмастере.
+1
FreeLancer FreeLancer 12 лет назад #
хм, как можно по быстренькому покикать 10000 страниц? )
0
Bubble Gumoff Bubble Gumoff 11 лет назад #
Вводим так если
site.ru////stati

Получаем
<link rel="canonical" href="http://www.site.ru/////stati"/>;

Тут как быть?
+1
reload reload 11 лет назад #
SJen, так понимаю для 1.10 все без изменений вроде?
+1
fotpod fotpod 10 лет назад #
Спасибо SJen, все получилось, но есть еще очень не приятные дубли в форуме, например:
Код PHP:
  1. ../thead10.html и ../thead10-1.html
я его излечил вставив пару строк в твой код, я вообще не прогер, поэтому не судите строго
Код PHP:
  1. $where = $_SERVER["REQUEST_URI"]; // адрес текущей страницы
  2. $q = strpos($where,'?'); // позиция символа "?"
  3. $q1 = strpos($where,'-1.html'); // позиция "-1.html"
  4. if ($q){ $canonical = substr($where,0,$q); //если страница с параметрами - отрезаем их
  5. }else{ $canonical = $where; }
  6. if ($q1){ $canonical = substr($where,0,$q1).'.html'; //если страница с параметрами - отрезаем их и добавляем .html
  7. }else{ $canonical = $where; }
  8. if ($canonical=='/'){$canonical='';} //если главная, убираем слэщ в конце
  9. elseif ($canonical=='/index.php') {$canonical='';} //если главная, убираем index.php
  10. $canonical = 'http://'.$_SERVER['HTTP_HOST'].$canonical;
  11. ?>
вторая часть кода остается без изменений.

Еще от автора

Обновление компонента "Мне нравится"
Приветствую. Закончил версию с исправлением ошибок и багов, всем пользователям обновление выслано на электронку.
Обновление компонента  "Каталог дополнений в админку"
Приветствую. Обновление самого популярного аддона из официального каталога дополнений.
Обновленный парсер Яндекс.Карт
Приветствую Изменения довольно значительны, поэтому имеет смысл оформить их отдельным постом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.