Как улучшить SEO новостного сайта с помощью внутренней перелинковки?
Введение
Здравствуйте и добро пожаловать, дорогие друзья! Я рад, что вы заглянули на эту страницу, и сегодня я хочу рассказать вам о внутренней перелинковке и о том, как она может улучшить SEO вашего сайта.
Что такое внутренняя перелинковка?
Внутренняя перелинковка — это процесс создания ссылок на другие страницы внутри вашего сайта. Это означает, что вы устанавливаете гиперссылки между различными страницами, принадлежащими одному и тому же домену.
Основные цели и преимущества:
- Улучшение навигации: пользователи могут легко переходить между связанными страницами.
- Индексация: внутренние ссылки помогают поисковым системам находить больше страниц.
- Передача веса: страницы с высоким авторитетом могут делиться им с другими.
- Релевантность: ссылки связывают тематически близкие страницы.
Реализация для новостного сайта
Мы рассмотрим блоки:
- Популярные новости
- Похожие новости
Сайт реализован на PHP и MySQL.
Блок «Популярные новости»
Показывает самые просматриваемые и свежие статьи. Обычно содержит 5 ссылок. Используется алгоритм:
$result = mysqli_query($con, "SELECT * FROM news WHERE id≠ '$id'
ORDER BY (CAST(viewcount AS SIGNED) - DATEDIFF(NOW(), date)*2) DESC
LIMIT 5");
Алгоритм исключает текущую статью, сортирует по количеству просмотров и свежести публикации. Коэффициент распада можно подбирать экспериментально.
Искусственное увеличение счетчика просмотров может использоваться для временного продвижения статьи. Если показываются реальные просмотры, используйте дополнительный столбец в базе данных.
Производительность
При большом количестве записей запрос может замедлить работу. Рекомендуется:
- фильтровать по дате;
- использовать кэш или отдельную таблицу;
- обновлять кэш 1–2 раза в день.
Важно: не включать ссылку на текущую статью в блок. Для этого создается выборка на одну запись больше, чем отображается.
Если хотите, чтобы всё работало без лишних забот — доверьтесь нашей команде и закажите внедрение у нас!
Копирование структуры и выбор популярных новостей
Используя панель администрирования MySQL, мы копируем базу данных «news» в базу данных «popnews» с опцией только структура. По сути, мы создаем новую пустую базу данных с теми же колонками. Затем заполняем ее шестью популярными новостными статьями (5 + 1). Данный скрипт должен выполняться через cron.
mysqli_query($con, "truncate table popnews;");
mysqli_query($con, "INSERT INTO popnews
SELECT * FROM news
WHERE id<>'$id'
ORDER BY (CAST(viewcount AS SIGNED) - DATEDIFF(NOW(), date)*2) DESC
LIMIT 6");
При загрузке страницы мы не запрашиваем всю базу данных «news», а обращаемся к базе «popnews», содержащей ровно шесть популярных записей.
$result = mysqli_query($con, "SELECT * FROM popnews
WHERE id<>'$id'
ORDER BY id DESC
LIMIT 5");
Если требуется сортировка по популярности:
$result = mysqli_query($con, "SELECT * FROM popnews
WHERE id<>'$id'
ORDER BY (CAST(viewcount AS SIGNED) - DATEDIFF(NOW(), date)*2) DESC
LIMIT 5");
Блок «Связанные новости»
Этот блок используется для контекстной перелинковки. В отличие от произвольной внутренней перелинковки, контекстная обеспечивает более глубокую связь между текстом и целевыми страницами.
Блок «Похожие новости» помогает пользователям получить дополнительную информацию по теме, улучшая навигацию и удобство сайта.
С точки зрения SEO блок придает дополнительный вес последним новостям в категории, связывая их в единый контекстный блок.
Таблица «tags»
В таблице «tags» хранятся теги, используемые в блоке «Связанные новости». Однако при вызове блока таблица напрямую не запрашивается — используется идентификатор каждого тега.
Список тегов хранятся в столбце "tags"
таблицы "news"
в формате #1#2#3#4#
, где число между хэштегами — это ID тега. Это не лучший способ организации, но достаточно удобен.
Пример кода отбора новостей:
$tags = explode('#', $news['tags']); // преобразуем список в массив
array_shift($tags);
array_pop($tags); // удаляем пустые элементы
$m = "";
for($i = 0; $i < count($tags); $i++) {
$m .= "tags LIKE '%#" . $tags[$i] . "#%'";
if ($i + 1 != count($tags)) {
$m .= " OR ";
}
}
Результат: переменная $m
будет содержать строку вида:
"tags LIKE '%#1#%' OR tags LIKE '%#2#%' OR tags LIKE '%#3#%' OR tags LIKE '%#4#%'"
Мы используем хэштеги, чтобы избежать совпадений с многозначными ID, например: %1%
совпадает и с 1
, и с 10
.
На выходе — последние статьи с общими тегами. Кэширование здесь нецелесообразно, так как тегов много, но запросы достаточно быстрые. Мы получаем четыре статьи и выводим их с помощью mysqli_fetch_array
.
Заключение
Для продвижения новостного сайта перераспределение веса страниц — критически важный фактор. Трендовые статьи накапливают ссылочный вес, но со временем теряют актуальность.
Задача состоит в том, чтобы сместить вес в сторону новых страниц. Ключевую роль играет внутренняя перелинковка, без которой это невозможно.