SEO оптимизация DLE: Часть 3 — Тонкости и особенности внутренней оптимизации движка

SEO оптимизация DLE – Часть 3 Привет, друзья. Наконец-то пришло время для третьей части моего мега-руководства по оптимизации DLE.

Только сейчас с ужасом осознал, что предыдущая вторая часть руководства вышла более полугода назад!

По сложившейся традиции мы будем говорить о внутренней оптимизации сайта, а конкретно в этой части я расскажу про некоторые особенности движка и мелкие, но очень полезные фишки и хаки, которые не подошли по формату в предыдущих частях.

Эта часть так же связана с адресами страниц, но в отличии от второй части, где мы боролись с дублями и исключали их появление, в этой части мы рассмотрим, как избавиться от несуществующих страниц, появившихся в результате удаления или ошибки в адресе.


Пост обновлен 6 мая 2014 года:
Обновлены вносимые в движок изменения, добавлена поддержка новых версий движка.
Актуально для следующих версий DLE: 7.x, 8.x, 9.x, 10.x!

Другие части SEO-руководства:
Часть 1, Оптимизация заголовков Title — https://alaev.info/blog/post/2373
Часть 2, Борьба с дублированием контента — https://alaev.info/blog/post/2400
Часть 4, Исправление для версий DLE 9.3, 9.4, 9.5, 9.6 — https://alaev.info/blog/post/3513


Редирект с несуществующих страниц пагинации на правильные и существующие

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Фишка была придумана буквально сегодня, когда я нашел множество 404 ошибок на одном из сайтов в панели вебмастера.

Возьмем вполне реальную ситуацию – по какой-то причине вы решили изменить количество новостей, выводимых на главной странице или страницах категорий. Как случилось у меня: редизайн сайта; структура страниц полностью поменялась; было решено выводить больше кратких анонсов новостей на каждой странице (было 7, стало 10). Итог был следующим — в панели вебмастера появилось много страниц с 404 ошибками. Простая арифметика, было на сайте 1000 новостей, на каждой странице выводилось по 7 анонсов, следовательно, только на главной у нас получается 1000/7=142 страницы пагинации. После изменений страниц стало ровно 100. В итоге 42 страницы просто пропали. А если возьмем еще категории, то несуществующих страниц уже сотня-две. Это плохо, некрасиво и вообще не тру.

Раскрыть список правок

Открываем файл /engine/modules/show.short.php и в самом низу находим:

}
?>

ВЫШЕ добавляем:

//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая
$all_pages_count = @ceil( $count_all / $config['news_number'] );
	if ($cstart > $all_pages_count) {
		if ($all_pages_count > 1) {
			header('HTTP/1.1 301 Moved Permanently');
			header ('Location: ' . $url_page . '/page/' . $all_pages_count . '/');
			die();
		} else {
			header('HTTP/1.1 301 Moved Permanently');
			header ('Location: ' . $url_page . '/');
			die();
		}
	} 
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая

Скрыть список правок

Немного поясню код: идет проверка на условие — если номер текущей страницы больше чем максимальное количество страниц на сайте (или в категории), то происходит редирект на последнюю страницу. Если запрашивается страница номер 2, а страниц всего одна, то происходит редирект на гравную страницу (или главную страницу категории).

Пример на пальцах, кто-то запрашивает страницу сайта site.ru/page/435/, а на этом сайте всего 268 страниц, следовательно, случится редирект на адрес site.ru/page/268/.


Редирект с несуществующих страниц пагинации комментариев на правильные

Актуальность: Только версии DLE 8.x, 9.x. Для DLE 10.x не актуально, т.к. уже реализовано в самом движке.

Аналогичная ситуация с пагинацией в комментариях. Может возникнуть такая ситуация, что, например, вам наспамили в комментариях, поисковики проиндексировали все страницы комментариев, а потом вы это заметили и удалили все комменты. Но страницы, которые проиндексировал поисковик, все равно останутся, просто на них не будут отображаться никакие комментарии, а будет полный дубль основной страницы новости. И это печально, надо исправлять!

Раскрыть список правок

Открываем файл /engine/classes/comments.class.php и в самом низу находим:

	}
 
}
?>

ВЫШЕ добавляем:

//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая
	if ( $this->cstart > $enpages_count ) {
		header('HTTP/1.1 301 Moved Permanently');
		header('Location: ' . $url);
		die();
	}
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая

Скрыть список правок

Ну вот, теперь все в порядке, можете проверить.


Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Типичная ситуация – добродушный посетитель вашего сайта решил поделиться ссылочкой на понравившийся материал в своем уютном бложике на ЖЖ или на МоемМире. Спасибо ему за это, молодец! Только вот беда – пользователь не знаком с html как таковым, он ничего кроме визуального редактора в глаза не видел. У меня таких «простофиль» на emofans.ru пруд пруди, ссылками делятся направо и налево. Так вот, вставил ссылочку человек в свой блог, да нечаянно окончание в ссылке потер (получилось не site.ru/123-page_name.html, а site.ru/123-page_name.htm), а проверить забыл, так и осталась «битая» ссылка на веки вечные, а в панели вебмастера ошибка затаилась и глаза мозолит! Или еще живой пример, пользователь не потер окончание, а, наоборот, в визуальном редакторе слилась ссылка с текстом (получилось не site.ru/123-page_name.html, а что-то в духе site.ru/123-page_name.html,где), и опять ошибки свалились на вебмастерскую голову. Таких примеров у меня много, специально не исправлял эти ошибки до написания данного поста, чтобы не забыть.

Раньше тут было очень сложное решение, которое зависело от версии движка. Но с момента написания данного поста я достаточно прокачал свои умения, чтобы составить универсальное решение для всех версий DLE и вообще совершенно для любого движка или любого сайта!

Раскрыть список правок

Открываем .htaccess, который лежит в корне и находим:

# Редиректы
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]

ВЫШЕ добавляем:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)\.html(.+) [OR]
RewriteCond %{REQUEST_URI} ^(.*)\.htm$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)\.ht$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)\.h$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)\.$
RewriteRule ^(.*)\.(.*) $1.html [R=301,L]

Скрыть список правок

Вне зависимости от выбранного типа ЧПУ при переходе по любой «кривой» ссылке посетитель попадет туда, куда должен был попасть.


Редирект с разделов или категорий, которых больше не существует, на главную страницу

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Пример из жизни: вы решили поменять структуру сайта или просто удалили какие-то категории за ненадобностью, следовательно, эти страницы перестанут существовать, а ссылки на них могут где-то остаться. Например, на emofans’е у меня когда-то были блоги для пользователей, доступные по адресу site.ru/blog/, а в них шло деление на пользователей, вот так site.ru/blog/user1/, site.ru/blog/user2/ и т.д. Уже много лет как я снес эти блоги за ненадобностью, а ссылки на них и ошибки в панели вебмастера живут.

Еще данная правка позволит избежать появления адресов страниц полной новости без расширения на конце или вообще адресов полной новости когда отсутствует целый кусок url в конце. Таким образом, в сочетании с предыдущим пунктом, эти изменения помогут на 99% избежать появления неверных и нежелательный адресов.

Раскрыть список правок

Открываем файл /engine/engine.php и находим:

			if (!$category_id) $category_id = 'not detected';

ЗАМЕНЯЕМ на:

//решение проблемы с категориями, которых не существует
			if (!$category_id AND $view_template != "rss") {
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$config['http_home_url']}");
					die("Redirect");
			}
//решение проблемы с категориями, которых не существует

Скрыть список правок

Теперь все категории или каталоги, которые не существуют и не имеют своего id (проверка на существование идет именно по id) будут редиректиться на главную страницу.


Редирект для публикаций, у которых отсутствует ID, на главную страницу

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Еще одна реальная история, взятая с моих сайтов. В панели вебмастера висит много страниц с ошибкой 404 такого вида site.ru/category/subcat/page-name.html, а по правилам должно быть так site.ru/category/subcat/123-page_name.html. Вот честно, до сих пор не понимаю, каким образом и почему пропал ID новости и кто ссылался на публикации таким образом. Никаких модулей и хаков, которые убирают из url его идентификатор я никогда не использовал, так что грешу на пользователей, которые «криво» ставят ссылки в своих бложеках на мой сайт. Ну да ладно, это уже не важно, а важно разобраться с этой проблемой!

Только для версий DLE 10.x (а так же для 9.5, 9.6, 9.7 и 9.8)

Новая версия кода помимо того, что редиректит «проблемные» адреса страниц полной новости, но так же редиректит на главную еще и несуществующие или удаленные статические страницы. Связано это с изменившейся логикой в движке. С одной стороны, наверное, это хорошо, ведь одним махом две проблемы решаем. С другой стороны, изначально движок выдает обычную 404 ошибку — если вас устраивает такое положение дел, тогда не вносите правки, описанные в этом пункте.

Раскрыть список правок

Открываем файл /engine/modules/static.php и находим в самом конце:

	@header( "HTTP/1.0 404 Not Found" );
	$lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']);
	msgbox( $lang['all_err_1'], $lang['static_page_err'] );

ЗАМЕНЯЕМ на:

// 301 редирект на главную с адресов страниц новостей, где пропал id, а так же несуществующих статических страниц
	header("HTTP/1.0 301 Moved Permanently");
	header("Location: {$config['http_home_url']}");
	die("Redirect");
// 301 редирект на главную с адресов страниц новостей, где пропал id, а так же несуществующих статических страниц

Скрыть список правок

Старое решение. Только для версий DLE 7.x, 8.x, 9.0, 9.2 и 9.3

Все адреса, содержащие на конце .html и не содержащие в себе ID будут редиректиться на главную страницу. Существующие и корректные статические страницы, хоть и они так же не имеют ID в url-адресе, редиректиться не будут, а будут работать как и прежде.

Раскрыть список правок

Открываем все файл /engine/engine.php и находим:

				if ($subaction == '') $subaction = "showfull";
			}

НИЖЕ добавляем:

// 301 редирект на главную с адресов страниц новостей, где пропал id
			if ( ( $config['allow_alt_url'] == "yes" ) && (strpos($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) {
 
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$config['http_home_url']}");
					die("Redirect");
			}
// 301 редирект на главную с адресов страниц новостей, где пропал id

Скрыть список правок


Редирект для удаленных или несуществующих новостей на главную

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Ну, тут стандартная ситуация и может встретиться на любом сайте. Вы удалили какую-то новость и, понятное дело, будет выдаваться 404 ошибка. Если вас это не устраивает, а именно то, что выдается 404 ошибка, то можно сделать, например, 301-редирект на главную страницу сайта, которая уж точно существует ;)

Раскрыть список правок

Открываем файл /engine/modules/show.full.php и находим:

	elseif( ! $news_found ) {
		@header( "HTTP/1.0 404 Not Found" );
		msgbox( $lang['all_err_1'], $lang['news_err_12'] );
	}

ЗАМЕНЯЕМ на:

// 301 редирект на главную, если новость не найдена/не существует
	elseif( ! $news_found ) {
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$config['http_home_url']}");
					die("Redirect");
	}
// 301 редирект на главную, если новость не найдена/не существует

Скрыть список правок

Теперь при переходе на несуществующую или удаленную публикацию будет осуществляться редирект на главную страницу сайта.

А вообще, ребята, у меня есть отдельный очень большой пост про 301-редирект на все случаи жизни.
Я вам рекомендую с ним ознакомиться, независимо от того, работаете ли вы только с DLE или другой какой-то CMS.

Запрещаем индексацию разделов сайта при помощи мета-тега robots

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Итак, помните я недавно публиковал пост про особенности индексации сайтов, robots.txt и мета-тег robots, где говорил, что закрывать страницы от индексации при помощи robots.txt не тру, а вот закрывать при помощи <meta name="robots" content="noindex"> правильный вариант. Настоятельно рекомендую изучить данный пост.

А сейчас я расскажу, как можно реализовать вывод этого самого метатега в движке DLE в определенных разделах сайта.
Расширенную версию данного трюка смотрите в посте про правильный robots.txt для DLE.

Если не чувствуете в себе уверенности, настоятельно рекомендую использовать мой модуль DonBot! С модулем вы по любому не ошибетесь нигде, а так же вам не придется после каждого обновления движка вносить данные правки.

Раскрыть список правок

Открываем уже полюбившийся файл /engine/engine.php, находим бесполезную строку и удаляем:

<meta name="robots" content="all" />

Если такой строки нет, ничего страшного, просто идем дальше.

Находим далее:

if ($config['allow_rss']) $metatags .= <<<HTML
 
<link rel="alternate" type="application/rss+xml" title="{$rss_title}" href="{$rss_url}" />
HTML;

ВЫШЕ добавляем:

if ($subaction == 'userinfo' OR
	$subaction == 'allnews' OR
	$subaction == 'newposts' OR
	$do == 'stats' OR
	$do == 'addnews' OR
	$do == 'register' OR
	$do == 'favorites' OR
	$do == 'rules' OR
	$do == 'pm' OR
	$do == 'feedback' OR
	$do == 'lastcomments' OR
	$do == 'lostpassword' OR
	$do == 'search' OR
	$do == 'lastnews' OR
	$do == 'alltags' OR
	$do == 'tags' OR
	$dle_module == 'date') $metatags .= <<<HTML
\n<meta name="robots" content="noindex,nofollow" />
HTML;

Если вы хотите закрыть от индексации страницы пагинации, типа site.ru/page/X/ или site.ru/category/page/X/, тогда необходимо добавить одну строчку:

	(intval($_GET['cstart']) > 1 )

В итоге код, приведенный выше преобразуется так:

if ($subaction == 'userinfo' OR
	$subaction == 'allnews' OR
	...
	$dle_module == 'date' OR
	(intval($_GET['cstart']) > 1 )) $metatags .= <<<HTML
\n<meta name="robots" content="noindex,nofollow" />
HTML;

Скрыть список правок

Теперь я поясню, что означает каждый из пунктов условия if, и я для вас подготовил замечательную табличку с описанием.

МодульОписаниеПример URL
userinfoПросмотр профиля пользователя.site.ru/user/user_name/
allnewsПросмотр новостей конкретного пользователя.site.ru/user/user_name/news/
newpostsПросмотр новинок, индивидуально для каждого пользователя, доступно только зарегистрированным, гостям показывается ошибка.site.ru/newposts/
statsСтраница статистики сайта и ТОП10 пользователей.site.ru/statistics.html
addnewsСтраница добавления новости на сайт.site.ru/addnews.html
registerСтраница формы регистрации нового пользователя.site.ru/index.php?do=register
favoritesПросмотр избранного, индивидуально для каждого пользователя, доступно только зарегистрированным, гостям показывается ошибка.site.ru/favorites/
rulesСтраница правил сайта, которые показываются перед регистрацией, которые существуют так же отдельной страницей.site.ru/rules.html
pmПросмотр личных сообщений пользователем или форма отправки личного сообщения любому пользователю сайта.site.ru/index.php?do=pm
feedbackСтраница обратной связи.site.ru/feedback.html
lastcommentsПросмотр всех комментариев к публикация на сайте в обратном хронологическом порядке.site.ru/index.php?do=lastcomments
lostpasswordСтраница восстановления пароля.site.ru/index.php?do=lostpassword
searchРаздел поиска по сайту.site.ru/index.php?do=search
lastnewsПросмотр всех последних новостей сайта. Точная копия главной страницы сайта и всех страниц пагинации.site.ru/lastnews/
alltagsПросмотр страницы всех тегов сайта.site.ru/tags/
tagsПросмотр публикаций с конкретным тегом.site.ru/tags/Tag+Name/
dateАрхив сайта. Список публикаций за определенный год или месяц или день.site.ru/2007/ или site.ru/2007/06/ или site.ru/2007/06/22/

* Самый важный момент — при закрытии от индексации страниц описанным методом, необходимо убрать запрещающие правила в robots.txt для страниц и разделов, которые мы закрыли при помощи мета-тага. Иначе никакого смысла не будет.

На свое усмотрение вы можете из приведенного мною кода убрать какие-то части, разделы, которые конкретно для вашего сайта закрывать от индексации не требуется. Так что, пожалуйста, будьте внимательнее.


Добавляем тег rel=”canonical” для страниц просмотра полной новости

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Помнится, кто-то в комментариях одной из предыдущих частей просил рассказать, как выводить тег rel=”canonical” в публикациях на сайте, так вот, кто не видел моего комментария с описанием данного метода, читайте дальше.

Раскрыть список правок

Открываем файл /engine/modules/show.full.php и...

для версий DLE 7.x, 8.x, 9.0, 9.2 и 9.3 находим:

		} else {
 
			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
			$print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
			$short_link = "";
 
		}

для версий DLE 10.x (а так же для 9.5, 9.6, 9.7 и 9.8) находим:

		} else {
 
			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
			$print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
			$short_link = "";
			$link_page = "";
			$news_name = "";
 
		}

НИЖЕ добавляем:

			$full_canonical = $full_link;

Открываем файл /engine/engine.php и находим:

if ($config['allow_rss']) $metatags .= <<<HTML

ВЫШЕ добавляем:

if ($full_canonical) {
 
	$metatags .= <<<HTML
 
<link rel="canonical" href="{$full_canonical}" />
HTML;
 
}

Скрыть список правок

Как бы и все ;) Кому надо, пользуйтесь на здоровье.


Что-то я, наверное, забыл описать в данном посте, так как информацию, описанную тут, собирал в течение длительного времени в голове, а не записывал в блокнот. Но если вы что-то вспомните или найдете необычные ошибки на своем сайте – обязательно пишите в комментариях, я придумаю решение вашей проблемы и добавлю его в пост.

Спасибо за внимание, друзья, оставайтесь на связи и подписывайтесь на новости блога.

PS Я не уверен, будет ли следующая часть руководства, так как на данный момент писать в ней нечего, все, что могло бы быть полезным, уже описано в существующих трех частях. Но мало ли… Все зависит от вас и ваших вопросов и предложений!

Александр «АлаичЪ» Алаев
Александр «АлаичЪ» Алаев

Вот уже 18 лет я профессионально занимаюсь созданием и продвижением сайтов и 13 лет с удовольствием пишу в любимый блог. Создал заслужившие доверие в seo-сообществе программы FastTrust и ComparseR и известный сервис для проверки траста сайтов CheckTrust.ru.

В 2014 основал веб-студию «АлаичЪ и Ко» в Краснодаре: 1 место в рейтинге агентств интернет-маркетинга (Рейтинг Рунета), 2 место в рейтинге SEO-компаний (CMSmagazine), 12 место в рейтинге известность бренда SEO-компаний в России (SeoNews).

Выступаю на профильных конференциях (All In Top, SEO Conference, SEMPRO, Baltic Digital Days). Веду канал в telegram про seo и бизнес. SEO-специалист года 2019 и 2020 (Sape).

Ерунда и баянЪ!Зачет! Плюсую!
+53

Профессиональный технический аудит и рекомендации по оптимизации вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

30 000 руб.

Комплексный подход к решению поставленных задач: достижение топ-10 и увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

45 000 руб.

У вас недостаточно знаний и нужны ответы на вопросы?
Интересует мнение эксперта или надо проверить подрядчика?
Вы задаете вопрос — я отвечаю!

5 000 руб./час

Проведу подробное исследование вашего сайта и основных конкурентов, опубликую материал на блоге для обсуждения и коллективного поиска новых идей.

70 000 руб.

Я начал запись своего обучающего курса по seo-продвижению.

В каждом видео я разбираю какую-то одну важную тему, и делаю это последовательно, в порядке, подходящем для изучения с нуля. Видео выкладываются раз в неделю – по средам. Я думаю, весь курс будет состоять из 50-70 роликов, так до конца еще далеко, а значит самое время подписаться и начать изучение вместе со мной.

В блоке слева всегда будет выводиться самое свежее видео курса. Ссылки: на мой канал, на плейлист обучения.

