Здравствуйте,
в предыдущей своей заметке я рассказал Вам о проблемах дублирования контента в DataLife Engine, в частности о том, когда новости доступны сразу по нескольким адресам и об этом знают поисковые системы. Там же я предложил Вам один из способов решения проблемы - 301 редирект на PHP.
Сегодня, я предлагаю Вам второй способ решения проблемы дублирования контента в DataLife Engine (DLE) - использование мета-тега canonical.
В феврале 2009 года, Google, Yahoo! и Microsoft заявили о поддержке ими нового мета-тега - canonical, который предотвращает появление дублей новостей в поисковых системах. Размещается он, как и все мета-теги внути контейнера <head>...</head> и выглядит следующим образом: <link rel="canonical" href="http://www.example.com" />. В секции href указывается адрес новости, который будет учитываться поисковыми системами.
Перейдем к практической части. Как добавить мета-тег canonical в DataLife Engine (DLE)? Очень просто.
Откройте файл /index.php и найдите строку
if ($dle_module == 'showfull') {
добавьте ниже
$metatags .= <<<HTML
<link rel="canonical" href="{$full_link}" />
HTML;
Теперь в исходном коде полной новости будет присутствовать мета-тег canonical, что нам и было нужно. Если поисковая система узнает о каком-то другом адресе новости, то все равно будет учитывать только тот адрес, который указан в мета-теге canonical. Хочу также отметить, что поисковая система Яндекс не учитывает этот мета-тег, поэтому использовать его или 301 редирект решать Вам.
На этом пока все. Желаю Вам успешной борьбы с дублированием контента!
- Добавляем мета-тег canonical в DataLife Egnine (DLE)
2011-01-08 06:24 pm (UTC)
2011-01-08 09:39 pm (UTC)
2011-01-10 05:33 pm (UTC)
2011-01-10 07:31 pm (UTC)
ALEx
2011-02-13 07:39 pm (UTC)
Re: ALEx
2011-02-13 07:45 pm (UTC)
Canonical URL
2011-02-18 08:46 am (UTC)
site.ru/pesnya.html#comment ?
И расскажите подробнее, куда вставлять данный код, а то я не понял :(
Re: Canonical URL
2011-02-18 08:54 am (UTC)
Если есть вопросы по установке, могу лишь посоветовать снова внимательно перечитать заметку, т.к. более простой установки не может быть.
Re: Canonical URL
2011-02-18 07:19 pm (UTC)
alex
2011-03-06 09:45 pm (UTC)
$hosturl = $_SERVER['REQUEST_URI'];
$page_n ='page/'.$npage.'/';
if ($hosturl != '/'.$getcat .'/' ) {
if ( $category == $news_found ) {
$metatags .= "\n";
}
}
Сеня накидал как смог по своим знаниям.. но у всех страниц page/1/ /2/ /3/ .... теперь метатегах ссылка на на урл до категории. как подставить page с стр., понятия не имею.. Это только написал кое как.
Re: alex
2011-03-06 10:02 pm (UTC)
Alex
2011-03-06 10:14 pm (UTC)
Re: Alex
2011-03-06 10:44 pm (UTC)
Alex
2011-03-07 12:36 am (UTC)
мне этот хак 3 раза писали. И все время вылезали косяки, то page не учитывается, то в в подкатах не появлялся. То в категории в которой не должен появиться (причем условие стоит) а он есть..
Хотел выложить у вас, но ЖЖ режит, так что если что, Я по просьбе обязательно выложу.
Alex
2011-03-07 07:00 pm (UTC)
А что делать? как все таки сверить урл если включено кеширование.
У Вас нет мыслей.?
Re: Alex
2011-03-07 07:02 pm (UTC)
Re: Alex
2011-03-07 07:08 pm (UTC)
или
я правильно понимаю : записывается в кеш и потом из файла без запросов отдает.
может сделать проверку кеша и если он хоть немного изменен в то не кешировать. Я не программист, поэтому возможно вы меня не поймете. Т.к. я могу нести бред)
Re: Alex
2011-03-07 07:30 pm (UTC)
2011-03-07 07:53 pm (UTC)
Ну по поводу запрета индексации это зло.
У меня в коротких новостях уникальный текст и на основе хака который я доделал происходит редирект (отказался от каноникал в пользу Яндеска)
Причем с учетом страниц PAGE (если конечно эта страница действительно page/2/,/3/,/4/, а не page/2/rrtrмусорetret или 4545мусор4545/page/2/
+ Я учел $category чтоб не было редиректа с domen.ru/laptop/ на domen.ru/main/laptop/ НО у страниц page при таком условии Редирект срабатывает. Все как и задумано было.
+(т.к. я надеюсь в скором времени реализовать хак который будет добавлять к страницам page/2/,/3/,/4/.... уникальный TITLE.
+ если не учитывать page то будет редирект на категорию. А это конечно глупо, ведь как пользователь не сможет использовать навигацию по страницам ))). Вообщем все отлично, но отказываться от кеширования для меня это самоубийство. И теперь выбор 2-х зол, либо кеширование, либо правильные урлы.
Да на оф. сайте DLE новостей, действительно сверка урла происходит, и срабатывает редирект.
2011-03-07 07:55 pm (UTC)
ALEX
2011-03-07 07:59 pm (UTC)
По моему там говорилось о панигаторе который генерил page/1/
если мы на page/2/ то панигатор делал ссылку page/1/ .Это вылечили.
Если это действительно так, то я пойду качать на оф сайт.
Скажи это еще раз), мне не верится.
Re: ALEX
2011-03-07 08:02 pm (UTC)
Re: ALEX
2011-03-07 08:08 pm (UTC)
Так страница page/1/ это либо сам домен, или кат, или подкат. - Поэтому отметаем.
НО
page/2/, page/3/, page/4/ общий TITLE который берется у домена, либо у ката если указана, или у подката если он заполнен.
Я я хочу сделать чтоб для для страниц page/2/, page/3/, page/4/ был свой тайтл, который брался из файла, + с учетом категории, о как :)
Alex
2011-03-07 08:28 pm (UTC)
там реализована замена ссылок даже с условием кеша.
Как он это сделал фик знает, модуль зазенден, Но если капать в эту сторону то canonical возможно осуществить я думаю, (добавить в кеш метатег если урл не правильный) но с редиректом не понимаю.. помоему нельзя ведь header("HTTP/1.1 301 Moved Permanently"); понимает на уровне сервера (php)/ Короче тут я затупил(в сомнении), т.к. в этом очень плохо смыслю.
Поправьте меня, если я не прав, т.к. знать лучше чем догадываться))
Alex
2011-03-07 09:38 pm (UTC)
597 стр. engine/engine.php
$tpl->result['content'] .= $active;
сказали вот с этим работать :)
это импорт из кэша.
а как сделать? черт знает. ))
alex
2011-03-08 12:13 am (UTC)
Есть нюанс, как исключить длешную 404 ?
как названна переменная 404 у дле.?
ведь под условие if ($dle_module=='cat') попадает. И не исключает там.(
Скажите кто знает...
alex
2011-03-08 12:50 am (UTC)
не могу решить ньанс с 404 ((
капец какой то..
alex
2011-03-08 05:42 am (UTC)
Re: alex
2011-03-08 09:40 am (UTC)