
Quick tabs Drupal: SEO проблемы и решение
Quicktabs - один из самых популярных модулей вкладок (табов) для CMS Drupal? но у них есть проблема - все вкладки имеют свой URL вида:
/somepage.html?qt-product_tabs=1#qt-product_tabs
Проблем для SEO в таком выводе урла две:
- Если сеошник не закроет ?qt-product_tabs в robots.txt, или не проставит canonical на основную страницу - это наделает дублей страниц, и ровно столько, сколько вкладок табов есть на ней
- Даже если сеошник внимательный и табы закрыл в файле robots.txt и поставил canonical, они по прежнему расходуют "краулинговый бюджет " поисковых ботов чем теоретически могут снижать скорость и эффективность обхода сайта этими ботами
Решение - патч
Оригинальное обсуждение проблемы и патч вы найдете тут. Но предлагаемый ими патч хоть и избавляет от перечисленых проблем, но делает все табы ссылками на текущую страницу, а ссылки страницы на саму себя тоже как бы не правильно. Я его чуточку переделал, и предлагаю вам как по мне оптимальное решение:
diff --git a/plugins/QuickQuicktabs.inc b/plugins/QuickQuicktabs.inc
index 94fa407..77751ce 100644
--- a/plugins/QuickQuicktabs.inc
+++ b/plugins/QuickQuicktabs.inc
@@ -180,7 +180,8 @@ class QuickQuicktabs extends QuickRenderer {
// Need to construct the correct querystring for the tab links.
$query = drupal_get_query_parameters(NULL, array("qt-$qt_name", 'q', 'page'));
- $query["qt-{$qt_name}"] = $tabkey;
+ //commenting out this line no remove non SEO friendly url hash. It should be a better solution eh
+ //$query["qt-{$qt_name}"] = $tabkey;
$link_options = array(
'attributes' => array(
@@ -188,7 +189,8 @@ class QuickQuicktabs extends QuickRenderer {
'class' => $classes,
),
'query' => $query,
- 'fragment' => 'qt-' . $qt_name,
+ 'fragment' => $qt_name . $tabkey,
'html' => isset($settings['html']) ? $settings['html'] : FALSE,
);
return $link_options;
В итоге мы избавляемся от переменных в табах, и получаем чистые и аккуратные вкладки вида : /somepage.html#tabs1.
# - не воспринимается поисковыми ботами как адрес, а воспринимается как якорь, который не будет индексироваться создавая при этом дубли.