Комментарии: 600 Написать комментарий
  1. ПафНутиЙ (124 комм.)

    Однозначно полезнейшая информация! Спасибо, обязательно буду пользовать метатег robots.

    Но вот что не мешало бы уточнить — это версии движка, для которых это актуально, а то многие вещи целсофт всётаки правит (те же ссылки на категории без слешей/со шлешами) а неродивые пользователи (коих привеликое множество) будут дополнительно пилить двиг )))).

    Ответить
    • АлаичЪ

      Спасибо за комментарий.

      В данной части все правки актуальны для любой версии движка, хоть для самой старой, хоть для актуальной (вроде пока что это 9.5). В предыдущих же частях я везде пишу актуальность и условия, при которых надо или не надо вносить эти самые правки. В частности про слеши, вроде, проблема не актуальна начиная с DLE 9.3, но только при включенной настройке в админке, которая активирует исправление. Но вот не все люди после обновления заглядывают туда.

      В общем, народ у нас не внимательный, делают ошибки даже на ровном месте :(

      Ответить
      • ПафНутиЙ (124 комм.)

        Не то чтобы не внимательный, а скорее ленивый, отсюда и невнимательность. Двиг обновил, а в админку заглядывать — нуеёнафиг ))

        Вот и получается...

        Ответить
        • АлаичЪ

          В данном случае надо не лениться прочитать полный список изменений в новой версии на оф.сайте перед обновлением.

          Даже внимательно просматривая админку очень легко пропустить новый пункт настройки среди огромного их количества.

          Ответить
      • Владимир (1 комм.)

        Спасибо за статью! Долго искал, как добавить каноникал в новости.

        Но мне нужно немного не так, потому что у меня материал будет входить в несколько категорий, поэтому мне надо указывать каноникал от каждой новости, потому что по умолчанию в этом случае ставится каноникал первой по списку категории, в которую добавлен материал. И поисковые машины будут думать, что в остальных категориях (кроме нескольких первых) нет материалов, следовательно не будут их нормально ранжировать.

        Хотелось бы попросить подсказать можно ли это осуществить через доп. поля? Если можно то как? Пробовал изменить ваш код что типа того)) $full_canonical = [xfvalue_canonical]; но не получается))

        Ответить
  2. Andrey (14 комм.)

    Несомненно полезно...

    Вопрос: Нужно ли закрывать метароботсом страницы пагинации?

    И еще, например, я у себя в панели вебмастера обнаружил такие вот 404 страницы:

    http://site.com/2011/07/ или http://site.com/2012/01/page/8/

    Подходит ли какой либо пункт статьи, чтобы исправить этот недоразумение?

    Или вот еще такое — http://site.com/print:page/?

    Ответить
    • АлаичЪ

      Закрывать страницы пагинации или нет — это только ваше решение. Я на своих сайтах не закрываю (когда-то и где-то я говорил, что закрываю, но я перестал это делать).

      Решения, которое бы подставляло метатег robots для страниц пагинации, я в этом посте не рассматривал.

      Теоретически проблемы с http://site.com/2011/07/ или http://site.com/2012/01/page/8/ или http://site.com/print:page/ могут решиться вот этим пунктом "Редирект с разделов или категорий, которых больше не сущестувет, на главную страницу". Но мне негде это проверить. Так что проверьте вы, а потом напишите что и как работает.

      Ответить
      • Andrey (14 комм.)

        А я закрываю :) Ладно...

        На счет http://site.com/2011/07/ или http://site.com/2012/01/page/8 и «Редирект с разделов или категорий, которых больше не сущестувет, на главную страницу» — не работает!

        Нужно будет как-то думать, что сделать... Может быть если сервер отдает 404, то перенаправлять на нужную страницу (например, главную). Только вот, думаю, все равно 404-ки будут в панели после этого, даже и не знаю...

        Или же искать решение наподобие «Редирект с несуществующих страниц пагинации на правильные и существующие».

        Поправка — но http://site.com/print:page — работает!

        Ответить
        • АлаичЪ

          Я могу написать код и для 301-редиректа с любой несуществующей страницы на главную, могу написать конкретно только для архива. Да вообще можно что угодно сделать =)

          Ответить
          • Andrey (14 комм.)

            Я вроде выследил что заменить на

            header ("HTTP/1.0 301 Moved Permanently");

            header ("Location: {$config['http_home_url']}");

            die ("Redirect");

            в шоушорт.пхп

            Перенаправление работает... Теперь вот вот думаю... оставлять или попробовать сделать на более глобальном уровне как-то...

            Меня интересует один вопрос — если сервер отдает 404, то если мы пропишем потом делать 301-й редирект, будет гугл хавать это как 404-я страница... или нет...

            Ответить
            • АлаичЪ

              Сервер не может отдавать несколько разных ответов враз. Сервер скажет или 404 или 301, одновременно и то и другое не случится :)

              Если пропишем 301 редирект, то со временем (недели две) в панели вебмастера Гугла ошибки сами пропадут.

              Ответить
  3. Сергей (3 комм.)

    Скажите пожалуйста, а есть какая-либо программа, которая могла бы найти 4-4 страницы?

    Заранее благодарен и если можно ссылочку на эту программу.

    Ответить
  4. Дмитрий (44 комм.)

    Странно, но не могу найти <meta name="robots" content="all" /> в engine.php. DLE 9.5.

    Кстати, это и для Yandex, и для Google?

    Ответить
    • Andrey (14 комм.)

      > Странно, но не могу найти <meta name="robots" content="all" /> в engine.php. DLE 9.5.

      В 9.5 убрали.

      > Кстати, это и для Yandex, и для Google?

      Да.

      Ответить
      • Дмитрий (44 комм.)

        2Andrey, так и в 9.4 тоже не могу найти.

        Что делать? Куда тогда вставлять?

        Ответить
        • АлаичЪ

          Прошу прощения, что-то я не догладел, не думал что в новых версиях удалили этот тег, я тестил свои наработки на старых версиях.

          Внес правки в пост, снова проверьте данный пункт — я пояснил, что надо делать, если не нашли метатег.

          Ответить
          • Дмитрий (44 комм.)

            Спасибо, а страницы пагинации можно как-то запретить этим способом?

            Ответить
            • АлаичЪ

              Можно, без проблем. Для этого в приведенном коде необходимо заменить одну строку:

              	$dle_module == 'date') {

              На такую:

              	$dle_module == 'date' OR
              	(intval($_GET['cstart']) > 1 )) {

              Тогда для всех страниц пагинации будет так же прописываться <meta name="robots" content="noindex,nofollow">

              Ответить
              • Дмитрий (44 комм.)

                Спасибо, это относится и к страницам разделов?

                Ответить
  5. tarin (5 комм.)

    Еще есть такие ошибки, обнаружила в панели вебмастера Гугла, страницы были статические и были в результате изменения структуры сайта удалены, но по интернету разбежались ссылки на эти страницы и теперь висят в ошибках 404, удалить через паненльку вебмастера невозможно из-за ссылок, как такие ошибки убрать или возможно ставить 301 редирект, но их слишком много порядка 100.

    Очень ждала эту часть раздела, поэтому извините, но буду еще задавать вопросы. Вообще большое спасибо автору за блог и за его развитие, за очень классные материалы.

    Опишу немного историю возникновения ошибок. Домен был перекуплен. Какой был движок на этом домене ранее не знаю. Сейчас DLE 9.2.

    Ошибки следующие:

    http://site.ru/inetrnet.php/ — есть ссылки с других ресурсов на эту страницу

    http://site.ru/site.ru/der/free_tds11.ph/ — 2 раза вписан site.ru + расширение ph. надо php

    http://site.ru/site.ru/der/blocks/top/3_/ — 2 раза вписан site.ru

    http://site.ru/city-help.ru/free_srv.php/?l=a

    http://site.ru/free_srv.p/

    Ответить
    • АлаичЪ

      Да, бывают такие проблемы. Для этого необходимо проделать следующее.

      Открываем /engine/engine.php и находим:

      		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

      ВЫШЕ вставляем:

      // 301 редирект на главную с несуществующих левых страниц
      			$true_link_main = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);
       
      			if ( ($dle_module == "main") && (intval($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) ) {
       
      					header("HTTP/1.0 301 Moved Permanently");
      					header("Location: {$config['http_home_url']}");
      					die("Redirect");
      			}
      // 301 редирект на главную с несуществующих левых страниц

      И все, дело в шляпе, теперь будет осуществляться 301-редирект на главную.

      Пробуйте и отписывайтесь потом.

      Ответить
      • tarin (5 комм.)

        Как и просили, пишу результат после выполненных рекомендаций в статьях SEO оптимизация DLE – Часть 2 и Часть 1.

        Прошло чуть более 2-х недель. Для работы были взяты 2 сайта. Данные по Гугл вебмастеру.

        ------------------------------

        Первый сайт (Веб-страницы: 39 338; Проиндексировано: 24 541)

        Ошибок было более 300, осталось 25 (те, о которых чуть выше я писала).

        Страницы с повторяющимся метаописанием: 10

        /категория 1/, /категория 2/, /page/10/, /page/3/, /page/6/, /page/7/, /page/8/, /page/9/, /sitemap/0.html

        Здесь страницы в robotx.txt не закрывала. Пока подожду, может еще не все переиндексировались.

        А так все очень чистенько и красиво.

        Осталось только добиться 301 редирект на главную с несуществующих левых страниц. Надеюсь и эту проблемы решим.

        ------------------------------

        Второй сайт — молодой, чуть более 1 месяца (Веб-страницы: 20 014; Проиндексировано: 12 664)

        Ошибок было более 2778, осталось 1866 (это удаленные страницы).

        Повторяющееся метаописание: было 7, осталось 2 (это главная и одна еще категория не переиндексировалась).

        Длинное метаописание: 0 — ранее были дубли

        Короткие метаописания: 0

        Тег заголовка Страницы: Мы не обнаружили проблем с тегами заголовка title на вашем сайте — дублей нет

        Здесь в robotx.txt закрыты:

        Disallow: /page/

        Disallow: /*print

        ------------------------------

        Еще не в этой теме, но давно уже ничего нового не публиковали по SAPE. Последняя публикация "7 шагов к получению идеальной ссылки в Sape" опубликована 27 июля 2011. Возможно у вас есть какие нибудь наработки новые с которыми Вы могли бы поделиться с нами?

        Ответить
        • АлаичЪ

          Замечательно! Живой пример того, что я пишу действительно дельные вещи ;) Спасибо за подробный комментарий!

          Ответить
        • Сергей (7 комм.)

          Так а зачем отдавать 301 редирект с несуществующих страниц? Для этих целей только 404 и ничего страшного, если в панели вебмастера показываются эти ошибки. В рекомендациях того же гугла они на ранжирование никак не влияют. 301 редирект подойдет только тогда, если адрес страницы изменился, а страница не была удалена.

          Вашими действиями вы, во-первых, вводите в заблуждение пользователя, который попадает сразу на главную. Во-вторых, посетитель врядли будет искать несуществующий материал с главной и наверняка сразу уйдет, а это уже явно повлияет на ПФ, так как увеличится % отказов, соответственно и на ранжирование.

          Ответить
  6. Герман (1 комм.)

    Не подскажите, у меня стоит движок DLE 9.4, и страница вида site.ru/category1, site.ru/category2 выдает ошибку «The requested URL /news was not found on this server», хотя site.ru/category1/, site.ru/category2/ существуют и все с ними в порядке, редикректы которые вы описывали все сделал, все работает кроме того, что я написал. Это нужно исправлять или так и должно быть?

    И вообще, все виды таких адресов без слеша на конце выдают ошибку, в панели вебмастера они помечены как ошибочные, так как на сайте категорий много, то и ошибок в панели яндекса очень много. Как это изменить?

    Ответить
    • АлаичЪ

      Специально для вашего случая есть пункт во второй части руководства — https://alaev.info/blog/post/2400 — "Устраняем неразбериху с категориями их вложенностью и слешем / на конце".

      Ответить
  7. Axel (63 комм.)

    Огромное спасибо за статью! Уберу большое количество ошибок :)

    Скажите, пожалуйста, зачем для полной новости добавлять rel=”canonical” ? Ведь этот тег нужен только в случае, когда на сайте могут быть две страницы с одинаковым контентом, и чтообы поисковику показать, какой странице отдавать предпочтение, и нужно ставить rel=”canonical”. Немного сути не понял...

    Ответить
    • АлаичЪ

      Ну, во-первых, rel=”canonical” еще никому не мешал и лишним точно не будет.

      Во-вторых, он нужен для того, чтобы отсекать страницы с параметрами вида site.ru/news_name.html?param=blabla, хотя в DLE такого и не случается.

      В-третьих, я просто рекомендую это сделать, но если вам не надо, то дело ваше.

      Ответить
      • Владислав (1 комм.)

        Яндекс исключает страницы, содержащие rel=”canonical” из индекса.

        Ответить
  8. Влад (1 комм.)

    вот запрещаю индексацию разделов сайта при помощи мета-тега robots, при это мне прийдется все удалить из robots.txt так как там запрещены только вот эти страницы, как поступить лучше оставить так как было или все таки сделать по вашему?

    Ответить
    • АлаичЪ

      Если бы было лучше оставить все как есть, я бы не писал ничего такого, чтобы сделать все хуже. Читайте внимательно и все поймете.

      Ответить
  9. Cawa (3 комм.)

    Спасбо большое очень полезная информация. Не подскажете как полностью убрать название новости и только оставить "id" и чтобы срабатывал редирект на верный адрес?

    Ответить
    • АлаичЪ

      Что за чушь? Напишите более понятно и подробно, что именно вы хотите получить?

      Ответить
      • Cawa (3 комм.)

        Например на сайте Тип чпу 1, тоесть адрес новости будет "http://site.ru/id-имя новости.html" как можно из чпу убрать "имя новости.html" чтобы чпу был http://site.ru/id/

        Ответить
        • АлаичЪ

          Это надо переписывать ЧПУ, так что это вы уж как-нибудь сами, лично меня эта идея не заинтриговала, да и не вижу абсолютно никакого в ней смысла.

          Ответить
    • Art (8 комм.)

      По умолчанию и так есть редирект на правильный адрес при указанном одном id из всего названия, т.е., например, есть новость по адресу site/cat/34-newsjfsdjfs.html, при вводе site/cat/34, произойдет редирект на site/cat/34-newsjfsdjfs.html.

      Ответить
  10. Алексей (3 комм.)

    В принципе все что было описано в этой статье я уже знаю, но все таки нашелся один вопросик...

    Скажите пожалуйста нужно ли закрывать метароботсом страницы пагинации?

    Ответить
    • АлаичЪ

      Это исключительно на ваше усмотрение, хотите закрывайте, а хотите и не закрывайте. Лично я не закрываю.

      Ответить
  11. TITAN-UZ (3 комм.)

    После этих исправлении, если можно так сказать, индексация моего сайта в google выросла до 97%.

    Спасибо всем, особенно АлаичЪ'у, за советы и труды в этой сфере!

    Ответить
  12. Axel (63 комм.)

    В инструкции добавления тега rel="canonical" у меня не совпал код...

    На конце у меня так:

    $short_link = "";

    $link_page = "";

    $news_name = "";

    Версия дле: Актуальная :)

    Ответить
    • АлаичЪ

      Ну так перед этими строчками есть код:

      } else {

      Перед этой строчкой и добавьте.

      Ответить
      • Axel (63 комм.)

        И еще осле установки, тег выглядит так

        <link rel="alternate" type="application/rss+xml" title="" href="" /> <link rel="canonical" href="" />

        То есть всё в одну строку. Как с отдельной строки вставить тег?

        Ответить
        • АлаичЪ

          Необходимо перед строкой добавить \n.

          Посмотрите обновленный код в посте.

          Ответить
  13. MIRREXX (13 комм.)

    здравствуйте!

    Интересует 301 редирект на главную с несуществующих левых страниц

    Пробовал метод, описанный выше, не помогает!

    Ответить
    • АлаичЪ

      Надо смотреть сам "кривой" url с которого не происходит редирект, там есть свои особенности.

      Ответить
  14. Art (8 комм.)

    Редирект через .htaccess не сработал, выдало ошибку — невозможно завершить редирект, а при "Редирект для публикаций, у которых отсутствует ID, на главную страницу" выскакивает заглушка 404, а также при "Редирект для удаленных или несуществующих новостей на главную", хм?

    И чёт каноникал не добавился, а вот за мета-тега robots респект, а можна через него запретить так, например, есть категория и подкатегории:

    сайт/кат-олл/ — запрет индексации

    сайт/кат-олл/кат1 — разрешена индексация

    сайт/кат-олл/кат2 — разрешена индексация

    сайт/кат-олл/кат3 — разрешена индексация

    Ну и естественно новости в каждой подкатегории были доступны для индексации, т.к. это не удалось корректно решить через роботс.

    Ответить
    • АлаичЪ

      Значит что-то не так делали, раз столько проблем вылезло разом. Я, конечно, еще раз сейчас перепроверю у себя, но, скорее всего, это ваша ошибка.

      На счет категорий и подкатегорий. Надо сделать так, после строки:

      $do == 'tags' OR

      добавить

      $category_id == X OR

      где X — это id категории в системе.

      Ответить
      • Art (8 комм.)

        Условие работает, благодарю.

        А вот с остальным ещё поковыряюсь, может что не так делаю.

        Ответить
  15. Axel (63 комм.)

    АлаичЪ, скажите, можно ли как-то ссылки на файл в аттаче (/engine/download.php?id=...) в rel="nofollow" закрыть? А то в robots.txt прописана директива Disallow: /engine/ и в панеле веб-мастера Яндекса постоянно присутсвует большое количество исключенных страниц с такими url. Или не стоит придавать этому большого значения?

    Ответить
    • АлаичЪ

      Да, закрыть их как-то можно, только у меня нет ни одного сайта, где были бы подобные ссылки, так что подсказать, где и что именно надо исправить не могу.

      Конечно, неприятно, что в панели вебмастера висит куча загруженных страниц /engine/, но на ранжирование это не сказывается никак.

      Ответить
      • Axel (63 комм.)

        Ну на любом сайте можно просто загрузить файл и покрутить с кодом. Ну да ладно :) Я пытался сам найти, но все безрезультатно.

        Сейчас в яндексе 641 страница загружена и 241 страница ислючена, все исключенныйе станицы типа /engine/download.php?id=... Очень не приятно!

        Если вдруг найдете, как подкрутить, отпишитесь тут.

        Ответить
        • АлаичЪ

          Что если снять запрет Disallow: /engine/ и посмотреть что будет. Теоретические такие страницы не должны индексироваться поисковиком, так как по сути и не являются страницами. Есть подозрение, что если снять запрет, то эти страницы не будут отображаться в панели вебмастера.

          PS Я как раз у себя сейчас с этим экспериментирую.

          Ответить
          • Axel (63 комм.)

            Верно! Вообще не логично было закрывать от индексации их. Если и запретить индексировать их, то исключительно атрибутом rel="nofollow".

            Запрет снял...

            Ответить
            • АлаичЪ

              Окей. Отпишитесь потом по результатам.

              Ответить
  16. Артур (2 комм.)

    Здравствуйте очень полезная информация на счёт тега rel=”canonical” давно искал способы использовать его в ДЛЕ. У меня вопрос, я заранее извиняюсь если его решение уже было изложено, так как про этот сайт узнал только сейчас и мог не найти ответа. На моём сайте закрыты от индексации страницы вида сайт.ру/page1/ сайт ру/page2/ и так далее, закрыть страницы решил только по причине схожего тайтл , и описания с главной. Возможна ли какая то реализация в движке, при которой эти теги для главной можно было указывать через админпанель в самом движке, а что бы страницы описанные выше брали инфу из самой верхней новости расположенной на этой страницы и соответственно менялись при смене самой новости на более свежую то есть были динамическими? Заранее благодарен!

    Ответить
    • АлаичЪ

      Добрый день. Ваша идея мне не нравится. Но по поводу настройки тайтлов рекомендую ознакомиться с первой частью руководства — https://alaev.info/blog/post/2373

      Ответить
      • Артур (2 комм.)

        А почему идея не нравится, считаете оставить запрет на индексацию этих страниц или какая то другая причина?

        Ответить
        • АлаичЪ

          Просто не нравится. Я считаю, что лучше открыть страницы пагинации к индексации, никакого вреда в этом не вижу. Разве что у вас не совпадает анонс shortstory и текст полной новости fullstory.

          Ответить
          • mjxjm (2 комм.)

            Я кстати соглашусь с Артуром, мне кажется Вы его не поняли. Закрывать от индексации столько страниц типа сайт.ру/page1/ сайт ру/page2/ только из за дублирования тайтлов и, возможно части текстов — очень жалко.

            Вот Пример сайт онлайн видео: у меня есть "категория 1" и категория1/page1/ ... категория1/page22/ то есть еще 21 страница отличного контента, каждая включает в себя 30 роликов. У каждой из этих страниц категория1/pageХ/ собирается существенный вес, который можно было бы эффективно использовать, а мы их тупо закрываем от индексации только по тому что не реализован вариант уникальных тайтлов и нет возможности использовать [category=х] текст [/category] для /page1/ ... категория1/page22/, что очень ограничивает наполнение уникальным текстом разделов сайта.

            То есть идеальным был бы вариант, когда можно было бы менять тайтлы и метатеги для page1/ и для этих страниц можно было бы использовать оператор что то типа [category=х-page1] — это бы существенно могло повлиять на релевантность наших категорий. Шутка ли учитывается вес первой страницы категории, или все 20 страниц категории.

            Ответить
            • eqoist (20 комм.)

              А нельзя ли например в meta-robots страницы пагинации сделать что-то типа

              <meta name="robots" content="noindex,FOLLOW" /> да бы в индекс не включался, но и вес не терялся?

              Ответить
              • АлаичЪ

                Вес потеряется в любом случае, если страница запрещена к индексации.

                Ответить
  17. Art (8 комм.)

    Редирект для публикаций, у которых отсутствует ID, на главную страницу — https://alaev.info/post/3294#tolist_04

    Редирект для удаленных или несуществующих новостей на главную — https://alaev.info/post/3294#tolist_05

    Никак не прикручу, не хочет работать, всё делал чётко по инструкции, несколько раз перепроверял, но никак :(

    Ответить
    • АлаичЪ

      Пиши на почту с указанием страниц и т.д., будем разбираться.

      Ответить
  18. ПафНутиЙ (124 комм.)

    Вот такой вопрос сегодня задали на dle-faq.pro (не реклама):

    ------------------------------

    Мне понадобилось снова отправить на модерацию новости, которые уже были опубликованы и проиндексированы поисковиками. Совсем удалять их не хочу, просто через некоторое время подкорректировать и снова опубликовать. После того, как сняла новости с публикации, обновила xml-карту сайта, отправила поисковикам, они ее скушали.

    Ну, думаю, все в порядке, снятые с публикации новости потихоньку выпадут из индекса, чтобы люди не приходили из поиска на пустые страницы. А сегодня смотрю логи — роботы спокойно гуляют по страницам снятых с публикации новостей, им отдается ответ 200.

    Скажите пожалуйста, разве страницы снятых с публикации новостей не должны отдавать ответ 404? И сами собой эти страницы не выпадут из индекса?

    -------------------------------

    Я даже как то и не думал, что отправленные на модерацию новости отдают 200...

    Ответить
    • АлаичЪ

      Да, кстати, я у себя такую же фигню заметил :( Раньше не было такого, на ранних версиях, а на более новых появилось. Надеюсь в новой версии исправят.

      Ответить
  19. Axel (63 комм.)

    Пишу опять по поводу атрибута rel="nofollow" в ссылках на аттач.

    На dle-faq помогли закрыть ссылки, но и заставили задуматься, делать ли мне это... Не отнимаю ли я вес страницы, закрывая внутриненние ссылки от индексации? Хотя с другой стороны дико выглядит, когда в яндекс.вебмастер показывает структуру сайта, где engine/ составляет аж 36%.

    Ответить
    • АлаичЪ

      А чего тут задумываться, закроешь ты их или нет, вес одинаковый со страницы "утечет". Тут выходов не много — или убрать эти ссылки вовсе или оставить как есть, хотя можно и просто скрыть их от гостей, но это зависит от политики сайта.

      Ответить
      • Axel (63 комм.)

        Забавно то, что после того как я убрал директиву Disallow: /engine/, все не нужные ссылки выпали из индекса яндекса. Пропали те 36% engine/ из общей сруктуры сайта... Нет огромного списка исключенных страниц.

        Вывод: Не нужно в robots.txt запрещать то, что по сути и не может индексироваться — /engine/ ;)

        P.S. А ведь везде, где якобы правильные robots.txt, engine закрыт от индексации... о_О

        Ответить
        • АлаичЪ

          Ну а я о чем говорил =)

          Ответить
          • Axel (63 комм.)

            В сегодняшний АП все страницы /engine/ вернулись... Как быть теперь? :)

            Плюс ко всему, теперь большое количестов не сообщений об исключенных страницах, а "Формат документа не поддерживается". Мне кажется, что это гораздо хуже :)

            Ответить
            • АлаичЪ

              Хм, ну что ж, видимо захотелось Яндеку их проиндексировать.

              То, что в панели показываются эти предупреждения, никак не сказывается на качество ранжирования.

              Ответить
  20. Глеб (2 комм.)

    Здравствуйте, спасибо огровное за статью!

    В DLE 9.5 в файле .htaccess не нашел след. строк:

    RewriteRule ^([^.]+)/([0-9]+) — (.*).html (/?)+$ index.php?newsid=$2 [L]

    RewriteRule ^([0-9]+) — (.*).html (/?)+$ index.php?newsid=$1 [L]

    Как быть?

    Ответить
    • АлаичЪ

      Обновил пост, смотрите. А вообще можно было бы догадаться и внести изменения самому по шаблону :)

      Ответить
      • Глеб (2 комм.)

        Также в файле engine.php не нашел

        if (! $category_id) $category_id = 'not detected';

        Ответить
        • АлаичЪ

          Все там есть, пробуйте включать фантазию и искать не по всей фразе, а по ее части, так как пробелы в некоторых местах могут стоять, а могут и отсутствовать!

          Ответить
  21. Дима (4 комм.)

    Здравствуйте Многоуважаемый Разработчик, Программист!

    Без ума от Вашего блога, предыдущего поста (дубли, где три ссылки на одну новость и слэш у категорий, всё сделал, всё СУПЕР) здесь тоже все пункты сделал кроме ПОСЛЕДНЕГО.

    Цитирую тему раздела здесь "Редирект для удаленных или несуществующих новостей на главную" ну нету у меня в /engine/modules/show.full.php этого кода. А мне этот пункт ой как нужен! Будьте так любезны помогите пожалуйста! Версия DLE 9.5

    Заранее Вам буду Безумно Благодарен!!!

    Ответить
    • Дима (4 комм.)

      Всё сделал! Простите, пожалуйста, за беспокойство. Дело в том, что делал махинации перед этим на http://angelys.ru/optimizaciya-sayta/17-delaem-svoyu-stranicu-oshibok-404-na-dle-datalife.html, а именно пункт:

      5. Открываем файл engine/modules/show.full.php находим:
      msgbox ( $lang['all_err_1'], $lang['news_err_12'] );
      Заменяем на:
      require_once ROOT_DIR.'/404.html';
      die ();

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

      Ответить
      • Дима (4 комм.)

        О Господи, теперь не работают обычные новости все:

        «Неверное перенаправление на странице.

        Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.»

        Ответить
  22. Дима (4 комм.)

    А как избежать бесконечное количество дублей site.ru/page/99999999/ (где девятки можно сколько хочешь прописывать и везде будет главная страница БЕЗ редиректа, в адресной строке будет полный адрес с девятками). Редирект нельзя поставить ни как?

    Заранее спасибо огромное!

    Ответить
    • АлаичЪ

      Смотрите самый первый пункт данного поста, там как раз про это и говорится.

      Ответить
      • Дима (8 комм.)

        В том то и дело, что стр. page 435 (наобум вбил, всего у меня 11 страниц на сайте) редирект на 11 идёт, вбиваю 999 редирект на 11 идет, а если больше девяток ставлю то редирект уже НЕ идет. Друг сказал, что враги могут ссылок на блоге любом наставить, к примеру site.ru/page/999999 а ПС их проиндексирует и зачтет как дубль главной.

        В общем, съёзно говорю, что на длинные большие цифры редирект не срабатывает. А так всё СУПЕР!!! ВЫ ГЕНИЙ своего дела!!! Я прочел сделал вывод, что Ваши пункты заменяют 404 стр и 404 к черту НЕ нужна. Вместо ошибки ПС будет главную видеть всё время и, полагаю, мои полугодичные удаленные страницы в ПС наконец-то удаляться.

        СПАСИБО ЗА ТО ЧТО ВЫ ДЕЛАЕТЕ! УСПЕХОВ ВАМ!

        Ответить
        • Дима (8 комм.)

          И про редирект http:/сайт>ru/page/9999999 и наберите тоже самое но с МИНУС одной девяткой, проще говоря меньше 7 девяток редирект работает, а если больше то нет!

          Мой домен знаете, просто подставьте его, то что мы обсуждали, что враги могут ссылок наделать на говно сайтах созданных, чтобы ПС дублей засчитали до фига.

          Ответить
          • АлаичЪ

            Это бред =) Никто не станет так делать, кому вы нужны (Не в плохом смысле, разумеется)? У вас сайт с миллионом посетителей, миллиардной выручкой, у вас много завистников и врагов, вы мешаете им жить? Если нет, то успокойтесь, врагам вы не нужны!

            Ответить
          • Юрий (23 комм.)

            Если вы поставите 301 редирект с несуществующих категорий на главную страницу (решение описано в этой теме АлаичЪем), то при очень большем номере страницы будет происходить 301 переадресация на главную. Видимо ДЛЕ подобние страницы уже не воспринимает как подстраницу категории, а считает их отдельной подкатегорией.

            Ответить
            • АлаичЪ

              Нет, это вряд ли, так как маркером тут является page/ в адресе. Просто слишком большое количество знаков выходит за диапазон допустимых значений поля в БД.

              Ответить
              • Юрий (23 комм.)

                Главное, что происходит переадресация, а не возникает дубль главной страницы, как писал Дима.

                Ответить
  23. Дима (8 комм.)

    Будьте так добры, скажите, пожалуйста, как мне быть: у меня на главной странице всего ОДНА страница! Модуль популярные показывает 10 новостей, а движок думает, что 11 и у меня 11 дублей из за этого — page/1, page/2 и таких 11, потому что все выглядят как главная.

    Надо чтобы редирект был чисто на главную, без всяких /page

    Заранее Вам Безумно Благодарен!!!

    Ответить
  24. arsenaleli (14 комм.)

    Я попробовал ваш способ. Всё класс! Оживил множество ссылок.

    Только вот остались не оживлённые ссылки на теги например:

    http://site.ru/tags/%EF%EE%F0%ED%EE+%EB%E5%F1%E1%E8%FF%ED%EE%EA+%F1%EA%E0%F7%E0%F2%FC/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D0%BE%D1%80%D0%BD%D0%BE%20%D0%BD%D0%B0%20site.ru
     
    http://site.ru/tags/%E1%EE%EB%FC%F8%E5%E9+%F7%EB%E5%ED/page/2/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D0%BE%D1%80%D0%BD%D0%BE%20%D0%BD%D0%B0%20site.ru

    Если бы ещё с этой проблемой разобраться было бы вообще.

    Но и за это спасибо, хороший у вас блог, помогаете людям!

    Ответить
  25. arsenaleli (14 комм.)

    У меня появились проблемы, которые я сразу не заметил. При изменении engine.php, я имею виду для публикаций у которых отсутствует ID:

    Изменил это:

    	if ($subaction == '') $subaction = "showfull";
    			}

    на это:

    // 301 редирект на главную с адресами страниц новостей, где пропал id
    			if ( ( $config['allow_alt_url'] == "yes" ) && (strpos($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) {
     
    					header("HTTP/1.0 301 Moved Permanently");
    					header("Location: {$config['http_home_url']}");
    					die("Redirect");
    			}
    // 301 редирект на главную с адресами страниц новостей, где пропал id

    На сайте пишет такое:

    Parse error: syntax error, unexpected $end in /home/sniffyyy/public_html/engine/engine.php on line 836

    В engine.php у меня это выглядит вот так:

    	// ################ Новость целиком #################
    			if ($subaction != '' or $newsid) {
    				if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 1";
    				else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE  id = '$newsid'";
     
    			// 301 редирект на главную с адресами страниц новостей, где пропал id
    			if ( ( $config['allow_alt_url'] == "yes" ) && (strpos($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) {
     
    					header("HTTP/1.0 301 Moved Permanently");
    					header("Location: {$config['http_home_url']}");
    					die("Redirect");
    			}
    // 301 редирект на главную с адресами страниц новостей, где пропал id
    		}
     
    		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

    Ещё одна проблема с изменениям файла htaccess. это для ссылок неправильных окончаниях. Когда я меняю строку:

    RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

    на строку:

    RewriteRule ^([^.]+)/([0-9]+)-(.*?)$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

    При просмотре полной новости браузер открывает окно где написано следующее:

    Неверное перенаправление на странице
    Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

    Вот все мои проблемы, много правда я вам написал. Но по моему проблемы не такие и сложные. Спасибо за внимание!

    Ответить
    • Дима (8 комм.)

      О чём я Вам и писал тогда!!! Я полностью поддерживаю arsenaleli, я же писал , что у меня таже проблема (Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса):

      При просмотре полной новости браузер открывает окно где написано следующее:

      Неверное перенаправление на странице

      Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

      Ответить
    • АлаичЪ

      Разумеется будет ошибка, там надо НЕ ЗАМЕНЯТЬ, а ДОБАВИТЬ ниже.

      С .htaccess известная проблема, описанные мной "махинации" для 9.3 и выше не подходят :(

      Ответить
  26. Иван (7 комм.)

    Помогите пожалуйста появились такие вещи вообще не знаю как их исправить

    site.com/page/1.../любая категория/ — вот любая категория нафиг не нужна, как ее удалить, т.е сделать редирект на главную?

    site.com/category/page/1.../любая категория/ — и при таком варианте тоже бы нужен редирект.

    Ответить
    • АлаичЪ

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

      Ответить
      • Иван (7 комм.)

        Всё что там написано сделал, все равно движок отдает такие страницы, движок 8.5.

        Ответить
  27. MIRREXX (13 комм.)

    Добрый день!

    rel=”canonical” все отлично работает!

    Я так понимаю что теперь поисковик не будет обращать внимание на частичное дублирование контента из краткой новости.

    А считаются ли элементы навигации и просто блоки сайта повтором? Ведь они на всех страницах. И на двух разных страницах с атрибутом rel=”canonical” тоже будет такое дублирование. Тоесть как робот определит действительно релевантную страницу? Может неправильно задал вопрос, но надеюсь вы понимаете о чем я :)

    Ответить
    • АлаичЪ

      Наличие rel=”canonical” никак не влияет на понимание поисковиками текста полной новости и ее анонса на страницах категорий. Так что частичное дублирование никуда не денется, разумеется.

      Элементы навигации и сайдбары — это сквозные элементы, отношение к ним у поисковиков особенное, они прекрасно понимают, что все это есть блоки навигации и они сквозные.

      rel=”canonical” нужен для того, чтобы поисковик понял, какая страница основная и предпочтительная (при этом предполагается, что на обоих страницах содержится rel=”canonical” и в его содержимом указан какой-то один url, одинаковый для двух рассматриваемых страниц).

      Ответить
  28. Глеб (3 комм.)

    Здравствуйте,

    Не могли бы Вы, пожалуйста, подправить пункт "Редирект с несуществующих страниц пагинации на правильные и существующие" под дле 9.6 ?

    Хак то работает, но не полноценно, то есть в не зависимости 2 страницы или 200, хак кидает на саму категорию, а не на последнюю страницу.

    Ответить
    • АлаичЪ

      Недавно код обновлял — обновитесь. Но я на 9.6 не тестировал, я себе еще не ставил 9.6 версию.

      Ответить
      • Глеб (3 комм.)

        Будет ли добавлен редирект с несуществующих страниц пагинации на правильные и существующие для DLE 9.6?

        Так как предыдущий на DLE 9.6 работает не корректно.

        Ответить
  29. Тимур (7 комм.)

    Редирект для публикаций, у которых отсутствует ID, на главную страницу.

    Это не работает в DLE 9.6 , как исправить ?

    Ответить
    • АлаичЪ

      Не знаю пока, разберемся со временем.

      Ответить
  30. Аркадий (4 комм.)

    Подскажите, как можно сделать редирект страниц вида

    site.ru/2007/

    site.ru/2007/06/

    site.ru/2007/06/22/

    на главную, но чтобы страницы вида site.ru/2007/06/22/страница.html это не затронуло?

    Ответить
    • АлаичЪ

      Без проблем!

      Открываем engine/engine.php и находим:

      			// ################ Новость целиком #################

      Выше добавляем:

      if ($year != '' and $month == '' and $day == '') {
      	header("HTTP/1.0 301 Moved Permanently");
      	header("Location: {$config['http_home_url']}");
      	die("Redirect");
      } elseif ($year != '' and $month != '' and $day == '') {
      	header("HTTP/1.0 301 Moved Permanently");
      	header("Location: {$config['http_home_url']}");
      	die("Redirect");
      } elseif ($year != '' and $month != '' and $day != '' and $subaction == '') {
      	header("HTTP/1.0 301 Moved Permanently");
      	header("Location: {$config['http_home_url']}");
      	die("Redirect");
      }
      Ответить
      • Аркадий (4 комм.)

        Здравствуйте! Спасибо за ответы на предыдущие мои вопросы. Очень помогли.

        Вот появился еще один вопрос. Еще раз перечитал вашу статью, пробежался по комментариям, но вроде как ответа не нашел. Если уж повторяюсь, то извиняйте.

        У меня на сайте ЧПУ вида http://сайт.ru/2012/04/19/страница.html, версия движка 9.3

        В Яндексе все впорядке, а вот в Гугле почему-то для каждой страницы 100% дубль такого

        вида http://сайт.ru/категория/id-страница.html, хотя ссылок на сайте на такие страницы нету.

        Так вот вопрос,

        как можно сделать редирект со страниц http://сайт.ru/категория/id-страница.html на http://сайт.ru/2012/04/19/страница.html (на случай если кто-то на них уже ссылается),

        а также закрыть в метатегах страницы http://сайт.ru/категория/id-страница.html от Гугла?

        Ответить
        • АлаичЪ

          Посмотрите новый пост — https://alaev.info/blog/post/3513, возможно те правки помогут. Не забудьте прочитать комментарии к тому посту, чтобы быть готовым к возможным проблемам ;)

          Ответить
  31. Мах (8 комм.)

    Спасибо за информацию, но очень неплохо было бы оптимизировать и этот цикл советов :) Установил себе DLE9.6, и вот теперь сижу гадаю, что уже не нужно исправлять, а что еще нужно поправить... Как удобно было бы прочитать все это в отдельных разделах, заточенных под разные версии DLE, а не сортировать по зернышкам.

    Ответить
    • АлаичЪ

      Нет, разделения по версиям не будет, это точно.

      Просто проверьте наличие ошибки по шаблону — если есть, значит надо вносить правки, если само исправляется, значит не надо.

      Ответить
  32. Андрей (1 комм.)

    Александр, Вы просто профи. Второй раз за неделю попадаю к вам из поисковика. Причем первый раз на вторую часть статьи — искал как оптимизировать .htaccess, а сегодня на третью. Хотел закрыть в профиле зарегистрированных пользователей ссылки, а в итоге с помощью мета закрыл намного больше. Спасибо за статьи, снимаю перед Вами шляпу!

    Ответить
  33. Александр (23 комм.)

    Спасибо за познавательные статьи, очень помогли. Но вот вопрос, а стоит ли закрывать "Краткую новость" от индексации, если она дублирует полную новость( правда не полностью) Если стоит то как, это сделать?

    Ответить
    • АлаичЪ

      Нет, не стоит.

      Ответить
      • Дима (14 комм.)

        А я наоборот специально месяц назад убрал все краткие новости, потому что дублировали они частично полные.

        Оставил в них только постеры. Да и админ FreerutorCOM вообще списком выводит краткие (без описания) как на руторе, считает что дубли иначе будут.

        Кстати на DLE 9.6 замечательно все пункты работают на УРА!! ПРОВЕРЕНО ЛИЧНО!! (кроме конечно "Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса" )

        Ответить
        • АлаичЪ

          Тут все зависит от формата сайта. Цель краткого анонса — заинтересовать посетителя, чтобы он перешел на просмотр полной новости.

          На счет редиректа с лишними символами — я вчера опубликовал 4ую часть уроков специально под новые версии DLE — https://alaev.info/blog/post/3513

          Ответить
  34. arsenaleli (14 комм.)

    Привет! У меня такой вопрос. Я воспользовался вашим способом закрытия от индексации.

    Проблема в date, который закрывает от индексации такие страницы как site.ru/2007/ или site.ru/2007/06/ или site.ru/2007/06/22/. У меня всё правильно сделано, я установил коды так, как у вас объясняется:

    	if ($subaction == 'userinfo' OR
    	$subaction == 'allnews' OR
    	$subaction == 'newposts' OR
    	$do == 'stats' OR
    	$do == 'addnews' OR
    	$do == 'register' OR
    	$do == 'favorites' OR
    	$do == 'rules' OR
    	$do == 'pm' OR
    	$do == 'feedback' OR
    	$do == 'lastcomments' OR
    	$do == 'lostpassword' OR
    	$do == 'search' OR
    	$do == 'lastnews' OR
    	$do == 'alltags' OR
    	$do == 'tags' OR
    	$dle_module == 'date') $metatags .= <<<HTML
    n<meta name="robots" content="noindex,nofollow" />
    HTML;
     
    if ($config['allow_rss']) $metatags .= <<<HTML
     
    <link rel="alternate" type="application/rss+xml" title="{$rss_title}" href="{$rss_url}" />
    HTML;

    Но в поиске яндекса всё ещё появляются такие страницы как site.ru/2007/06/, а главное в том, что таких страниц %60-%70. Если можно подскажите как ещё можно закрыть их от индексации. А то такие страницы в поиске не очень привлекательны.

    Ответить
    • АлаичЪ

      Надо подождать пока Яндекс выкинет эти страницы, это может занять до 1 месяца по времени. Так же важно не закрывать эти страницы в robots.txt

      Ответить
  35. Andrey (2 комм.)

    Версия движка 8.5. Сделал полную сео оптимизацию согласно ваших частей 1,2,3. Все работает на ура, но вот проблема с категориями которые начинаются на числа ( у меня это 2010, 2011, 2012-god). Почему то при нажатии на них меня стало перебрасывать в другие части сайта ( не по назначению). Подскажите в чем причина. С уважением к вашему труду, Андрей...

    Ответить
    • Andrey (2 комм.)

      Понял в чем причина — Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса (3 часть сео оптимизации).

      Но так и не разобрался как исправить.

      Ответить
  36. bob (5 комм.)

    АлаичЪ — объясните пожалуйста этот момент — * Самый важный момент — при закрытии от индексации страниц описанным методом, необходимо убрать запрещающие правила в robots.txt для страниц и разделов, которые мы закрыли при помощи мета-тага. Иначе никакого смысла не будет.

    Желательно с примерами!

    Ответить
    • АлаичЪ

      А чего тут понимать то?

      Если вы, например, добавили <meta name="robots" content="noindex"> для страниц профилей юзеров, типа site.ru/user/myname, то в robots.txt нельзя прописывать директиву Disallow: /user

      Понятно?

      Ответить
      • bob (5 комм.)

        Как делать понятно, не понятно почему вы так считаете, если яндекс сам пишет — "Для любой поисковой системы абсолютно не важно, каким образом вы указываете команды для индексации, в файле robots.txt или в метатеге robots, а вот если вы в разных случаях используете противоречащие друг другу команды, например в файле robots.txt страница запрещена к индексации, а вы вручную проставляете мета тег со значением "all" или наоборот, то поисковый робот учтет более строгую команду и это всегда будет noindex, т.е. робот учтет запрещающую директиву и не будет индексировать страницу. Поэтому будьте внимательны, если одновременно используете на сайте оба варианта robots."

        Ответить
        • АлаичЪ

          Почему и исходя из чего я так считаю, написано в отдельном большом посте, ссылка на который дана выше — https://alaev.info/blog/post/3013 — прочитайте, все вопросы пропадут.

          Ответить
  37. arsenaleli (14 комм.)

    Привет! У меня такая проблема на ссылках с тегами, например:

    http://site.ru/tags/%EF%EE%F0%ED%EE...%D0%BD%D0%BE%20%D0%BD%D0%B0%20site.ru

    http://site.ru/tags/%E1%EE%EB%FC%F8...%BD%D0%BE%20%D0%BD%D0%B0%20site.ru

    http://site.ru/tags/Aria/

    http://site.ru/tags/Romana/

    Гугл пишет код ответа 404. Таких ссылок у меня около 1000. Можно ли каким нибудь способом оживить их, чтобы происходил редирект на главную страницу?

    Ответить
    • АлаичЪ

      А теги вообще нужны на сайте?

      Можно прописать 301 редирект на главную, но только тогда все теги будут редиректиться, а не только битые.

      Для этого надо добавить в свой .htaccess строку

      RewriteRule ^(.*)tags/(.*)$ $1/ [R=301,L]

      Например, сразу после строки RewriteEngine On

      Ответить
      • arsenaleli (14 комм.)

        Я попробовал ваш вариант, но появляется такое окно с ошибкой:

        Internal Server Error

        The server encountered an internal error or misconfiguration and was unable to complete your request.

        Please contact the server administrator, webmaster@pornogods.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

        More information about this error may be available in the server error log.

        Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

        Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5 DAV/2 mod_bwlimited/1.4 Server at сите.ру Port 80

        Ответить
        • АлаичЪ

          Возможно неправильно код вставили, так как в комментарии выше он появился с пробелом. Сейчас я оформил его по другому, попробуйте еще раз.

          Ответить
          • arsenaleli (14 комм.)

            Работает! Спасибо!

            Ответить
  38. Владимир (17 комм.)

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

    Сайт на ДЛЕ 9.6, пока находится на локальном компе.

    Редирект происходит из за строчки в .htaccess

    RewriteRule ^([^.]+)/([0-9]+) — (.*)$ index.php?newsid=$2 [L]

    Как поправить это дело?

    Ответить
    • АлаичЪ

      Добавьте перед этой строчкой вот эти две:

      RewriteCond %{REQUEST_FILENAME} !-f

      RewriteCond %{REQUEST_FILENAME} !-d

      Попробуйте и сразу отписывайтесь!

      Ответить
      • Владимир (17 комм.)

        Добавил эти 2 строчки и картинки заработали.

        Спасибо.

        Ответить
        • АлаичЪ

          Супер! Спасибо, что протестировали вариант!

          Ответить
  39. Владимир (17 комм.)

    На сайте онлайн кинотеатра для доп. "Актеры" и "Режисеры" стоит настройка "Использовать значения полей как перекрестные гиперссылки". При клике на актера "Уилл+Смит", открывается страница http://site.ru/xfsearch/Уилл+Смит/, где отображаются все вильмы с его участием.

    Нужно ли закрывать от нидексации такие сраницы методом добавления срочки:

    $do == 'tags' OR в выше описанном методе?

    Ответить
    • АлаичЪ

      Можете закрывать, только для этого надо будет писать не $do == 'tags' OR, а $do == 'xfsearch' OR.

      Ответить
      • Владимир (17 комм.)

        Именно это я и имел ввиду. Под утро уже невнимательно писать стал.

        Title у страницы становится "Именем актера", а вот description и keywords берутся от главной страницы.

        Получается совсем плохо. Получается 2 варианта:

        1. Ковырять движок и делать уникальное описание и ключевые слова, плюс выводить хотя бы имя актера на самой странице.

        2. Закрывать от индексации.

        Первый вариант, я так понимаю труден в реализации. Может кто то уже делал такое?

        Ответить
        • АлаичЪ

          Да в принципе-то не трудно сделать уникальные описания и ключевые слова.

          Открываем engine/engine.php

          Находим:

          elseif ($do == 'xfsearch') $nam_e = $xf;

          Заменяем на:

          elseif ($do == 'xfsearch') {
          	$nam_e = $xf;
          	$metatags['description'] =  $xf;
          	$metatags['keywords'] =  $xf;
          	}
          Ответить
  40. bob (5 комм.)

    И снова здравствуйте! можете подсказать, как убрать такие вот ссылки http://сайт.ru/page/,fffturftuyfgkiuyugh77-pora-piti-pivo.html. При наборе такой ссылки редиректит на главную, но ссылка остается эта.

    Ответить
    • АлаичЪ

      Где эта ссылка остается?

      Ответить
      • bob (5 комм.)

        В браузере остается, не редиректит с http://сайт.ru/page/,fffturftuyfgkiuyugh77-pora-piti-pivo.html на http://сайт.ru/77-pora-piti-pivo.html

        Ответить
        • АлаичЪ

          Совсем нетипичная ошибка. Некоторые ошибки не поддаются исправлениям, эта из их числа.

          Если вы эту ошибку сами искусственно придумали, то можно не волноваться, а если она взята из панели вебмастера Яндекса или Гугла, то тогда уже можно что-то предпринимать.

          Ответить
          • bob (5 комм.)

            АлаичЪ спасибо за помощь! И есть еще проблемка, как такое может быть, что яндекс индексирует только страницы, которые выводятся на главную. Может редирект какой стоит не тот.

            RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

            RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

            RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

            RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

            RewriteRule ^index\.html$ / [R=301,L]

            RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

            RewriteRule ^index\.php$ / [R=301,L]

            Заранее спасибо!

            Ответить
            • АлаичЪ

              Ну мало ли, вдруг сайт под АГС попал, или еще какая беда случилась.

              Если походить по сайту и все страницы будут открываться так, как им положено, и никаких аномалий не будет замечено, значит с сайтом все в порядке, соответственно, и Яндекс сможет так же перемещаться по сайту.

              Следовательно у вас проблема в любовных отношениях с Яндексом...

              Ответить
  41. Александр (23 комм.)

    А как с таким ссылками бороться

    http:/......ru/soft/multi/55623-joboshare.html#7783567

    Или ссылки (после знака "#") игнорируются?

    Поставил 301 редирект на главную с несуществующих левых страниц, не помогает.

    Ответить
    • АлаичЪ

      С такими ссылками не надо бороться. Решетка # и все, что идет после нее, называется якорем, и не является какой-то самостоятельной отдельной ссылкой.

      Ответить
  42. Александр (23 комм.)

    В общем можно подвести итог — Сайт DLE 8.3, после применения ваших советов в веб-мастере Google:

    "Ошибки сканирования: За последние 90 дней ошибок не обнаружено."

    "Оптимизация HTML: Ошибок не обнаружено."

    Не под фильтром 98% страниц.

    Отлично! Спасибо, АлаичЪ.

    Ответить
  43. Сергей (16 комм.)

    Здравствуйте. Установил ДЛЕ 9.6 и в гугле вижу 404 ошибку и ссылку http://мой сайт/xfsearch//page/2/. Что посоветуете сделать?

    Ответить
    • АлаичЪ

      Видимо используете дополнительные поля. Я их не использую. Но а в итоге то что хочется получить? Какая ссылка правильная будет?

      Ответить
      • Сергей (16 комм.)

        Да, использую дополнительные поля. Они обе неправильные, и от куда они взялись сам не знаю. Может редерикт поставить на перенаправление?

        Ответить
        • АлаичЪ

          Какие обе, если вы только одну мне ссылку дали?

          Я могу подсказать как сделать 301-редирект со ссылок начинающихся с http://site.ru/xfsearch/ на просто http://site.ru/

          Ответить
          • Сергей (16 комм.)

            По поводу двух ссылок, прошу прощения

            Буду очень рад если подскажите.

            Ответить
  44. webglobus (3 комм.)

    Как бы еще сделать, что бы robots" content="noindex,nofollow добавлялсяи в профили пользователей?

    Ответить
    • АлаичЪ

      Читайте пост, там все написано.

      Ответить
      • webglobus (3 комм.)

        Все, недосмотрел, что и у профилях стоит noindex,nofollow. Просто по какой-то причине гугл начал индексировать профиль.

        Ответить
  45. AleX (4 комм.)

    Имеются ссылки на сайт вида http://site.ru/load/11-22-33 Как можно осуществить переадресацию на главную страницу?

    Ответить
  46. Рома (7 комм.)

    АлаичЪ, у меня тоже проблема, непонятно откуда появилось несколько тысяч ссылок вида

    hd-films-online.net/drama/page,1,559175,309-belye-irlandskie-pyanicy-smotret-onlayn.html ссылку оставляю, чтоб ты мог посмотреть. Я уже не знаю что делать.

    Ответить
    • АлаичЪ

      Хм, попробуй внести правку "Устраняем проблему с дублированием полной новости по разным адресам" из этого поста https://alaev.info/blog/post/2400 вне зависимости от версии движка.

      Ответить
      • Рома (7 комм.)

        АлаичЪ ОГРОМНЕЙШЕЕ СПАСИБО!!!!!!)))))))))) Я не знаю откуда эта проблема взялась, у меня есть подозрения, что меня из за нее Гугл под фильтра загнал, вить не нормально, когда на сайте 400 страниц уник контента, и 6000 страниц дублей... Посмотрим после индексации, может что-то изменится. Р Э С П Э К Т!))))

        Ответить
        • АлаичЪ

          Стало быть помогло, раз респект, да?

          Откуда проблема и для меня загадка, ты не первый, кто обращается с такой фигней...

          Ответить
  47. NeoMaks (3 комм.)

    Для 404 ошибок лучшее решение это грамотно оформленная страница 404, но не в коем случае не редирект на главную, иначе санкций не избежать. В интернете море статей на эту тему и лучше новичков посвящать по этому поводу чтобы позже не было вопросов почему яндекс забанил и т.д.

    Ответить
    • АлаичЪ

      Все зависит от ситуации, так что не надо так категорично заявлениями кидаться.

      Есть у вас хоть один пример получения сайтом санкций за редиректы с ошибочных страниц на правильные?

      Ответить
      • Рома (7 комм.)

        Раз уже зашел разговор о редиректе, в чем может быть причина, когда при наборе урла сайта + абра-кадабра выводится просто пустая страница, вместо ошибки? Исправил вышеописаным редиректом на главную, но после коментария стреманулся о_О...

        Ответить
        • АлаичЪ

          Что значит просто пустая страница? Белый экран? Посмотрите через сервис Яндекса http://webmaster.yandex.ru/server-response.xml что сервер отвечает на введенный урл, и все станет ясно.

          Ответить
          • Рома (7 комм.)

            В смысле отображается страница только без контентного блока, он пустой. Уже редирект 301 работает, так как сделал изменения указанные выше. Спасибо за советы.

            Ответить
      • NeoMaks (3 комм.)

        Редирект ошибочных страниц на правильные это супер! Я имею ввиду конкретные страницы 404, которых на сайте больше не существует. Для них лучше не делать редирект на главную, а оформить 404 страницу согласно рекомендаций ПС с поиском по сайту и ссылкой на главную.

        Ответить
        • АлаичЪ

          Ну вот это да, правильно, не спорю. Но судя по статистике, намеренное удаление страниц, это не частое явление. А тем более если говорить про движок DLE, то тут 404 ошибки возникают лишь по причине глюков движка.

          Ответить
  48. Алекс (2 комм.)

    Здравствуйте. Я вот сделал изменения с этими редиректами, теперь у меня при переходе на любую полную новость загружается главная страница. Не подскажете в чем дело? Заранее спасибо за ответ.

    PS. Причем загружается url данной новости (а не просто домен), но открывается главная страница.

    Ответить
    • АлаичЪ

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

      Ответить
      • Алекс (2 комм.)

        Все я нашел проблему — https://alaev.info/blog/post/2400 Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий.

        Вот здесь я вернул все обратно, теперь работают полные новости.

        Ответить
  49. eqoist (20 комм.)

    Спасибо, очень помог ваш пост, смог реализовать то что давно хотел но не мог. Низкий поклон.

    У меня один может быть глупый но интересующий меня вопрос:

    Можно ли в мета-теге <meta name="robots" content="noindex,nofollow" /> Nofollow сделать Follow да бы робот не брал в индекс эту страницу но мог переходил дальше по страницам. На сколько это правильно?

    Заранее благодарю.

    Ответить
    • АлаичЪ

      Конечно, можете заменить как захочется. При этом робот будет переходить по ссылкам, но вес передаваться не будет. Именно по этой причине я использовал nofollow. Хотя это может быть полезно разве что в вопросе скорости индексации.

      Ответить
  50. eqoist (20 комм.)

    Можно ли как в случае "Редирект с разделов или категорий, которых больше не сущестувет, на главную страницу или Редирект для удаленных или несуществующих новостей на главную" получить редирект с удаленных тегов на главную(а то гугл вебмастер заполнен ошибками из-за удаленных тегов)

    Заранее Благодарю.

    Ответить
    • АлаичЪ

      А давайте попробуем, мне самому интересно. Проделать надо следующее.

      Открываем engine/engine.php

      Находим:

      		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

      ВЫШЕ добавляем:

      		if ( ($do == "tags") and (!isset($tag) or $tag == "") ) {
      					header("HTTP/1.0 301 Moved Permanently");
      					header("Location: {$config['http_home_url']}");
      					die("Redirect");
      		}

      После проверки отписывайтесь, я буду ждать.

      Ответить
      • eqoist (20 комм.)

        Спасибо за ответ, но не сработало почему-то :(

        Ответить
        • eqoist (20 комм.)

          Александр, у вас есть какие-то другие варианты как реализовать такое?

          Ответить
          • АлаичЪ

            Пока нет :(

            Ответить
            • eqoist (20 комм.)

              Жду с нетерпением решение этой проблемы.

              Ответить
              • eqoist (20 комм.)

                Здравствуйте, прошло очень много времени, наверно вы уже смогли разобраться и придумать как можно решить задачу с редиректом удаленных тегов на главную?

                Ответить
  51. Poetry (12 комм.)

    Вот еще не понятно как оптимизировать.

    В категории выводятся короткие новости, а в них ссылки на профили пользователей, передающие вес. И автора убрать нельзя и лишняя ссылка на странице пользы не приносит. Че делать?

    Ответить
    • eqoist (20 комм.)

      Почему нельзя? Я у себя в коротких новостях автора убрал.

      Ответить
      • Poetry (12 комм.)

        Даже если на такое пойти то в полной новости какой-то редирект ставить нужно?

        Я о ссылках на профиль пользователя из полной новости.

        Если у него новостей много значит много ссылок вникуда?

        Ответить
        • eqoist (20 комм.)

          Ну если хотите удалите автора и в полной новости.

          Ответить
          • АлаичЪ

            Я у себя сделал так, что автор отображается текстом, а не ссылкой для гостей. Для зарегистрированных юзеров все отображается ссылками ;)

            Как это сделать расскажу в одном из следующих уроков по оптимизации ДЛЕ.

            Ответить
            • Валентин (67 комм.)

              Здравствуйте, вы писали, что расскажете (автор отображается текстом, а не ссылкой для гостей. Для зарегистрированных юзеров все отображается ссылками) в одном из следующих уроков по оптимизации ДЛЕ.

              Я искал, но что то не нашел...

              Не могли бы вы сейчас рассказать как это реализовать?

              Спасибо!

              Ответить
              • АлаичЪ

                Замените {author} на {login} :)

                Ответить
              • Валентин (67 комм.)

                Спасибо! Сделал как вы написали: "Замените {author} на {login}", но тогда (DLE 9.6) и для гостей, и для зарегистрированных я тоже текстом почему то... не подскажете как исправить?

                Ответить
                • АлаичЪ

                  [group=5]{login}[/group][not-group=5]{author}[/not-group]

                  Ответить
                  • Валентин (67 комм.)

                    Спасибо! Все отлично работает, как и все ваши советы по оптимизации Dle...

                    Ответить
  52. surcho (27 комм.)

    АлаичЪ, протестировал на DLE 9.6 вот этот пункт: Редирект с несуществующих страниц пагинации на правильные и существующие — теперь, при наборе несуществующей страницы на главной — перекидывает на главную страницу сайта (site.ru/page/27/ на страницу site/ru), а задумка то была на последнюю существующую страницу. В разделах по другому, перекидывает на первую страницу раздела (site.ru/video/page/22/ на site.ru/video/).

    Я думаю это не страшно, просто решил поделиться протестированным на DLE 9.6, так как у вас в начале поста было сказано не тестировалось на DLE 9.6. Думаю пригодится для информации.

    Ответить
    • АлаичЪ

      Хм. Окей, спасибо, разберемся с этим делом.

      Ответить
      • Surcho (16 комм.)

        АлаичЪ, протестировал то же самое и на dle 9.7 — тот же результат. Посмотри пожалуйста в чем дело?

        Ответить
  53. AleX (4 комм.)

    АлаичЪ, такой вопрос, если выполнить "Запрещаем индексацию разделов сайта при помощи мета-тега robots", в коде страницы же должны появиться эти самые мета теги? Сделал все как описано, но у ссылок не наблюдаю этих тегов =/

    Ответить
    • АлаичЪ

      Да, теги должны обязательно появиться в коде, только так можно понять, что правки сработали.

      Но причем тут ссылки?

      Ответить
  54. Александр (23 комм.)

    В вебмастере появились дубли, после открытия страниц пагинации к индексации

    site.ru/page/22/

    site.ru/page/22/site.ru/

    site.ru/page/15/

    site.ru/page/15/site.ru/

    site.ru/page/23/

    site.ru/page/23/site.ru/

    и так далее, как их закрыть?

    Ответить
    • АлаичЪ

      Прописать в robots.txt следующую строку:

      Disallow: /*/site.ru

      Ответить
  55. sprrut (16 комм.)

    АлаичЪ, такой вопрос, если выполнить "Запрещаем индексацию разделов сайта при помощи мета-тега robots", в коде страницы же должны появиться эти самые мета теги? Сделал все как описано, но у ссылок не наблюдаю этих тегов =/

    А у меня нет этих самых мета тегов. Значит не работает?

    Ответить
    • sprrut (16 комм.)

      Разобрался. Все теги на месте.

      Ответить
  56. Алексей (1 комм.)

    Добрый Вечер, меня интересует такой вопрос, возможно ли для страниц пагинации задавать определенный title и как это реализовать.

    Допустим, Страница http://site.ru/category/ = имеет Title = Сурки

    А для страницы http://site.ru/category/page2/ = Title = Веселые сурки

    И т.д

    То есть для каждой страницы задать title вручную

    Заранее благодарен.

    Ответить
    • АлаичЪ

      Не знаю, как это сделать, да и не вижу никакого смысла в этом. А вам это зачем, поясните скрытый смысл?

      Ответить
  57. VS (10 комм.)

    Запретил индексацию раздела ($do == 'lastnews' OR) сайта при помощи <meta name="robots" content="noindex,nofollow" />

    и при наборе http://site.ru/lastnews/ , индексация действительно запрещена, но вот беда на http://site.ru/index.php?do=lastnews/ не действует!

    Ответить
    • VS (10 комм.)

      Оказывается все дело в последнем слэше на конце http://site.ru/index.php?do=lastnews/

      Яша уже проглотил эту ссылку и выдает как дубль с главной. Подскажите что делать?

      Ответить
      • АлаичЪ

        Запретите эту страницу в robots.txt таким образом:

        Disallow: /index.php?do=lastnews/

        Ответить
  58. drasty (2 комм.)

    Здравствуйте, я у себя в вебмастере гугла нашел такого типа ссылки /action-online%3E , при переходе по них, %3E‎ трансформируется в этот знак > и на пустой странице появляется сообщение: Hacking attempt!

    Вы не подскажите, как правильно их прикрыть и как вообще с ними бороться. Я заметил, что это, в основном, уже давно удаленные категории и разделы.

    Также, у меня в наличии вебмастере гугла имеется несколько страниц такого типа http://мойсайт.ru/&post=158571125_329, являющиеся дублями главной страницы. Откуда они могли взяться и как их эффективнее прикрыть? Буду признателен за помощь.

    И еще одна наводка-вопрос. Не планируете ли вы выкласть подробную инструкцию по особенностях работы с микроразметкой на дле и есть ли они, эти особеннности? Я пробовал самостоятельно сделать сниппет под гугл, но у меня ничего не вышло:(. Вот, почему-то про Вас вспомнил.

    Ответить
    • АлаичЪ

      Страницы вида http://мойсайт.ru/&post=158571125_329 и подобные берутся из-за ссылок с соц сетей, в данном случае это из Вконтакте такая фигня, у меня такие же страницы есть.

      Решений тут несколько: Первое — прописывать rel="canonical" для всех страниц сайта. Второе — закрыть в robots.txt, прописав Disallow: /&post=

      И еще — нет такого слова "выкласть", есть слово "выложить" :) Нет, не планирую, слишком уж это вкусная тема, чтобы ее рассказывать всем!

      Ответить
      • drasty (2 комм.)

        Спасибо за ответ.

        Прошу прощения за недоскональное знание русского, мой родной — украинский, поэтому иногда случаются такие "перлы". А со снипетом самому удалось решить вопрос. Действительно впечатляюще смотрится:)

        Ответить
  59. Сергей (5 комм.)

    Такая проблема получилась. При разбивки статьи на страницы {PAGEBREAK} переход по ссылки "Следующая страница" не осуществляется.

    Подскажите пожалуйста, это где я на касячил или из-за редиректа получилось?

    Ответить
    • АлаичЪ

      Это однозначно из-за какого-то редиректа, и не исключено, что накосячили где-то. Так что предлагаю откатить изменения и снова их постепенно вносить. При этом после каждого изменения проверяйте работу всех ссылок. Когда выясните из-за чего происходит сбой, сообщите, будем разбираться.

      Ответить
      • Сергей (5 комм.)

        Вообщем разобрался, ошибка была в файле show.full.php.

        Устраняем проблему с дублированием полной новости по разным адресам.

        Вместо вашего кода, был вставлен, взятый с другого сайта

        $true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);

        if (intval ($_REQUEST['cstart']) >= 2) {

        $comments_link = $link_page . intval ($_REQUEST['cstart']) . "," . $row['alt_name'] . ".html";

        }

        if (($true_link != $full_link) and ($true_link != $comments_link)) {

        header ('HTTP/1.1 301 Moved Permanently');

        header ('Location: ' . $full_link);

        die ();

        }

        Этот убрал, вставил ваш, теперь разбивка страниц работает. Спасибо.

        Ответить
  60. Павел (8 комм.)

    Здравствуйте Александр. Действительно Вы пишите ценнейшую информацию. Огромное Вам за это спасибо. Однако прочитав эту статью и про файл robots.txt осталось некоторое недопонимание вещей. Скажите пожалуйста как я понял из ваших постов, то для гугула использование meta name="robots" целесообразней чем robots.txt, но вот что с яндексом. Как я понял Вы писали что он не особо обращает внимание на meta name="robots". Что делать прописать запрет в robots.txt но только для робота яндекса?

    Ответить
    • АлаичЪ

      Вы все не так поняли. Я не буду снова вдаваться в механизм работы этих директив, но скажу так — для Яндекса нет никакой разницы между используемыми вариантами в конечном итоге. Таким образом делаем вывод — чтобы угодить и Гуглу и Яндексу одновременно, надо использовать meta name="robots".

      Ответить
  61. Даниэль (16 комм.)

    Уважаемый АлаичЪ, извиняюсь если уже обсуждалось, можно ли как нибудь так же метатегом закрыть все категории на сайте? Именно сами страницы категорий но не новости к которым они относятся. Спасибо!

    Ответить
    • АлаичЪ

      Да, можно закрыть и категории. Кусочек кода такой: $do == "cat"

      Ответить
  62. sprrut (16 комм.)

    АлаичЪ, можно ли метатегом закрыть категорию и под категорию на сайте?

    Ответить
    • АлаичЪ

      Только что выше написал решение :)

      Ответить
      • sprrut (16 комм.)

        Категория ФИЛЬМЫ под категория ФАНТАСТИКА — закрыть надо полностью под категорию ФАНТАСТИКА (вместе с публикациями)

        Ответить
        • АлаичЪ

          То есть надо закрыть только одну единственную категорию и все, а остальные оставить для индексации?

          Тогда надо использовать конструкцию

          ($do == "cat" AND $category_id == "123")

          Где 123 — это id категории.

          Ответить
  63. Виктор (1 комм.)

    Алаичъ, помогите, пожалуйста!

    Есть сайт на DLE 9.4 под Пингвином. Нашел методику по выводу сайтов из-под фильтра, там надо сделать главное зеркало на новом домене.

    Мне непонятны такие моменты:

    — на всех страницах старого сайта прописать canonical тег на такую же страницу на новом;

    — в файле htaccess делаем 301 редирект со всех страниц старого домена на все страницы нового домена.

    Подскажите, плиз!

    Ответить
    • АлаичЪ

      Надо будет для старого сайта прописать в файле .htaccess следующее:

      RewriteEngine On
      RewriteCond %{HTTP_HOST} oldsite.ru
      RewriteRule (.*) http://newsite.ru/$1 [R=301,L]

      Больше ничего делать не нужно.

      Ответить
  64. Сергей (5 комм.)

    Еще вопросик.

    При разбивки статьи на страницы, rel=”canonical” на страницы №2 показывает ссылку на главную новость. Получается что ПС будет считать 2 страницу дублем первой?

    Или я не так понимаю функцию тега rel=”canonical”?

    Ответить
    • АлаичЪ

      Да, так и было задумано изначально. Поисковик, попадая на вторую страницу, будет понимать, что основная первая, т.е. та, которая указана в теге rel=”canonical”. Таким образом вторая страница не будет проиндексирована. Если вас это не устраивает, придется от использования rel=”canonical” отказаться.

      Ответить
      • Сергей (5 комм.)

        Или отказаться на разбивку статьи на страницы. Хорошо, спасибо.

        Ответить
        • АлаичЪ

          Все верно, рекомендую отказаться от разбивки на страницы.

          Ответить
  65. Алексей (4 комм.)

    Здравствуйте, подскажите пожалуйста, как закрывать отдельные страницы, например site.ru/prava.html тегом <meta name="robots" content="noindex">

    Версия 9.5. Заранее благодарен за ответ.

    Ответить
    • АлаичЪ

      В версии DLE 9.6 появилась такая возможность — вот и повод обновиться :)

      Ответить
  66. Программулькин (6 комм.)

    Ужасно полезная статья. Особенно баг фикс с комментами мне был интересен. Перечитаю пару раз этот пост.

    Хочу добавить еще одну багу в DLE 9.2

    Уже который год висят в индексе стринички типа

    http://site.ru/index.php?do=cat&category=detalimashin

    http://site.ru/detalimashin/

    (Реальная категория: http://site.ru/vuz/specialnost/kurs/detalimashin/)

    Как сделать 301 редиректы с этих страничек на реальную категорию? Это все произошло из-за смены типа ЧПУ

    Ответить
  67. LERR (6 комм.)

    А если ссылка сократилась например так site.ru/123-pag...me.html

    Будет ли редирект на site.ru/123-page_name.html?

    Ответить
  68. LERR (6 комм.)

    Для ссылок

    site.ru/123-news_name.html

    site.ru/page,1,1,123-news_name.html

    site.ru/page,1,2,123-news_name.html

    site.ru/page,1,n,123-news_name.html

    итд.

    Тег canonical будет прописывается только для первой ссылки?

    Ответить
  69. Владимир (2 комм.)

    Здравствуйте. Вопрос относительно метатега canonocal. Реализовал данный фикс на сайте, ожидая, что страницы с комментариями к новости (коих иногда бывает по несколько десятков) будут указывать на главную страницу новости. Однако, бродя по страницам с комментариями и открывая исходный код, вижу, что в теге указывается не главная, а страница с комментарием. Например:

    на главной странице новости — <link rel="canonical" href="http://site.ru/43-news-name.html" />

    на второй и последующих страницах комментариев — <link rel="canonical" href="http://site.ru/page,1,2,43-news_name.html" />

    Хотелось бы, чтобы они указывали на главную. Можно ли это как-то сделать? Версия движка — 9.5. Заранее спасибо за ответ!

    Ответить
    • Владимир (2 комм.)

      Нашёл ещё один способ в интернете:

      В корневом файле index.php вносим изменения. После строки:

      if ($dle_module == ‘showfull’) {

      Добавить:

      $metatags .= <<<HTML

      <link rel="canonical" href={$full_link}>

      HTML;

      Но он даёт совершенно тот же результат...

      Ответить
      • АлаичЪ

        Видимо механика в последних версиях DLE изменилась.

        Когда-нибудь займусь этим делом и обновлю мануал.

        Ответить
        • Сергей (1 комм.)

          АлаичЪ, Редирект с несуществующих страниц юзеров можно сделать и вообще нужен ли он, в панели вебмастера, много страниц с несуществующими пользователями. Например /user/joker45 (404 ошибка) Как можно эту проблему исправить?

          Ответить
  70. Дмитрий (44 комм.)

    Попробовал сделать "Редирект с несуществующих страниц пагинации комментариев на правильные" на DLE 9.4, но редиректа не происходит...

    http://site.ru/razdel/page,1,24,226-news.html — и подобных страниц очень много и все дублируют полную новость...

    Подскажите, пожалуйста, в чем может быть дело.

    Ответить
  71. VS (10 комм.)

    Добрый день, АлаичЪ.

    Запретил от индексации все страницы пагинации с помощью:

    (intval ($_GET['cstart']) > 1 )

    Меня интересует вопрос, как запретить от индексации все страницы пагинации только на главной (site.ru/page/X/), а для всех страниц пагинации категорий (site.ru/category/page/X/) запрет убрать?

    Спасибо за помощь!

    Ответить
    • АлаичЪ

      Как раз сегодня появится расширенный пост про это дело, следи за обновлением.

      Ответить
  72. zennuk (14 комм.)

    Здравствуй! Спасибо за столь интересные посты по поводу оптимизации.

    Для каждой правки ты описывал для какой версии движка, а как по поводу этих правок:

    Редирект для публикаций, у которых отсутствует ID, на главную страницу

    Редирект для удаленных или несуществующих новостей на главную.

    Заранее спасибо за ответ!

    Ответить
    • АлаичЪ

      Это подходит для всех версий.

      Ответить
  73. Дмитрий (44 комм.)

    Александр, а есть ли возможно запретить Google индексацию файлов вида engine/download.php?id=4 через мета-тег robots?

    Ответить
    • АлаичЪ

      Нет, так как это не является страницей.

      Тут поможет только закрытие самой ссылки с помощью rel="nofollow" и закрытием в robots.txt Disallow: /engine/download.php

      Ответить
      • Дмитрий (44 комм.)

        Да, именно так я и сделал на следующий день. :-)

        Ответить
  74. Денис (34 комм.)

    Добрый день АлаичЪ! Благодарен за твои труды и выводы таких замечательных постов. Но вот вопрос имеется, а в таблице приведены модули, это всё что можно запретить в meta name="robots"? Или можно ещё чего нибудь запретить, чего нет в таблице??? Ну например папку engine или как прописать строку, что есть в роботсе (Disallow: /statistics.html). Я к тому, что в роботсе имеются как пути к папкам, так и пути к страницам, — для исключения. Ещё прописываются символы типа /* , ?. Как это всё правильно прописать в meta name="robots" для запрета?

    Ответить
    • АлаичЪ

      При помощи метатега robots можно запрещать только реальные страницы (в том числе, сгенерированные динамически, разумеется), а не папки или что-то иное. Страница /statistics.html это и есть модуль $do == 'stats'

      Ответить
  75. VS (10 комм.)

    Похоже что Александр куда-то пропал, либо он занят делами по важнее ))

    Ответить
    • АлаичЪ

      Все верно =) И дела важные и новые поста на подходе!

      Ответить
  76. Den (2 комм.)

    Здравствуйте АлаичЪ, и стандартное спасибо за труды — пользуюсь с удовольствием. Подскажите, при обращении к несуществующей странице site/page/100000/ должна же выдаваться 404 ошибка?

    Просто столкнулся с проблемой — после снятия публикации всех новостей на главной странице появилось (осталось) много несуществующих страниц site/page/xxx/ без 404 ошибки. Сделать 301-й редирект на главную со всех страниц скорее всего глупо (как столько страниц могли переехать в одно место на постоянку? поисковики не поймут наверное). Нужно как-то настроить 404-ю ошибку. Не знаете как?

    Ответить
    • АлаичЪ

      Взяли страницы да переехали, что тут такого :) Если не вносить мои правки, то и будет выдаваться 404 ошибка по умолчанию.

      Ответить
      • Den (2 комм.)

        так это после ваших доработок такое получается?! не уточните, после какой именно?

        Ответить
        • АлаичЪ

          Я говорю еще раз — мои правки направлены на реализацию 301 редиректа с несуществующих страниц, вместо 404 ошибки (как сделано по умолчанию в чистом дистрибутиве DLE).

          Если надо вернуть обратно 404 ошибку — отмените пункт руководства "Редирект с несуществующих страниц пагинации на правильные и существующие".

          Ответить
  77. AlexP_RUS (24 комм.)

    Здравствуйте, подскажите как закрыть от индексации ссылку, которая выводится с помощью доп. поля?

    Например:

    Вот прописаны в коде в fullstory доп. поля через которые выводятся две ссылки:

    [xfgiven_download1]<a target="_blank" href="[xfvalue_download1]">Скачать</a> фильм «{title}» через торрент[/xfgiven_download1]

    и второе доп. поле

    [xfgiven_download2]<a target="_blank" href="[xfvalue_download2]" class="dowld-button"><img src="{THEME}/images/download.png" alt="Скачать фильм на высокой скорости" /></a>[/xfgiven_download2]

    В админке в доп. поле ссылка прописывается такого вида:

    http://site.ru/lp_target_link.php?r=12560&q={title}&service=LoadFiles

    Подскажите как их закрыть от индексации? Гугл постоянно их индексирует, и в панели вебмастера постоянно появляются "ошибки сканирования" этих ссылок.

    Я код закрывал и rel=”nofollow” преред href=, и ставил по бокам <noindex><nofollow>_</nofollow></noindex>, ни то ни то не помогло.

    Ответить
    • АлаичЪ

      Читайте новый пост — https://alaev.info/blog/post/3900

      Ответить
      • AlexP_RUS (24 комм.)

        Извиняюсь, но я там не нашёл решение как закрыть ссылку, которая находится в доп. поле.

        Помогите пож-та закрыть, если знаете.

        Ответить
        • АлаичЪ

          А там про страницы говорится. А чтобы закрыть ссылку, надо редактировать файлы движка, чего я вам не рекомендую делать самостоятельно.

          Ответить
  78. Александр (3 комм.)

    как сделать редирект с страниц типа site.ru/?newsid=32 на site.ru/32-название новости на сайте.html

    Ответить
    • АлаичЪ

      По идее, этот редирект должен осуществляться силами движка при включении ЧПУ.

      Ответить
  79. Сергей (1 комм.)

    Здравствуйте. Хочу обратится к вам с проблемой в надежде на помощь. У меня сайт на DLe.

    Кажется я что то крутил с редиректами, вообщем:

    Страница site.ru работает нормально.

    Страница site.ru/статья.html тоже нормально

    Да, на сайте всего 2 страницы))

    Если пишу в адресной строке site.ru/статья/любые символы.html , то идет перенаправление на страницу 404 — это меня устраивает, НО

    если написать site.ru/любые символы.html , то идет редирект на главную страницу, а не на 404. Как от этого избавить? Помогите! Заранее спасибо)

    Ответить
    • АлаичЪ

      Чтобы выдавалась 404 ошибка (а она выдается по умолчанию в оригинальном дистрибутиве движка), просто залейте оригинальные файлы движка и все.

      Ответить
  80. Sergio (1 комм.)

    Доброго времени суток

    Спасибо большое за информацию, почти всё беру на вооружение

    Появился такой вопрос ...

    Можно ли сделать редирект с не существующих тэгов на главную страницу по примеру страниц?

    С уважением Сергей

    Ответить
    • АлаичЪ

      Внес в to-do лист, в следующей части руководства появится :)

      Ответить
  81. Alika (3 комм.)

    Здравствуйте АлаичЪ, спасибо Вам за ооочень полезную информацию! Несколько раз использовала Ваши решения, помогло :)

    Вот сейчас возникла такая проблема, сайт варез, добавляют новости журналисты, появились более 600 стр. с повторяющимися метаописаниями. Причина: сериал или разные версии программы с одинаковым описанием.

    PS Воспользовалась рекомендациями https://alaev.info/blog/post/2373, не помогло :(

    Ответить
    • АлаичЪ

      Можно попробовать такую фишку, открыть /engine/modules/show.full.php и найти:

      			$metatags['description'] = $row['descr'];

      и заменить на:

      			$metatags['description'] = $row['descr'].' новость №'.$row['id'];
      Ответить
      • Alika (3 комм.)

        Спасибо! Что бы мы все без Вас делали.

        Ответить
  82. Олег (3 комм.)

    Здравствуйте.Несколько месяцев назад сделал сайт на DLE 9.5 и установил "редирект с разделов или категорий, которых больше не сущестувет, на главную страницу",но тогда еще не было нумерации страниц так как не было новостей.Через 3 месяца,когда новостей на сайте было более 200,а соответственно и страниц я обнаружил что нумерация не главной не работает,то есть кликаешь на любую цифру,например 2.5.10,а страница тупо обновляется,а все равно остаешься на этой же странице.Но когда находишься в каком-нибудь любом разделе,то все работает отлично,можно перейти на любую страницу данного раздела.

    Так вот я стал искать причину...И попробывал вместо этих строк:

    //решение проблемы с категориями, которых не существует

    if ($config['allow_alt_url'] == "yes" AND ! $category_id AND $view_template != "rss") {

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$config['http_home_url']}");

    die ("Redirect");

    }

    //решение проблемы с категориями, которых не существует

    Вставить снова что было и раньше:

    if (!$category_id) $category_id = 'not detected';

    И о чудо!Все заработало,но...

    Дело в том что все страницы стали открываться с правильным url например сайт.ru/page/6/ но на всех страницах:

    "Внимание, обнаружена ошибка

    По данному адресу публикаций на сайте не найдено, либо у вас нет доступа для просмотра информации по данному адресу."

    То есть их как бы и нету...

    Можно ли их как то прописать или что то сделать?Или возвращать обратно редирект 301?Там хоть на главную отправляет,а не на пустую страницу.

    Ответить
    • АлаичЪ

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

      Ответить
      • Олег (3 комм.)

        Перезалил полностью /engine/* из оригинального дистрибутива...Проблема осталась...Где искать причину не понятно.

        Ответить
        • АлаичЪ

          Значит где-то в настройках...

          Ответить
          • Олег (3 комм.)

            Проблему решил! Спасибо.

            Дело было в htaccess.

            Ответить
  83. Владимир (2 комм.)

    Спасибо за блог, очень полезный оказался.

    Не поможете с проблемой?

    В гугл вебмастер после оптимизации появилось много ошибок такого типа:

    Переход не выполнен

    ?cstart=1807&do=lastcomments

    index.php?cstart=2165&do=lastcomments

    Ответить
    • АлаичЪ

      Закройте их от индексации да и все. При помощи метатега (описано в посте) или при помощи robots.txt (Disallow: /*do=lastcomments)

      Ответить
  84. belov (8 комм.)

    Здравствуйте подскажите можно как то сделать чтобы при добавление новой статьи на сайт она сразу перемещалось на страницу http://сайт/категория/page/2/

    Ответить
  85. belov (8 комм.)

    Здравствуйте скажите зачем нужен <meta name="robots" content="all" /> на сайте и что будет к примеру если я его уберу с шаблона engine какие последствие будут хотелось бы знать

    Ответить
    • АлаичЪ

      Как я уже говорил, конкретно этот код бесполезен, его можно удалить, это никак не повлияет на индексацию.

      Ответить
      • belov (8 комм.)

        Спасибо за информацию

        Ответить
  86. Виктор (8 комм.)

    АлаичЪ, как удалить из индекса страницу http://мойсайт.ru/index.php/ ?

    Ответить
    • АлаичЪ

      Redirect 301 /index.php/ http://site.ru/

      Ответить
      • Виктор (8 комм.)

        Спасибо. Ничего не понял.

        Ответить
        • Денис (10 комм.)

          Правила rewrite допиши:

          RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

          RewriteRule ^index\.php/$ http://site.ru/ [R=301,L]

          Ответить
          • Виктор (8 комм.)

            Денис, не работает.

            Ответить
            • Денис (10 комм.)

              ну тогда хз... если тебе ни один код не подходит, уж тем более тот что тебе Аличъ дал:

              Redirect 301 /index.php/ http://site.ru/

              ковыряй значит движок

              Ответить
              • АлаичЪ

                Я повторюсь — надо попробовать в файле .htaccess сразу после строки RewriteEngine On добавить:

                Redirect 301 /index.php/ http://site.ru/

                Если не поможет, то я даже не знаю...

                Ответить
  87. Денис (10 комм.)

    // 301 редирект на главную с адресами страниц новостей, где пропал id

    if ( ( $config['allow_alt_url'] == "yes" ) && (strpos ($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) {

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$config['http_home_url']}");

    die ("Redirect");

    }

    // 301 редирект на главную с адресами страниц новостей, где пропал id

    Это дело не хочет работать =( При удаление в адрессной строки ID новости с тире и без, вылетает ошибка "К сожалению, данная страница для Вас не доступна: возможно, был изменен ее адрес или она была удалена. Пожалуйста, воспользуйтесь поиском."

    Что с этим можно сделать?

    Ответить
  88. Сергей (23 комм.)

    У меня если применить "// 301 редирект на главную с несуществующих левых страниц" доступа к site.ru/rss.xml нету, сразу перекидывает на главную страницу site.ru. Почему так?

    Ответить
    • АлаичЪ

      Попробуй изменить строку:

      if ( ($dle_module == "main") && (intval ($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) ) {

      На эту:

      if ( ($dle_module == "main") && (intval ($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) && ($view_template != "rss") ) {
      Ответить
      • Сергей (23 комм.)

        Заработало, спасибо

        Ответить
  89. АлаичЪ

    Пост обновлен с учетом выхода версии DLE 9.7 — все правки пересмотрены, где надо откорректированы. Под каждым пунктом подписано, для какой версии актуально, а для какой нет!

    Ответить
  90. joynik (12 комм.)

    Редирект с несуществующих страниц пагинации комментариев на правильные

    Актуальность: Провернено на 7.x, 8.x, 9.x (на 9.5, 9.6, 9.7 не тестировалось, но работать должно).

    В 9.7 уже встроено "при обращении к несуществующей страницы с комментариями, производится автоматический 301 редирект на первую страницу."

    Ответить
  91. Сергей (2 комм.)

    Редирект с несуществующих страниц пагинации комментариев на правильные для версии 9.5 не работает, не могли бы вы подсказать что нужно исправить чтобы этот хак работал на 9.5?

    Ответить
    • АлаичЪ

      Судя по комментарию выше, стоит обновиться до версии 9.7 :)

      Ответить
      • Сергей (2 комм.)

        Уже очень много было проделано на версии 9.5, настроена идеально под себя. Обновляюсь только на версии x.5, они почему то для меня самые стабильные, может получиться как то извлечь это решение с 9.7?

        Ответить
  92. Александр (2 комм.)

    Скажите, а тег rel=”canonical” продемонстрирован здесь для чего, я просто не понимаю в этом, для того чтобы ПС не индексировали краткую новость(в категориях например), а распознавали и индексировали только полную?

    Ответить
    • АлаичЪ

      Нет, этот метатег предназначен для указания роботу основной страницы. То есть, например, если на двух страницах указан rel=”canonical” с каким-то одним адресом, то этот адрес и будет считаться основным и только он будет проиндексирован.

      Ответить
      • Александр (2 комм.)

        Хорошо, тогда скажите или покажите на примере, как сделать так, чтобы короткие новости не индексировались, а индексировались только полные новости?

        Ответить
        • АлаичЪ

          Коротки новости самостоятельно и так не индексируются, индексируются страницы пагинации со списком анонсов.

          Смотрите этот пост https://alaev.info/blog/post/3900, надо будет активировать строку /* Любые страницы пагинации */.

          Ответить
  93. ds8880 (5 комм.)

    Здравствуйте. DLE версия 8.3.

    После правок с 1, 2, 3 части недавно заметил, что при переходе на site.ru/rss.xml перекидывает на главную.

    Как исправить? Эта правка не помогла:

    Попробуй изменить строку:

    if ( ($dle_module == "main") && (intval ($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) ) {

    На эту:

    if ( ($dle_module == "main") && (intval ($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) && ($view_template != "rss") ) {

    Ответить
    • АлаичЪ

      Вообще-то правильно писать не !=, а !==.

      Ответить
  94. ds8880 (5 комм.)

    != заменил на !==, не помогло.

    Может есть еще варианты как исправить?

    в категориях лента работает (в опере в адресной строке информер остался, в других браузерах уже нет) при нажатии на информер открывается rss вида site.ru/категория/rss.xml, если нажимать информер в полной новости какой либо категории, то перекидывает на главную, если нажимать на главной, перекидывает на главную.

    В общем не открывается только по адресу site.ru/rss.xml

    Ответить
    • ds8880 (5 комм.)

      все, rss заработало, просто почистил кэш браузера, про который сразу не вспомнил так как все правки до этого работали сразу, без чистки кэша...))

      Ответить
  95. Артём (2 комм.)

    АлаичЪ, помогите, очень большая проблема. :(

    Недавно заметил что в некоторых новостях, где есть ссылки на 4files.net, идёт редирект на qiq.ws Мне это очень не понравилось, и чтобы не сливать халявный трафик засранцам, не подумавши, взял да и заменил домен 4files.net на мойсайт.ru

    Через пару апов в индексе появились страницы типа http://мойсайт.ru/z55.3f6e67997790a4a135093ad2/ http://мойсайт.ru/zba4.zba4.3uydtehudhyrterfsdweradse/ http://мойсайт.ru/ab.8b593744ed675693ced35a3f/ которые ведут на главную, да ещё и с анкором "скачать с мойсайт.ru", тоесть по сути вылезла куча дублей главной страницы, и с каждым апом их всё больше и больше... :( Удаляю их через поиск и замену, но они всё лезут и лезут...

    Что интересно, попробовал ввести эти урлы (/z55.3f6e67997790a4a135093ad2/) на других сайтах — Not Found

    The requested URL /z55.3f6e67997790a4a135093ad2/ was not found on this server.

    Непонятно, почему они не ведут на 404, и как сделать чтобы шёл редирект на 404 или на главную (тоесть просто http:мойсайт.ru/) Какой вариант наиболее приемлим, и как это реализовать? Двиг DLE 9.5

    Заранее признателен за помощь, вся надежда только на вас.

    Ответить
    • АлаичЪ

      Неприятность ;) Можно попробовать в файле .htaccess в самом начале после RewriteEngine on добавить строку:

      RewriteRule ^([a-z0-9.]){20,40}/$ / [R=301,L]

      Должно помочь, но не уверен.

      Ответить
      • Артём (2 комм.)

        АлаичЪ, ПОМОГЛО!!! Редиректит на главную. Буду надеяться что со временем левые "главные" вылетят из индекса.

        Спасибо вам большое, я очень долго бьюсь над решением этой проблемы, перелопатил гугл, задавал этот вопрос на куче форумов и блогов, и только вы решили проблему. Просто нет слов :)

        Ещё раз большое спасибо.

        Ответить
  96. Борис (2 комм.)

    Заменяю:

    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html (/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

    на

    %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)\.(.*?)+(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

    Сервер отдает ошибку:

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Уже пересмотрел каждый символ и пробел — ничего не помогает. Подскажите. в чем может быть дело?

    Ответить
    • АлаичЪ

      А версия DLE то какая?

      Ответить
      • Борис (2 комм.)

        9.0

        Ответить
        • АлаичЪ

          Скорее всего, помимо этой правки вносились и другие. Вот где-то несовместимость. Надо проверять, вносить правки по одной и проверять.

          Ответить
  97. Дан (1 комм.)

    АлаичЪ подскажите пожалуйста, заголовок новости (title) и метатег title будут содержать одно и тоже название поста, это как нибудь скажется на дублировании контента.

    Ответить
  98. Дан (15 комм.)

    АлаичЪ пожалуйста, подскажите, как сделать следующее. Нужен выполнить правильный редирект. При развитии сайта иногда приходится более точно разделять новости по категориям.

    Пример такой допустим: была категория /Горячительные-напитки/ я ее разделил на разделы /водка/, /вино/.

    Основная информация в категории /Горячительные-напитки/ была про водку и поэтому я переместил ее полностью в категорию /водка/.

    Нажимаешь на сайте информацию по новому адресу она с успехом открывается по следующему адресу:

    /водка/01-чем-водка-лучше-пива.html

    но также открывается дубль проиндексированный поисковиком по адресу старой категории:

    /Горячительные-напитки/01-чем-водка-лучше-пива.html

    Как сделать правильный редирект со старой категории в новую, чтобы поисковики показывали новости только по правильной категории.

    Можно конечно же в robots.txt закрыть /Горячительные-напитки/, а можно как то через .htaccess склеить страницы старой и новой категорий?

    Ответить
    • Виктор (8 комм.)

      >>>Можно конечно же в robots.txt закрыть /Горячительные-напитки/>>>

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

      Ответить
      • Дан (15 комм.)

        Спасибо за ответ Виктор, в роботсе сейчас как раз стоит такая строчка.

        Ответить
        • АлаичЪ

          В htaccess после RewriteEngine On добавьте:

          RewriteBase /
          RewriteRule ^Горячительные-напитки/(.*)$ водка/$1 [R=301,L]
          Ответить
  99. Дмитрий (44 комм.)

    Было бы неплохо увидеть инструкцию по установке тега rel=canonical для DLE 9.7. :-)

    Ответить
    • Дмитрий (44 комм.)

      Прошу прощения, работает и для 9.7. Просто первый раз что-то напутал.

      Ответить
  100. Viktor (1 комм.)

    Извиняюсь за скорее всего тупой вопрос, но в вашем разделе "Запрещаем индексацию разделов сайта при помощи мета-тега robots" запрещается /engine/go.php ли нет?

    также сейчас на dle 9.7 при вводе site.ru/cat/123-page_name.htm происходит загрузка site.ru/cat/ но в адресной строке все тот же адрес, т.е редиректа как такового нет, нужно ли ставить редирект на главную или оставить?

    Ответить
    • АлаичЪ

      /engine/go.php не запрещается, его надо в robots.txt запрещать.

      Для DLE 9.7 в этом посте нет инструкций, как исправить неверные адреса конечных страниц. Есть решение на форуме, там посмотрите.

      Ответить
  101. sergey (3 комм.)

    Движок DLE конечно это пстец, не знаю почему он пользуется такой популярностью и еще за это 50 баксов дерут. Ошибка на ошибке.

    Ответить
  102. Иван (41 комм.)

    Просто огромное спасибо, за грамотный пост — также считаю, что нужны запреты мета тегами а не в роботс!

    Возникло 3 вопроса:

    1 — Думаю нужно и rss запретить к индексации, тоже как дубли, как это сделать?

    2 — Можно запретить категории как и теги? Например втавить код $do == 'category' OR

    3 — Не могу понять, куда вставить код на запрет индексации страниц пагинации.

    Сейчас код выгдядит так

    if ($subaction == 'userinfo' OR

    $subaction == 'allnews' OR

    $subaction == 'newposts' OR

    $do == 'stats' OR

    $do == 'addnews' OR

    $do == 'register' OR

    $do == 'favorites' OR

    $do == 'rules' OR

    $do == 'pm' OR

    $do == 'feedback' OR

    $do == 'lastcomments' OR

    $do == 'lostpassword' OR

    $do == 'search' OR

    $do == 'lastnews' OR

    $do == 'alltags' OR

    $do == 'tags' OR

    $category_id == 2 OR

    $category_id == 3 OR

    $dle_module == 'date') $metatags .= <<<HTML

    \n<meta name="robots" content="noindex,nofollow" />

    HTML;

    Ответить
    • АлаичЪ

      Читайте — https://alaev.info/blog/post/3900

      Ответить
  103. Иван (41 комм.)

    Редирект для удаленных или несуществующих новостей на главную — вчера ставил на utf-8, работало. Сейчас на 1251 — не работает, проверял три раза :(

    Ответить
    • АлаичЪ

      От кодировки это никак не зависит, ищите причину в чем-то другом.

      Ответить
  104. Дан (15 комм.)

    АлаичЪ подскажите пожалуйста в чем может быть проблема.

    Движок DLE 9.7

    Выполнил все рекомендации по оптимизации, которые здесь вы описали.

    Сегодня захожу в Гугловскую Панель Вебмастера. В разделе "Оптимизация HTML" вижу ошибки, которых не было.

    Во первых в во вкладке "Страницы с повторяющимся метаописанием"

    Две страницы с разным описанием показываются как будто имеют одинаковое описание. Description у разных категорий свой, единственное что похоже это название Страница 24 в конце описания

    Примерно в панели выглядит это так:

    >> Страница 24

    /books/page/24/

    /zhurnal/page/24/

    По идее эти страницы вообще не должны были индексироваться, так как ставил строчку (intval ($_GET['cstart']) > 1 ))

    На странице мета тег robots стоит на своем месте и вроде бы что нужно, то и выполняет <meta name="robots" content="noindex,nofollow" />

    Появились страницы в панели когда в robots.txt удалил строчку запрета /page/.

    А еще прикол, то что некоторые из этих же страниц появляются во вкладке "Короткие метаописания"

    Подскажите пожалуйста в чем может быть проблема.

    Ответить
    • АлаичЪ

      Если на проблемных страницах присутствует <meta name="robots" content="noindex,nofollow" /> не стоит переживать, это страницы скоро пропадут из панели вебмастера.

      Ответить
      • Дан (15 комм.)

        Огромное спасибо АлаичЪ.

        Ответить
  105. ds8880 (5 комм.)

    Извиняюсь, может не в тему оптимизации, но буду очень признателен если подскажите как сделать следующее:

    В DLE 8.3 в rss выводится краткая новость с датой и временем, например, 17 октября 2012 г. 19:05:52

    Как сделать чтобы выводилась дата без времени? Вот так: 17 октября 2012 г.

    Заранее, благодарю.

    Ответить
    • АлаичЪ

      А какой в этом смысл? Возможно, дата берется из глобальных настроек скрипта и надо менять там (это в админке, третья по счету вкладка в настройках, пункт "Формат времени для новостей").

      Ответить
  106. Александр (24 комм.)

    АлаичЪ, вопрос на счет rel=”canonical”. Вот всё что описано в посте проделал, чтобы роботу из шортстори указывало на фулстори. Но у меня на сайте ещё есть главная страница на которой выводятся новости анонсы (не шортстори как в категориях) параметром custom. Скажите, как и куда мне вписать rel=”canonical” (или подобное) в этот параметр custom, чтобы указать роботу на предпочтительный фулстори?

    Просто после того, как я проделал всё по посту https://alaev.info/blog/post/3900, у меня из фильтра гугла вся эта не нужная мишура исчезла, но вместе с этим почему-то и все новости, которым больше двух недель. У меня сейчас новостей 260, а в поиске гугла показывается всего 41, а остальные все почему-то он загоняет под фильтр.

    Вот я и подумал, может это из-за анонсов на главной? Ведь анонсов на главной как раз чуть выше 40.

    Сайт я скинул.

    Ответить
    • АлаичЪ

      В шортстори невозможно указать rel=”canonical”, этот метатег указывается ТОЛЬКО для конкретной страницы, а не для ее элементов. Поэтому указывать метатег надо только в полной новости.

      Ответить
      • Александр (24 комм.)

        Подскажите на примере как это сделать? И что делать с анонсами на главной (не шортстори)?

        Ответить
        • АлаичЪ

          Как сделать на примере — рассказано в посте, ни больше ни меньше, все как есть.

          Что делать с анонсами? Да ничего...

          Ответить
          • Александр (24 комм.)

            Ну я же написал, гугл индексирует только те новости, чьи анонсы находятся на главной, остальные почему-то не индексирует. И как только публикуется слудующая новость, а следовательно и её анонс на главной, то былая новость уберается с главной и тем самым также пропадает и из индекса гугла. Получается что гугл не хочет ходить по сайту дальше главной и индекирует только те новости (анонсы), которые есть на главной.

            Подскажите как быть, что делать?

            Ответить
            • АлаичЪ

              Да потому что накосячил где-то серьезно. Лучше отмени все правки, которые связаны с rel=”canonical” и жить станет проще и лучше. И Гугл начнет все индексировать!

              Ответить
              • Александр (24 комм.)

                Проверил, косеков не убнаружил, всё сделано так как написано. Да и тем более яндекс то все новости нормально индексирует. Непонятно в чем же дело...

                Ответить
  107. KaiN_nRg (14 комм.)

    Заметил две траблы. Правда не знаю были ли они до оптимизации или появились после. Вообщем оптимизировал сайт на DLE 9.7 по первым трем частям.

    По адресу site.ru/& отображается главная

    По адресу site.ru/z.z отражается главная (при чем вместо z можно поставить любые другие буквы и любое количество, главное что бы между ними была точка)

    Помогите исправить!

    Ответить
    • Алекс (45 комм.)

      Интересно, как вы наткнулись на такой урл, но у меня тоже отображается главная, причем и по адресам http://site.ru/cat/z.z тоже.

      Ответить
      • KaiN_nRg (14 комм.)

        Наткнулся совершенно случайно.

        От site.ru/& избавился следующим образом в .htaccess:

        RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /& HTTP/
        RewriteRule ^&$ http://site.ru/ [R=301,L]

        Не знаю на сколько это правильно, но работает. Знающие люди, подскажите!

        Ответить
        • АлаичЪ

          Все правильно сделал для варианта с site.ru/&

          На счет site.ru/z.z, то это совсем не типичный случай. Для избавления: RewriteRule ^z\.z$ http://site.ru/ [R=301,L]

          Ответить
          • KaiN_nRg (14 комм.)

            Нашел причину отображение главной по адресам site.ru/z.z site.ru/fsdf.sdfsf и т.д. Во второй части уроков по оптимизации есть код редиректа:

            ### Редиректы с index.php на сайт
            RewriteBase /
            RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
            RewriteRule ^index.php$ / [R=301,L]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . /index.php [L]

            Он вызывает такую ошибку. Заменил его на:

            RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
            RewriteRule ^index.php$ / [R=301,L]

            Теперь по адресам site.ru/z.z site.ru/fsdf.sdfsf и т.д. ошибка 404, как и должно быть.

            Ответить
            • Alex (45 комм.)

              Хотелось бы получить по этому вопросу комментарий от АлаичЪ

              Уже поправил, но вдруг это вызовет еще одну неизведанную ошибку :)

              Ответить
              • KaiN_nRg (14 комм.)

                Да, тоже жду. Пока тестирую. Все нормально вроде бы.

                Ответить
            • mixail366 (13 комм.)

              После этих правок получился код взятый со второй части оптимизации такого вида:

              ### Редиректы с site.ru/category/index.php на site.ru/category/ и др.
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteCond %{REQUEST_URI} (.*)index.php$
              RewriteRule ^(.*)index.php$ $1 [R=301,L]
              RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/ 
              RewriteRule ^index.php$ / [R=301,L]

              С адресами site.ru/z.z site.ru/fsdf.sdfsf все отлично работает. А вот как быть теперь с адресом: site.ru/category/index.php? Теперь не осуществляется переход на site.ru/category/

              Или я что то не так сделал?

              Ответить
          • Alex (45 комм.)

            А куда правильно вставлять конструкцию для site.ru/&? У меня не работало, если вставлял в конце, получилось лишь если поставить после редиректов для "www".

            Ответить
  108. OrangeCat (1 комм.)

    Добрый вечер!

    С удовольствием прочитал Ваш блог, раньше не знал о нем. Уже подписался на обновления, буду регулярным читателем. Спасибо за Ваш труд!

    А теперь задам свой вопрос, DLE 9.3:

    Статья в поиске Google выходит по 4м ссылкам:

    (В Яндексе выходит только одна ссылка — на полный текст статьи)

    1. Ссылка на полный текст статьи (то, что нужно)

    site.ru/4316-istoriya-devushki-voditelya-s-zhenskogo-foruma.html

    2. В списке статей автора статьи

    site.ru/user/имя_автора/news/

    3. В разделе, к которому относится статья

    site.ru/название_раздела/page/2/

    Вопрос прост: Как запретить вывод дублей в поиске Google?

    Ответить
    • АлаичЪ

      Страницы пользователей site.ru/user/ лучше закрывать от индексации: Disallow: /user/

      А в разделах выводится лишь анонс статьи, а полная новость выводится по нужному адресу. Так что дублирования не будет, если анонс не содержит полный текст новости. Все окей.

      Ответить
  109. mixail366 (13 комм.)

    Может кто подскажет как правильно и наименее болезненно переименовать ссылки сайта с site.ru/journals/cooking/ на site.ru/journals/kulinarnyie/ (например) что бы поисковики не сильно ругались? На сайте 34 000 новостей и надо переименовать почти все подкатегории (около 60 штук). Что есле переименовать, а со старых категорий сделать редирект на новые ссылки? И как этот редирект правильно прописать?

    Ответить
    • АлаичЪ

      Правильным решением будет 301-редирект на новые адреса.

      Пример: Redirect 301 /journals/cooking/ http://site.ru/journals/kulinarnyie/

      И так все 60 категорий надо будет проделать.

      Ответить
  110. mixail366 (13 комм.)

    А как быть с таким дублем сайта: Redirect 301 http://site.ru/links.php?rz=cypr

    Такой вариант не работает: Redirect 301 /site.ru/links.php?rz=cypr http://journal-ok.net/

    Алаич подскажите как правильно прописать.

    Ответить
    • АлаичЪ

      Так правильно: Redirect 301 /links.php?rz=cypr http://journal-ok.net/

      Ответить
  111. Николай (5 комм.)

    Как сделать редирект на главную если в категориях пока нет новостей?

    Ответить
    • АлаичЪ

      Добавьте новостей в категорию, зачем вам редирект-то... Редирект это не временное решение на день-два, с ним баловаться не стоит. Хотя можно и 302-редирект использовать: Redirect 302 /category/ http://site.ru/

      Ответить
  112. Александр (5 комм.)

    Здравствуйте. Спасибо за статью, очень познавательно. Но главного для себя не нашел, к сожалению...

    Подскажите пожалуйста, Я меняю cms на dle, у старой cms ссылки в статьях вида /index.php&name=pages&id=2

    В новой цмс, а именно дле, ссылки сменятся на такой вид /pages/2.html

    Скажите как средиректить большое количество урлов? Не напрягая апач и чтобы .htaccess не грузить таким количеством ссылок.

    Может есть модуль для дле типа 301 редиректа?

    Когда вводишь адрес старой новости, и адрес новой новости, это все заносится в базу...затем при переходе проверяется...и если нужно редиректится.

    Или это будет грузить базу?

    Ответить
    • АлаичЪ

      Ссылки на страницы пагинации в DLE имеют вид /page/2, а не /pages/2.html если что...

      Редирект для страниц пагинации сделать очень просто через .htaccess:

      RewriteCond %{QUERY_STRING} ^name=pages&id=(.+)$
      RewriteRule (.*) http://site.ru/page/%1 [R=301,L]
      Ответить
  113. Андрей (1 комм.)

    Господа, сделал 301 редирект с суб-категории на родительскую!

    Возможно кому-то пригодится! Для меня это было решением многих проблем ;)

    Добавляем в engine.php:

    //START Редирект с суб-категории на родительскую
    if ($cat_info[$cat_info[$category_id]['parentid']]['id'] > 0) {
    header ("HTTP/1.0 301 Moved Permanently");
    header ("location: {$config['http_home_url']}{$cat_info[$cat_info[$category_id]['parentid']]['alt_name']}/");
    die ("Redirect");
    }
    //END Редирект с суб-категории на родительскую
    Ответить
    • АлаичЪ

      Стоит уточнить, в какое именно место файла engine.php надо добавить этот код.

      Ответить
  114. владимир (3 комм.)

    Здравствуйте.Не работает у меня редирект с удалённых категорий.

    Движок 9.5.

    Вернее работает через раз.Сначала выводится Ошибка базы данных, после обновляю страницу редирект происходит, иногда надо пару раз обновить.

    В чём может быть причина.

    С удалённых страниц редирект работает без проблем.

    Ответить
    • АлаичЪ

      Ошибка БД это уже ваши проблемы с сайтом или сервером, с редиректами это никак не связано.

      Ответить
      • владимир (3 комм.)

        Но вылазит после того как я в коде поменял

        engine/engine.php найти :

        if (!$category_id) $category_id = 'not detected';

        и заменить на :

        //решение проблемы с категориями, которых не существует if ($config['allow_alt_url'] == "yes" AND ! $category_id AND $view_template != "rss") { header ("HTTP/1.0 301 Moved Permanently"); header ("Location: {$config['http_home_url']}"); die ("Redirect"); } //решение проблемы с категориями, которых не существует

        Возвращаю как было всё нормально

        Ответить
  115. Александр (34 комм.)

    Добрый день, у меня вот этот редирект почему то не работает версия dle 9.2

    // 301 редирект на главную с адресами страниц новостей, где пропал id

    if ( ( $config['allow_alt_url'] == "yes" ) && (strpos ($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) {

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$config['http_home_url']}");

    die ("Redirect");

    }

    // 301 редирект на главную с адресами страниц новостей, где пропал id

    Ответить
  116. Александр (34 комм.)

    Добрый день,

    уважаемый АлаичЪ, помогите, пожалуйста, настроить вот эти редиректы, что-то на 9.2 никак не хочет работать, заранее вам спасибо:

    Редирект для публикаций, у которых отсутствует ID, на главную страницу — https://alaev.info/post/3294#tolist_04

    Редирект для удаленных или несуществующих новостей на главную — https://alaev.info/post/3294#tolist_05

    Ответить
    • АлаичЪ

      И в чем проблема?

      Ответить
      • Александр (34 комм.)

        Не "редиректит", убираю ID адреса нажимаю энтер и получаю 404 ошибку(

        Ответить
        • АлаичЪ

          Редирект для удаленных новостей, если сделали по инструкции должен работать и выдавать 404 не может, т.к. вывод 404 ошибки удален.

          А вот на счет пропавших ID, то тут, как и написано, на DLE выше 9.5 не тестировалось и может не работать.

          Ответить
          • Александр (34 комм.)

            Добрый день, уважаемый АлаичЪ,

            с редиректом для удаленных новостей разобрался, а вот на счет пропавших ID так и не хочет работать, у меня 9.2 я так понимаю должно работать, вот кусочек кода из engine/engine.php

            if ($subaction == '') $subaction = "showfull";

            }

            // 301 редирект на главную с адресами страниц новостей, где пропал id

            if ( ( $config['allow_alt_url'] == "yes" ) && (strpos ($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) {

            header ("HTTP/1.0 301 Moved Permanently");

            header ("Location: {$config['http_home_url']}");

            die ("Redirect");

            }

            // 301 редирект на главную с адресами страниц новостей, где пропал id

            Ответить
            • АлаичЪ

              Не знаю в чем дело. Но как разберусь — отпишусь.

              Ответить
  117. Сергей (7 комм.)

    Добрый день, АлаичЪ,

    Тут еще вырисовывается одна проблема. Часто на форумах установлены какие-то плагины, которые автоматически сокращают ссылки, подставляя несколько точек в нее. Получается что-то наподобие такого: http://emofans.ru/creative/r...dfd56fdgdfg65444

    Возможно ли в таком случае сделать редирект?

    Ответить
  118. Klim (1 комм.)

    Добрый день, АлаичЪ.

    У меня вот такая проблема: сделал я все как у вас описано в частях 1,2,3 и с тех пор страницы не попадают в индекс:(

    ... не знаю, что и делать. Просто раньше хватало часа, чтобы страница попала в индекс яндекса и гугла, может я что-то напутал:(

    ... что можете порекомендовать в данной ситуации?

    Ответить
  119. Назар (1 комм.)

    Подскадите пожалуйста мне в моем вопросе

    Имеется приложение вк, прописал hash, нужно прописать редирект всех страниц с сайта на приложение,

    пример:

    есть: http://site.ru/1234-post.html

    нужно: http://vk.com/app4542154#/1234-post.html

    Буду очень благодарен

    Ответить
    • АлаичЪ

      То есть надо, чтобы заходя на сайт, пользователя редиректило на ВК?

      Тогда в самом начале файла .htaccess пишем:

      RewriteRule ^([0-9]*)-(.*) http://vk.com/app4542154#/$1-$2 [L]

      Должно сработать.

      Ответить
  120. Андрей (2 комм.)

    9.2

    хак "Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса"

    дает

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Ответить
  121. remont63 (12 комм.)

    После данных обновлений в версии 9.7 обнаружил это в яндекс вебмастере:

    Файл robots.txt не будет учтён роботом Яндекса, т.к. при запросе выполняется перенаправление.

    Ответить
    • АлаичЪ

      После каких "данных обновлений"?

      Ответить
      • remont63 (12 комм.)

        Удаление запретов на индексацию в файле robot.txt и перенос их в файл engine/engine.php

        Хотя возможно и еще, что установил главное зеркало, начинающееся с www в панели вебмастера.

        А гугл случано не игнорирует эти теги (noindex, nofallow)?

        Ответить
        • АлаичЪ

          Перенаправление никак не может быть связано с правками robots.txt, и, если проблема до сих пор существует, то надо вспоминать все правки, которые вносились на сайт и постепенно их отменять и искать причину.

          Ответить
          • remont63 (12 комм.)

            в яндекс веб мастере появилось сегодня сообщение: "Ваш сайт не проиндексирован"

            это вообще пипец какой то...

            Алаичъ у тебя с этим как после вышеописанных правок.

            Ответить
            • remont63 (12 комм.)

              все это очень странно, даже page-weight с утра начал ошибки выдавать на все страницы, может что-то на серваке зависло, посмотрю сейчас

              Ответить
              • АлаичЪ

                У меня все прекрасно. Рекомендую, пока не поздно, перезалить всей файлы, которые подвергались правкам, файлами из чистого дистрибутива. И прежде чем вносить исправления в следующий раз — хорошенько подумать или тщательно проверять работоспособность сайта.

                Ответить
                • remont63 (12 комм.)

                  Спасибо за советы, благо все ежедневные дампы (база данных + все файлы) сохранены. Возможно ошибка просто кроется в перестроении алгоритмов Яндекса, перезалить можно в любой момент, попробую переустановить page weight и логи сервера проанализировать изначально.

                  В критическом случае буду использовать дамп. По окончании проблем отпишусь здесь.

                  Ответить
                  • remont63 (12 комм.)

                    Вообщем разобрался с вышеописанными проблемами. потратил сутки времени (за это время проверил авбсолютно все и шаблон, и css, и файлы движка) — там все нормально, но сделал все таки намного валиднее, удалил порядка 100 ошибок в html и css.

                    А теперь в чем была причина:

                    1) После установления в яндекс вебмастере на главное зеркало сайт c www, на время сайт в панели с индекса ушел, но из поиска не исчез. По словам Платона, все скоро появиться в личном кабинете.

                    в то же время после всех правок настроил в гугле вебмастере более большую скорость сканирования.

                    и видимо сервер просто не успевает обрабатывать запросы от Page Weight.

                    Уменьшил в программе максимально кол-во потоков до 10, установил паузу между запросами в 50 мсек. На сайте отключил на время сжатие html страниц и java скриптов. Прогнал все снова — оказалось все в порядке.

                    Теперь нужно дождаться обновления поисковых роботов и вывести некоторые страницы из доп индекса, думаю на это пару месяцев достаточно будет.

                    Ответить
                    • АлаичЪ

                      Хорошо, что все хорошо. Спасибо, что отписались, другим читателям будет полезно.

                • remont63 (12 комм.)

                  Кстати возник еще один вопрос в файле robots.txt директивы — как правильно прописать при главном зеркале с WWW?

                  Так:

                  Host: www.site.ru

                  Sitemap: http://www.site.ru/sitemap.xml

                  Или все таки:

                  Host: site.ru

                  Sitemap: http://site.ru/sitemap.xml

                  Ответить
                  • АлаичЪ

                    Конечно правильно будет прописывать так же, как и указано главное зеркало, то есть с www. В том числе, может быть, и поэтому Яндекс ругается на robots.txt

                    Ответить
  122. Дмитрий (2 комм.)

    Помогите пожалуйста. У меня на сайте стоит вывод топ ком.новостей, по рейтингу и по просмотрам путем {custom}

    Плюс ко всему список похожих новостей тоже путем {custom}

    Теперь в поисковике вывод допустим:

    титл: Интервью с перис хилтон

    описание: Разбираем ноут по кускам

    И таких страниц много, описание одинаковое у всех новостей. Описание берется из {custom} первой в списке новости.

    Если закрыть тег под noindex это никак не повлияет на сайт? Или какое может быть решение... Может поисковикам можно указать как-то откуда брать описание к новости?

    Ответить
    • АлаичЪ

      Ничего не понял. Но в noindex можно закрыть, тогда в Яндексе точно этот текст не будет показываться.

      Ответить
      • Дмитрий (2 комм.)

        Блин)) это я писал видимо от паники))

        Возьму пример с гугла. Когда в поисковике тыкаешь на просмотреть, справа выводит картинку и красным выделяет текст откуда взято описание. Так вот у меня ко всем статьям с одного и того же места взято описание :D Это может быть от того, что сайт всего 2 недели живет? Ко всем статьям заполнил дескрипшн как полагается, но описание поисковик берет все равно откуда захотел... почему так?

        Ответить
        • АлаичЪ

          Поисковик берет отписание оттуда, где встречается поисковый запрос. Если встречается в нескольких местах, то берет там, где по его (поисковика) мнению, более интересно или берет сразу из нескольких мест.

          Ответить
  123. Atway (8 комм.)

    DLE 9.6

    Страницы вида site.ru/abracadabra.php редиректятся на главную, но URL не меняется. Не сталкивались с подобной проблемой?

    Ответить
    • Atway (8 комм.)

      Подобная же проблема наблюдается и в такой ситуации:

      Изображения вынесены на поддомен. По сервер-статусу увидел что идут запросы на

      http://site-name.ru/templates/template-name/css/www.im.site-name.ru/images/fields.

      То есть запрос в папку шаблона, в ксс запрашивается изображение (при чем странно — "fields.", не .png). Ну и проблема в том, что такой урл висит в адресной строке, выдавая главную.

      Есть мысли по этому поводу? Благодраю

      Ответить
  124. Min-Z-Drav (7 комм.)

    дубли страниц site.ru/page/30/rss.xml и site.ru/page/30/sitemap.xml как решить данную проблему?

    Ответить
    • remont63 (12 комм.)

      Вообще это разные файлы: и по этому адресу их не должно быть вовсе, смотри редиректы на установку несуществующих страниц. У меня такокого точно нету.

      Ответить
  125. Андрей (2 комм.)

    .h%0D%0A%0D%0Atml

    вот такие ссылки есть в яндекс вебмастере.

    Ответить
  126. Артем (1 комм.)

    Здравствуйте!

    В версии DLE 7.5 не получается сделать Редирект с несуществующих страниц пагинации комментариев на правильные.

    Отсутствует выше указанный файл: /engine/classes/comments.class.php

    Помогите устранить этот недочет, спасибо.

    Ответить
    • АлаичЪ

      К сожалению, с настолько старыми версиями DLE я не работаю и не планирую.

      Ответить
  127. kovalenko (2 комм.)

    "Редирект для публикаций, у которых отсутствует ID, на главную страницу" — на 9.7 к сожалению, не работает, а жаль. А в остальном вроде все стало, будем тестировать.

    Спасибо огромное автору за его труды.

    Ответить
    • Юрий (23 комм.)

      Подтверждаю, не работает!

      Ответить
  128. TusMan (4 комм.)

    hello,

    i want to redirect only 404 tags

    please help

    Thanks

    Ответить
    • АлаичЪ

      Open /engine/modules/show.short.php and find:

      	} elseif( !$news_found AND !$allow_userinfo AND $do != '' and $do != 'favorites' and $view_template != 'rss' ) {
      		if ( $newsmodule ) @header( "HTTP/1.0 404 Not Found" );

      replase with:

      	} elseif( !$news_found AND !$allow_userinfo AND $do != '' and $do != 'favorites' and $view_template != 'rss' ) {
      		if ( $newsmodule ) {
      			@header( "HTTP/1.0 301 Moved Permanently" );
      			@header( "Location: http://site.com/" );
      		}

      This will work.

      Ответить
  129. Александр (34 комм.)

    Добрый день,

    УважаемыйАлаичЪ, что-то не получается у меня редирект вида site.ru/category/index.php на site.ru/category/, редирект идет на site.ru а не site.ru/category/. В чем мой косяк? Заранее спасибо за ответ.

    Ответить
    • АлаичЪ

      Не знаю, в чем косяк. Но об этом написано тут https://alaev.info/blog/post/2400

      Ответить
      • Александр (34 комм.)

        Добрый день, уважаемый АлаичЪ,

        проверил еще раз не работает редирект site.ru/category/index.php на site.ru/category/ :(((

        Ответить
        • АлаичЪ

          Ну пропиши тогда так:

          RewriteRule ^(.*)index.php$ $1 [L,R=301]
          Ответить
  130. Чико (1 комм.)

    АлаичЪ день добрый, вопрос простой но мне важно знать так как я удалил весь контент сайта все разделы ибо полностью изменил направление сайта в плане тематике, понятное дело в поисковике в основной выдачи есть ссылки и не мало на сайт по тому или иному запросу, а новость уже удалена как и сам раздел, сейчас если перейти по такой ссылки попадаешь на главную, вопрос сам просится — оставить как есть, или всё токи лучше что бы срабатывало ошибка 404? и такие страницы со временем выпадут (чего бы и хотелось!), или они так и так выпадут независимо от того что на главную? Не хотелось бы пудрить людям голову, и побыстрей избавится от старых ссылок в поиске. Спасибо.

    Ответить
    • АлаичЪ

      При любом раскладе страницы пропадут из выдачи со временем, главное чтобы они не отдавали ответ 200 OK. Для ускорения удаления страниц из выдачи, закрой их в robots.txt.

      Ответить
  131. Валентин (67 комм.)

    Пимерно 3 месяца назад или два, проделал правки кода для:

    "Редирект с несуществующих страниц пагинации на правильные и существующие" самый первый пункт.

    Версия 9.6, я только сейчас заметил, что не работает...

    Я увеличил количество страниц на главной и в категориях и их количество естественно уменьшилось, яндекс сразу начал показывать на последние страницы (которые существовали) что они — 404, я проверил, и — не работает, подскажите, что не так, может что то исправить надо в ваших "рекомендациях", пожалуйста помогите.

    Ответить
    • АлаичЪ

      Попробуй такой вариант кода:

      $all_pages_count = @ceil( $count_all / $config['news_number'] );
      	if ($cstart > $all_pages_count) {
      			header('HTTP/1.1 301 Moved Permanently');
      			header ('Location: ' . $url_page . '/');
      			die();
      	}
      Ответить
      • Валентин (67 комм.)

        Не работает...((

        Ответить
        • Валентин (67 комм.)

          А на мой вопрос так и нет ответа? не уже ли все так плохо?

          Ответить
  132. Андрей (1 комм.)

    Приветствую всех. Меня терзают смутные сомнения... А подойдёт ли всё это к дле 9.8 ? Имею ввиду все части данного руководства. Создал новый сайт на 9.8 и теперь незнаю, а стоит ли это на нём все делать... На 9.7 всё это проделывал. И немного оффтопа, сори, 1 февраля посещалка сайта упала с 3к в день до 0.8-1к, трафик был весь с гугли... Что это?

    Ответить
  133. Дан (15 комм.)

    АлаичЪ подскажите пожалуйста или в постах обозначьте, какие плюшки SEO оптимизации DLE в 3 частях актуальны для версии 9.8. Хотел обновиться, а то за чем будет лицензия пропадать бес толку. Заранее пребольшущее спасибо.

    Ответить
    • АлаичЪ

      Не знаю, я не обновлялся до 9.8.

      Ответить
  134. Евгений (1 комм.)

    Подскажите пожалуйста, какой редирект нужно делать из представленных выше. Например у меня есть страница http://pilam.ru/catalogue/view/id-149/ которую я изменяю на http://pilam.ru/catalogue/shinnye-piloramy-murka/shinnaya-pilorama-murka-m1-benzinovaya/

    Нужно сделать так, чтобы страницы не выпали из индекса гугл и яндекс.

    Ответить
    • АлаичЪ

      Такие редиректы только вручную прописывать:

      Redirect 301 /catalogue/view/id-149/ http://pilam.ru/catalogue/shinnye-piloramy-murka/shinnaya-pilorama-murka-m1-benzinovaya/

      Ответить
  135. eqoist (20 комм.)

    Скажите пожалуйста,

    разве теги вида "index.php?do=tags&tag=" не должны редиректиться на вид /tags/ при включенном ЧПУ.

    Помогите решить этот вопрос.

    в htaccess вот так:

    # вывод отдельному тегу

    RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]

    RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

    Ответить
  136. Андрей (2 комм.)

    Есть пару вопросов по вашим постам.

    1) Вот вы пишите про редирект с несуществующих категорий и новостей (допустим я их удалил) на главную. Скажите мне такое: поисковик, перейдя на несуществующую категорию или раздел, будет редиректом отправлен на главную и будет думать, что страница существует и все хорошо. Может лучше не делать такой редирект? Может лучше поудалять эти страницы в панели вебмастера гугла и яши?

    2) У меня раньше стояли теги на сайте, все они проиндексировались и появились в поиске. Потом я решил поудалять их. Конечно, эти страницы стали 404 ошибку выдавать. Вот решил в панели гугла и яши поудалять ссылки, но их много и муторное это дело. Так вот вопрос: удаляться ли эти все теги, если прописать в удалении страницы так site.ru/tags/ ?

    3) Вот ненужные страницы закрываем мета robots noindex. Вот одна из строчек в engine.php:

    do="uploads" OR (извините если неправильно). В этой папке uploads на DLE находится файл sitemap.xml Будет ли этот файл нормально восприниматься поисковиками? Будет ли этот файл передавать все ссылки сайта? Или лучше не закрывать эту папку?

    Спасибо за внимание.

    Ответить
    • Юрий (23 комм.)

      1) 301 редирект какраз и нужен, чтобы избежать той ситуации, которую вы описали. Почитайте в интернете, что такое 301 редирект, в справках Гугла и Яндекса в первую очередь!

      2) По-моему, так нельзя. Можно удалять только конкретную страницу. Но не беда, через время они сами удалятся. Тут главное все ссылки на эти страницы убрать.

      3) А причем здесь эта строчка? Какое отношение она имеет к метатегу robots и его использованию, которое описано в этом посте? Предложенное решение никоим образом не закривает эту папку. В robots.txt тоже не нужно ее закрывать!

      Ответить
  137. eqoist (20 комм.)

    Помогите пожалуйста,

    ЧПУ 2 включен но при этом ссылки вида

    index.php?cstart=6

    index.php?do=tags&tag=слово

    доступны и открываются.

    Как сделать чтобы и они редиректились как и ссылки новостей?

    index.php?cstart=6 редиректился на page/6/

    index.php?do=tags&tag=слово на tags/слово/

    Заранее Благодарю.

    Ответить
  138. Simur (20 комм.)

    Есть маленький вопрос:

    В этом случае (Редирект с несуществующих страниц пагинации на правильные и существующие), редирект идет на последнюю существующую страницу.

    А в этом (Редирект с несуществующих страниц пагинации комментариев на правильные), на первую страницу комментариев.

    Так и должно быть?

    PS DLE 9.7, хотя оно и без этих правок перекидывает на 1ю странице комментариев

    Ответить
    • АлаичЪ

      Ну а почему нет, приемлемый вариант.

      Ответить
  139. Руслан (10 комм.)

    на главной странице новости — <link rel="canonical" href="http://site.ru/43-news-name.html" />

    на второй и последующих страницах комментариев — <link rel="canonical" href="http://site.ru/page,1,2,43-news_name.html" />

    Хотелось бы, чтобы они указывали на главную. Можно ли это как-то сделать? Версия движка — 9.5. Заранее спасибо за ответ!

    тоже очень интересует этот момент.

    Как можно исправить?

    Ответить
  140. Руслан (10 комм.)

    Вообщем эту канонизацию страниц, выводилось только в статьях, я так понял все статьи из гугла вылетели. Страниц вылетело из гугла-70 700. Вернул все обратно как было. Печальный опыт.)

    Ответить
    • АлаичЪ

      Не понял, что куда и почему вылетело? Причина вылета точно не в canonical.

      Ответить
  141. Артем (1 комм.)

    Здравствуйте, возникла такая проблемка: в гугл вебмастере появились ошибки вида http://site.ru/cate...gory/ http://site.ru/ca...tegory/ http://site.ru/catego...ry/ — это несуществующая категория, но хак решения проблем с несуществующими категориями эту проблему не решает, а по этому адресу открывается главная страница.

    Ответить
    • АлаичЪ

      Попробуй правило для .htaccess, добавлять после RewriteEngine On:

      RewriteRule ^([^.]+)...([^.]+)$ / [R=301,L]
      Ответить
  142. Александр (2 комм.)

    Здравствуйте!

    Читал, так и не нашел.

    Как можно сделать редирект не существующих статических страниц на главную?

    Именно статических страниц.

    Ответить
    • Alex (19 комм.)

      Также как и с новостями, открываешь /engine/modules/static.php и находишь:

      else {
       
      	@header ( "HTTP/1.0 404 Not Found" );
      	msgbox ( $lang['all_err_1'], $lang['news_page_err'] );
       
      }

      Заменяешь на:

      // 301 редирект на главную, если страница не найдена/не существует
      	elseif( ! $news_found ) {
      					header ("HTTP/1.0 301 Moved Permanently");
      					header ("Location: {$config['http_home_url']}");
      					die ("Redirect");
      	}
      // 301 редирект на главную, если новость не найдена/не существует
      Ответить
      • Александр (2 комм.)

        Спасибо большое. Помогло.

        Ответить
  143. Максим (1 комм.)

    Здравствуйте, у меня в индекс залезла странная ссылка такого вида: http://site.ru/?&site=forumsv — по ней проиндексировался дубль главной страницы. Если возможно, посоветуйте, как её убрать?

    Ответить
  144. NeedLe (22 комм.)

    А когда все это будет под ДЛЕ 9.8 или что работает на дле 9.8?

    Ответить
  145. Starlei (4 комм.)

    Привет АлаичЪ. Беда такого характера: В шаблоне сайта я использую дополнительные поля в которых у меня вставляется ID видео с YouTube. В вебмастере яши заметил такую тенденцию — HTTP-статус: Ресурс не найден (404) и ссылки с урл заканчивающимся на тот код, что используется для вставки видео, т.е. http://mysite.tu/-hgdgek где — hgdgek это тот код, который используется для вставки видео через дополнительное поле. Возможно ли настроить редирект с этих страниц, дабы убрать ошибки в вебмастере или это не так страшно, если они все равно ведут на страницу 404 ошибки.

    Ответить
    • АлаичЪ

      Ничего страшного, главное что не отдает ответ 200, а значит можно не волноваться.

      Ответить
  146. Алекс (1 комм.)

    Если сделать это —

    // 301 редирект на главную с несуществующих левых страниц

    $true_link_main = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);

    if ( ($dle_module == "main") && (intval ($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) ) {

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$config['http_home_url']}");

    die ("Redirect");

    }

    // 301 редирект на главную с несуществующих левых страниц

    то при переходе на http://айт.ru/engine/rss.php редиректит на главную

    Ответить
    • АлаичЪ

      Для этого есть http://site.ru/rss.xml

      Ответить
  147. x0x0x7 (2 комм.)

    Здраствуйте, а как вставить вместо xfsearch название доп.поля, пример сайта baskino. com

    Ответить
    • x0x0x7 (2 комм.)

      ну мне кто нить поможет??(

      Ответить
  148. NeedLe (22 комм.)

    Привет Коллеги!

    В общем поменял урл категорий и соответственно прописал редирект

    Redirect 301 /урл_старой_категории/ http://сайт.info/урл_новой категории/

    Но вид ссылки при редиректе получается такой

    http://сайт.info/урл_новой категории/?do=cat&category=урл_старой_категории/

    Хотя раньше когда делал редирект, то редирект происходил нормально и адрес был таким

    http://сайт.info/урл_новой категории/

    В чем загвоздка?

    Ответить
    • АлаичЪ

      Желательно правила добавлять в таком порядке. Сразу после RewriteEngine On пишете строку RewriteBase / а после этого уже свое правило. И все будет отлично!

      Ответить
  149. NeedLe (22 комм.)

    Честно в этом я не разбираюсь, но если правильно понял это должно быть так?

    RewriteEngine On

    RewriteBase /

    Redirect 301 /урл_старой_категории/ http://сайт.info/урл_новой категории/

    Redirect 301 /урл_старой_категории/ http://сайт.info/урл_новой категории/

    Если да, то проблема та же. Почему раньше было все нормально. Единственное, что изменил это обновил движок

    Ответить
    • NeedLe (22 комм.)

      И такой вариант пробовал

      RewriteCond %{REQUEST_URI} ^/igra-vinks-vokrug-sveta-i-drugie-igry-testy

      RewriteRule ^igra-vinks-vokrug-sveta-i-drugie-igry-testy$ http://сайт.ру/winx [R=301]

      В общем попробовал 3-4 вида редиректа и редирект работает, но адрес все равно такова вида

      http://сайт.ру/winx/?do=cat&category=igra-vinks-vokrug-sveta-i-drugie-igry-testy/

      Ответить
      • АлаичЪ

        Интересно. В таком случае, попробуй перенести правила в конец файла.

        Если не поможет, то у меня пока других идей нет :(

        Ответить
        • NeedLe (22 комм.)

          Тоже не помогает =(

          Может, что то не так в .htaccess ?

          http://s020.radikal.ru/i714/1305/21/691a8edf0bc7.png

          Ответить
          • NeedLe (22 комм.)

            И еще: до этого работало когда сайты были на простом хостинге, сейчас сайты на VPS у Рег.ру

            Ответить
            • NeedLe (22 комм.)

              Ни чего не понимаю, на локалке стоит дле 9,7 null и та же проблема.

              Ответить
              • АлаичЪ

                Возможно где-то конфликт из-за множества неродных правил в htaccess. Попробуй установить чистый движок на локалке и добавить только необходимые редиректы и посмотреть, что будет.

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

                Ответить
                • NeedLe (22 комм.)

                  Спасибо большое за ответы!

                  Ответить
                • NeedLe (22 комм.)

                  Поставил DLE 9.6 на локалку, изменил стандартную категорию main на mains

                  При этом не прописывая редиректа в .htaccess.

                  Заходя на страницу http://dle.ru/main/

                  Открывает http://dle.ru/mains/?do=cat&category=main/ ??? Но как если редирект не прописан.

                  http://s017.radikal.ru/i416/1305/86/c32beb465a6f.png

                  голова кругом, понять ни чего не могу. =)

                  Ответить
                  • АлаичЪ

                    Оставьте в покое файл htaccess и используйте стандартный и архива движка. И все будет путем.

                    Ответить
                    • NeedLe (22 комм.)

                      ой это я не тот скрин залил, сейчас выложу который стандартный был в дистрибуте.

                      И в нем я не прописывал редирект а он срабатывает с этой же приставкой.

                      http://s017.radikal.ru/i415/1305/93/0d818300bac5.png

                    • NeedLe (22 комм.)

                      Вопрос решен методом тыка =), спасибо АлаичЪ за поддержку =)

                      Хотя странно почему стандартный .htaccess не помогал.

                    • АлаичЪ

                      Ну слава богу =)

                    • NeedLe (22 комм.)

                      Кстати на всякий случай поделюсь, вдруг у кого траблы такие же будут. =)

                      Правильный редирект:

                      RewriteCond %{QUERY_STRING} ^do=cat&category=bestsoft\/$ [NC]

                      RewriteRule ^soft/$ /soft/? [NC,L,R=301]

  150. Mako (5 комм.)

    Здравствуйте! Я сделал как в этом комменте https://alaev.info/blog/post/3294#comment-9543, но в вебмастере гугла появились Повторяющееся метаописание, то есть проблема в том что, идет Название доп.поля и Название сайта. Как можно в данном случае убрать Название сайта? Заранее спасибо.

    Ответить
    • АлаичЪ

      Название сайта тут не причем. Но если все же хочется это сделать, то тут https://alaev.info/blog/post/2373 надо проделать пункт "Улучшение SEO характеристик заголовков title".

      Ответить
  151. Александр (9 комм.)

    Для тех, кто будет добавлять тег canonical в полную новость по инструкции, рекомендую удалить из /engine/engine.php следующий код:

    if ($canonical) {

    $metatags .= <<<HTML

    <link rel="canonical" href="{$config['http_home_url']}" />

    HTML;

    }

    Ответить
  152. Александр (9 комм.)

    Кстати, если выполнить последнюю рекомендацию (про canonical), то на главной странице, страницах категорий и пр., кроме страниц полных новостей, мета-тег тоже выводится:

    <link rel="canonical" href="" />

    Это можно как-то исправить?

    Ответить
    • Webracer (23 комм.)

      Александр, можно!

      Удалите ещё:

      if ($_SERVER['REQUEST_URI'] != "/" AND $cstart == 0) $canonical = true;

      и это:

      $canonical = FALSE;

      Ответить
      • Алекс (1 комм.)

        в каком файле это удалить?

        Ответить
  153. Алекс (45 комм.)

    Вопрос:

    Сделал "Редирект для удаленных или несуществующих новостей на главную". Должны ли теперь страницы типа "http://site.ru/cat/8-easy-maintenance", где cat — несуществующая категория, а 8-easy-maintenance — несуществующая новость, редиректиться на главную?

    Если да, то беда — у меня не редиректит :( Что может быть? Может, ДЛЕ 9,8 потому что?

    А если и не должны, то как настроить редирект на такие несуществующие страницы?

    Кто-то меня прямо закидывает ими, вебмастер Гугла прям трещит.

    Спасибо за помощь заранее.

    Ответить
    • АлаичЪ

      Слишком много всего несуществующего.

      Проще делать редирект с адресов, включающих несуществующую категорию:

      RewriteRule ^cat/(.*)$ http://site.ru/ [R=301,L]
      Ответить
      • Алекс (45 комм.)

        Думал, атаки конкурентов — фух, паранойя, оказывается, раньше на этом домене был сайт, вот и всплыли старые урлы в вебмастере — на сегодня уже более 100.

        Спасибо, Алаичъ, дождался твоего совета! Все несуществующие страницы теперь редиректят на главную.

        Пока исправлял, нашел еще дубль главной — site.ru/page/. Вроде в твоих постах оптимизацию DLE такого не видел.

        Ответить
        • АлаичЪ

          :)

          RewriteRule ^page/$ http://site.ru/ [R=301,L]
          Ответить
  154. Игорь (1 комм.)

    Читал как то Ваш диалог на сайте shakin.ru, там Вы рассказывали от Вашей карьере и тд.И там я от Вас услышал такие слова: "Хотя остается мой блог — он не ради денег и никогда не будет, на нем не будет ни одного баннера и не одной заказной рекламной статьи."

    Это значит что Вы все таки не сдержали слово

    Ответить
    • АлаичЪ

      Так и где же я не сдержал свое слово?

      Ответить
  155. Владимир (8 комм.)

    Подскажите как сделать правильно.

    Хочу сделать нормальную 404 страницу (отдельную информативную), но у меня почему-то при вводе несуществующей страницы перебрасываюет на главуню, а нужно сделать чтобы на 404 отдельную!

    Ответить
    • АлаичЪ

      Не знаю, как это сделать. Поищите мануалы в сети, я точно видел, правда там достаточно все непросто в плане реализации.

      Ответить
      • Hooligan (11 комм.)

        Сейчас на большинстве хостинг панелей, есть пункт свой страницы ошибок, 401, 404 и тд, что же мешает вам Владимир, создать такую "Информативную страницу под дизайн сайта?" как по мне так как 2 пальца апасфальт!

        Ответить
        • Владимир (8 комм.)

          Спасибо за советы.

          У меня когда набираю несуществующий адрес (к примеру http://мой_сайт.info/пример1.html) открывается главная а не стандартное предупреждение ДЛЕ ( Внимание, обнаружена ошибка...). Пример с http://alaev.info когда статья удалена или не существует у меня не проделан.

          Тогда что делает редирект???

          А страницу сам сделаю!

          Ответить
  156. Ramiz95 (2 комм.)

    Спасибо большое. Очень полезный блог. вы написали "если вы что-то вспомните или найдете необычные ошибки на своем сайте – обязательно пишите в комментариях, я придумаю решение вашей проблемы и добавлю его в пост" так вот, можно ли сделать чтоб для каждой страницы можно было описание делать самому? например у меня _kino.lite.uz и _kino.lite.uz/index.php?do=rules описание одинаковое=( и _kino.lite.uz/xfsearch/2013/ кривое. можно ли как ни будь исправить?

    Ответить
  157. Владимир (1 комм.)

    Редирект для удаленных или несуществующих новостей на главную

    при добавлении на 9.7 не открываются полные новости.

    Все сделал что можно было для 9.7, помогло но отчасти, хотелось бы узнать как убрать остальные битые ссылочки. Типа :

    http://pcracing.ru/2013/03/seriya-colin-mcrae-rally.html

    error code: 404 (not found), linked from page (s):

    http://pcracing.ru/2013/03/

    http://pcracing.ru/2013/07/seriya-colin-mcrae-rally.html

    error code: 404 (not found), linked from page (s):

    http://pcracing.ru/2013/07/

    http://pcracing.ru/2013/08/seriya-colin-mcrae-rally.html

    error code: 404 (not found), linked from page (s):

    http://pcracing.ru/2013/08/

    http://pcracing.ru/2013/09/page/2/seriya-colin-mcrae-rally.html

    error code: 404 (not found), linked from page (s):

    http://pcracing.ru/2013/09/page/2/

    http://pcracing.ru/2013/09/seriya-colin-mcrae-rally.html

    error code: 404 (not found), linked from page (s):

    http://pcracing.ru/2013/09/

    Ответить
  158. coolteams (5 комм.)

    <link rel="canonical" href="" /> выводится на главной, причем урл пустой, и портит валидацию.

    Ответить
    • M@ks (1 комм.)

      Попробуй убрать все что сделал по инструкции, отмени все изменения в файлах,

      В корневом файле index.php внеси изменения

      После строки:

      if ( $dle_module == "showfull" ) {

      Добавь:

      $metatags .= <<<HTML

      <link rel="canonical" href="{$full_link}">

      HTML;

      Ответить
  159. Владимир (8 комм.)

    Как сделать редирект на главную???

    Чтобы не было вот таких дублей. (буквы могут быть любые, главное формат /xxx.xxx)

    http://site.ru/ffff.fff

    http://site.ru/page/3/ffff.fff

    http://site.ru/anime/ffff.fff

    Движок 9.8