Убираем дубли страниц ч.2
На днях попалась интересная статья про грязные методы конкуренции за места в ТОП поисковых систем. И один из приёмов — подсунуть поисковым системам дубли сайта конкурентов. После чего такой сайт начинает терять позиции. Задача админов и SEO оптимизаторов убрать все дубли. В прошлой статье мы рассмотрели основные дубли и примеры их склейки. В этой статье продолжим.
Не все знают, что главная страница еще может быть доступна по адресу site.ru\index.php
или site.ru\index.php?id=1
. Я проверил несколько сайтов на MODX и могу это подтвердить. Можете сами проверить — modx.com/index.php. И это ни что иное, как дубли. Тут уже обуждалась эта тема.
Решений этой проблемы несколько. Можно добавить переадресацию в настройки веб-сервера nginx.
if ($request_uri ~* '^/index.php$') { return 301 /; }
Или включить системную настройку request_method_strict, которая по умолчанию выключена. Если её включить, то запросы через параметр ID будут игнорироваться при включённых дружественных URL. Если дружественные URL отключены, то запросы с использованием псевдонима будут игнорироваться.
Или настроить «умную» переадресацию в плагине — если в адресе указан id страницы, то MODX пытается переадресовать на страницу с этим id. Если такой страницы нет, то показывает страницу 404 (должна быть настроена). Если параметра id нет, то плагин переадресует пользователя на главную страницу.
switch ($modx->event->name) { case 'OnHandleRequest': if (strpos($_SERVER['REQUEST_URI'],'index.php') !== false && $modx->context->get('key') != 'mgr') { if (!empty($_GET['id'])) { $id = (int)$_GET['id']; if (!$modx->getCount('modResource', array('id' => $id, 'published' => 1, 'deleted' => 0))) { $modx->sendErrorPage(); } } else { $id = $modx->getOption('site_start', null, 1); } $modx->sendRedirect($modx->makeUrl($id),array('responseCode' => 'HTTP/1.1 301 Moved Permanently')); } break; }
Лично я предпочёл вариант с плагином. Хотя я сильно сомневаюсь, что кто-то решит меня опускать в выдаче. Но лучше делать всё правильно. Можете проверить, что у меня получилось
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()