А сега накъде?Реших да тествам новата Joomla 3 и по-точно Joomla3.1.5, за да видя какво ново са добавили нейните автори. И всъщност останах доста изненадан от възможностите и новостите, които платформата позволява, обаче…

излезе сериозен бъг с canonical линковете.

Всъщност това е ново в Joomla 3, което не присъстваше до момента в предните версии на този CMS. Обаче се оказа доста бъгав проблем, който се изразява в това, че когато потребител ползва споделен хостинг с cPanel, този canonical линк става универсален за генериран суб-домейн какъвто cPanel си прави автоматично и задължително при добавяне на нов домейн (add-on). Следите ли ми мисълта?

Айде малко теория за canonical link и SEO

Canonical link е термин и похват, създаден от Google, който има за цел да окаже правилния линк на дадена статия. Това е похват за избягване на дублираното съдържание, което от Google хич не харесват напоследък. Та за да не ви накажат за дублирано съдържание, трябва правилно да конфигурирате canonical линковете в сайта си. Давам пример:

http://wws.karavelikov.com/za-men
http://www.karavelikov.com/za-men
http://karavelikov.com/za-men

Това са три линка, които водят към едно и също съдържание. Това не се харесва на Google, защото ще се чудят кой всъщност да ви покажат, когато търсите информация за мен. Затова за да не се получи конфликт на интереси, е нужно да понагласите малко нещата с canonical link и 301 да речем. Така, ако сложим следния ред:

<link rel=“canonical“ href=“http://wws.karavelikov.com/za-men“ />

в <head> частта на страницата, Google вече няма да се чуди и ще избере точно този линк за резултатите си. А по-важното е, че няма да ме накаже за дублирано съдържание.

Какъв е тогава проблемът с Joomla 3 и canonical links?

Ами… малко сложен. Всъщност от Joomla са поработили в тази насока, но не са си домислили нещата и всъщност canonical link изглежда, че взема BASE_URL като параметър. А това е лошо. Това означава, че от колкото и места да си отворите сайта, той все ще си има релативното canonical url. Така ако Google изобщо реши да ви индексира сайта, сам ще прецени кой адрес точно да ползва. И се почва с едни проблеми…

Как да разрешим проблемът с Joomla 3 и canonical links?

Ами всъщност има два начина и те са много лесни. Преди да си изберете някой от тях, трябва да си отговорите на въпроса „Трябва ли ми да ползвам canonical links?“

Ако сте се справили добре с насочванията, ползвате само един домейн и т.н. условия, та работата ви е читава и нямате възможност за дублиране на съдържанието, тогава този похват не ви трябва. Да, някои „SEO гурута“ ще ви кажат, че той всъщност много ви трябва, защото ако вземат да ви крадат статии, пък ако вземете сами да си публикувате нещата и другате и т.н. и т.н. … та тогаваааа… Всъщност да кажем, че не ви трябва, защото станаха много „ако-та“. Тогава просто отворете index.php в Notepad или там каквото ползвате и напишете следният код преди затварящия php таг (?>).

$doc = JFactory::getDocument();
foreach ( $doc->_links as $k => $array ) {
if ( $array[‘relation’] == ‘canonical’ ) {
unset($doc->_links[$k]);
}
}

Ако решите, че canonical links е важен похват за вас, т.е. имате шанс за дублирано съдържание, било то от гореспоменатия проблем с cPanel или пък вътрешното търсене в сайта ви генерира нови линкове и т.н. причини, включително споменатата от SEO гурутата, тогава ще трябва да хванете втория влак. Намерете файла sef.php в /plugins/system/sef и коментирайте следния код, както съм направил аз в примера:

//if ($uri !== $link)
//    {
//         $doc->addHeadLink(htmlspecialchars($link), ‘canonical’);
//    }

Така тагът с canonical няма да се появява повече автоматично и ще можете да го манипулирате ръчно, както намерите за добре.

Ако трябва да обясня, то първият метод търси в кода таг <link> с атрибут rel=“canonical“ и ако намери го маха. Така дори ръчно да манипулирате този таг, той пак ще го махне. Докато вторият метод просто премахва тази „екстра“ от ядрото на Joomla 3.

Като за финал, нека ви дам един съвет – изчакайте Joomla 3.5 и не се занимавайте с тази бъгавинка. А ако сега ви трябва нова инсталация, качете си Joomla 2.5.

Надявам се да съм ви бил полезен с тази среднощна главоблъсканица. Ако да – драснете по едно благодарско в коментарите 😉