Привіт, друзі. Галас навколо розширених фрагментів в Google вже трохи стихла, чому, безумовно, посприяв і сам Google. Це ми з вами, хитрі seo’шники, добаловались 🙂 З одного боку шкода, що Google відсік фейкові розширені сніппети, наприклад, зірочки (відгуки, рейтинги), рецепти (можна було в сніппет виводити будь-яку картинку) і ін., але з іншого боку, всякі ГС не будуть цим зловживати.

Так, були часи, всі ці «шаманства» з сниппета давали прекрасний результат, я для одного з своїх сайтів виводив в сніппет картинку з посади, завдяки чому CRT зростав у 2 і більше разів. Але це в минулому…

Тим не менше, деякі «штучки» досі працюють — хлібні крихти Breadcrumb, наприклад. А раз це працює, то гріх не скористатися.

Сьогодні цим і займемося — я вам розповім, як модифікувати звичайний нудний speedbar (так називається модуль хлібних крихт в DLE) і зробити його красивим і за всіма стандартами schema.org.

Дані правки я вже вносив на кількох своїх сайтах, запевняю — це працює. Правда от на CTR це не впливає ніяк 🙁 Але я то знаю, вам все одно це треба!

Дані правки призначені ТІЛЬКИ для старих версій DLE 7.x — 9.x.
Якщо у вас встановлений движок версії 10.x і вище, вам не потрібно нічого робити, т. к. микроразметка хлібних крихт вже реалізована «з коробки». Дякую мені 🙂

Всі правки дуже прості, але чомусь мало хто може сам зрозуміти, як їх реалізувати. Я бачив кілька людей, які просять за це гроші, а так само знаю тих, хто пропонує свої гроші за реалізацію даної фішки. Я ж поділися своїм досвідом безкоштовно — мені не шкода!

Перед початком роботи з кодом пропоную подивитися, що з цього вийде.

Ось як це було, до правки коду:

А ось те, що вийшло в результаті:

Як бачите, ці правки я вносив для свого сайту www.winterlife.ru. Але вносив я їх в процесі написання посту, тому безпосередньо у видачі Гугла результатів сьогодні побачити не вийде, але через пару днів — ласка, результати індексуються дуже оперативно.

Микроразметка хлібних крихт в DLE з версії schema.org

Відкриваємо /engine/engine.php

Знаходимо:

$s_navigation = \”{$config[‘http_home_url’]}\”>” . $config[‘short_title’] . “”;

$s_navigation = “” . $config[‘short_title’] . “”;

Замінюємо:

$s_navigation = \”v:Breadcrumb\”>\”{$config[‘http_home_url’]}\” rel=\”v:url\” property=\”v:title\”>” . $config[‘short_title’] . ;

$s_navigation = “” . $config[‘short_title’] . ““;

Знаходимо:

$tpl->set ( ‘{speedbar}’, . stripslashes ( $s_navigation ) . );

$tpl->set ( ‘{speedbar}’, ‘‘ . stripslashes ( $s_navigation ) . ‘‘ );

Замінюємо:

$tpl->set ( ‘{speedbar}’, . stripslashes ( $s_navigation ) . );

$tpl->set ( ‘{speedbar}’, ‘‘ . stripslashes ( $s_navigation ) . ‘‘ );

Далі відкриваємо /engine/modules/functions.php

Знаходимо:

if( $config[‘allow_alt_url’] == “yes” ) $list = \”. $config[‘http_home_url’] . get_url( $id ) . \”>{$cat_info[$id][‘name’]}”;

if( $config[‘allow_alt_url’] == “yes” ) $list = “{$cat_info[$id][‘name’]}”;

Замінюємо:

if( $config[‘allow_alt_url’] == “yes” ) $list = \”v:Breadcrumb\”>\”. $config[‘http_home_url’] . get_url( $id ) . “/\” rel=\”v:url\” property=\”v:title\”>{$cat_info[$id][‘name’]};

if( $config[‘allow_alt_url’] == “yes” ) $list = “{$cat_info[$id][‘name’]}“;

Знаходимо:

if( $config[‘allow_alt_url’] == “yes” ) $list = \”. $config[‘http_home_url’] . get_url( $parent_id ) . \”>{$cat_info[$parent_id][‘name’]}” . ” » “ . $list;

if( $config[‘allow_alt_url’] == “yes” ) $list = “{$cat_info[$parent_id][‘name’]}” . “» ” . $list;

Замінюємо:

if( $config[‘allow_alt_url’] == “yes” ) $list = \”v:Breadcrumb\”>\”. $config[‘http_home_url’] . get_url( $parent_id ) . “/\” rel=\”v:url\” property=\”v:title\”>{$cat_info[$parent_id][‘name’]}. ” » “ . $list;

if( $config[‘allow_alt_url’] == “yes” ) $list = “{$cat_info[$parent_id][‘name’]}” . “» ” . $list;

Ну ось і все! Залишилося тільки переконатися, що все правильно і все працює — скористайтесь валідатором мікророзмітки від Google.

А також додаткову інформацію про даної микроразметке рекомендую прочитати в мануалах Гугла.

Ще у мене є невеличка поправка. Я вважаю, що немає необхідності в хлібних крихтах дублювати назву поточної новини. Адже і так зрозуміло, де ми зараз знаходимося і яку новину переглядаємо. Якщо ви згодні зі мною, тоді треба виконати наступне:

Знайти:

} elseif ($nam_e) $s_navigation .= ” » “ . $nam_e;
if ($titl_e) $s_navigation .= ” » “ . $titl_e;

} elseif ($nam_e) $s_navigation .= “» ” . $nam_e;
if ($titl_e) $s_navigation .= “» ” . $titl_e;

Замінити:

}

}

Тепер точно все. Користуйтеся на здоров’я.

Короткий FAQ по частих проблем та питань

Тут я постараюся зібрати відповіді на всі ваші питання, що стосуються роботи даного хака.

Q: чи Все зробив по інструкції, але валідатор виводить якусь нісенітницю такого виду: Сайт.ру ” … “Подкатегория2″ Категория1 ” Подкатегория2
A: Справа в тому, що при виведенні категорії новини в анонсі, використовується той же алгоритм формування посилань. Тобто сюди підключається розмічена мікрокодом функція. Тут є два виходи. В шаблоні теми shortstory.tpl знайти і замінити {link-category} на {category} або зовсім видалити тег {link-category}.
Якщо виводите категорію при перегляді повної новини, то необхідно проробити теж саме і для fulltstory.tpl.

Q: У мене виникла проблема з виведенням підкатегорій в speedbar.
A: Прочитайте, будь ласка, ось цей коментар #comment-12698.

Q: Як реалізувати мікророзмітку хлібних крихт для тегів за такою ж схемою?
A: Інструкція для тегів описана в цьому коментарі #comment-12804.

Q: Завдяки невеликій правці, описаної в пості трохи вище стаття тепер не посилається сама на себе. Але ось категорія та підкатегорія має посилання на саму себе. Що робити?
A: Все просто, як прибрати циклічне посилання описано в цій коментарі #comment-12808.

Пишіть коментарі, задавайте питання, вносьте свої пропозиції!

З повагою, Олександр Алаєв