Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Оптимизация мета-тегов Wordpress-сайтов (http://forum.sape.ru/showthread.php?t=97056)

DRAKULKA 28.10.2016 11:40

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

Начнём с описания страниц, а именно с тега description:

В файле заголовка header.php добавляем следующий код (или заменяем стандартную строчку, хотя по-умолчанию она не добавляется в стандартных темах, или заменяем свою старую строчки если у вас нестандартный шаблон), то есть строку приблизительно следующего содержания
PHP код:

<meta name="description" content="Ваш текст описания блога" /> 

заменяем на
PHP код:

    <?php if (is_home() || is_front_page() ) : ?>
    <meta name="description" content="<?php bloginfo('description'); ?>" />
    <?php elseif (is_single() || is_page() ) : if (have_posts() ) : while (have_posts() ) : the_post(); ?>
    <meta name="description" content="<?php echo cutString(get_the_excerpt(), 140); ?>" />
    <?php endwhile; endif; elseif (is_category() ): ?>
    <meta name="description" content="<?php echo category_description$category_id ); ?>" />
    <?php elseif (is_tag() ): ?>
    <meta name="description" content="Ключевое слово: <?php echo single_tag_title(); ?>" />
    <?php else : ?>
    <meta name="description" content="<?php bloginfo('description'); ?>" />
    <?php endif; ?>

Если вы заметили - там используется самописная функция cutString, поэтому её нужно добавить. В файл функций functions.php добавляем код
PHP код:

    function cutString($string$maxlen) {
        
$len = (mb_strlen($string) > $maxlen)? mb_strripos(mb_substr($string0$maxlen), ' ') : $maxlen;
        
$cutStr mb_substr($string0$len);
        return (
mb_strlen($string) > $maxlen)? $cutStr.' ...' $cutStr;
    } 

А теперь русским языком объясню, что у нас получилось.
1 строка - проверяет если у нас главная страница сайта (записей) home или же не забываем что может быть и статическая страница главной (front_page),
2 строчка - то выводится описание сайта, которое мы указывали в общих настройках блога
3 строчка - проверяет если мы на странице записи или любой другой статической странице
4 строчка - то выводится описание, вырезанное из основного контента страницы, длиной 140 символов, округлённое до полного слова, вот для чего нам нужна была функция cutString. Количество символов можно менять. Стандартно принимается в расчёт до 150, в отдельных случаях до 170, вобщем ставьте 140 - не ошибётесь.
5 строчка - проверяет если мы на странице рубрики,
6 строчка - то выводится описание рубрики. Само оно конечно с воздуха не возьмётся, так что нужно добавить вручную описание каждой рубрики постов, если вы не сделали этого ранее.
7 строчка - проверяет если мы на странице метки нескольких записей
8 строчка - то выводится фраза с тегом этих записей - "Ключевое слово: например кондиционеры Самсунг"
9 строчка - во всех остальных случаях (например когда новостей по одной рубрике уже на несколько страниц и мы попадаем на третью страничку page3, все варианты непросто предугадать и предвидеть), тогда выводим
10 строчка - стандартное описание блога как и на главной страничке
11 строчка - конец.

Надеюсь всё понятно и не сложно. Пользуйтесь на здоровье.

Если будет время - напишу об оптимизации и других метов.

poster 28.10.2016 17:02

Цитата:

Сообщение от DRAKULKA (Сообщение 1477452)
В ходе экспериментов я пришёл к наиболее идеальным на мой взгляд вариантам, которыми готов поделиться.

Поясните мне, зачем этот вордпрес вообще нужен, когда для статейника (новостника) достаточно "несколько" php файлов и бутстрапа?

MonAmur 28.10.2016 19:34

Цитата:

Сообщение от poster (Сообщение 1477467)
Поясните мне, зачем этот вордпрес вообще нужен, когда для статейника (новостника) достаточно "несколько" php файлов и бутстрапа?

не у всех же руки из правильного места растут :D

DRAKULKA 28.10.2016 20:03

Ну понятно, как всегда. Это тема не о выборе движка.

Цитата:

Чем отличаются русский, американский и еврейский форумы?
- на американском форуме вы задаете вопрос и вам дают ответ
- на еврейском форуме вы задаете вопрос и вам задают встречный вопрос
- на русском форуме вы задаете вопрос и вам долго объясняют почему вы мудак.

Mistery 31.10.2016 01:24

Каким образом выбирается описание из основного контента в 4-ой строчке?

MonAmur 31.10.2016 06:24

Цитата:

Сообщение от Mistery (Сообщение 1477546)
Каким образом выбирается описание из основного контента в 4-ой строчке?

там же все просто:
<если Главная>
<meta name="description" content="описание блога" />
<если страница поста>
<meta name="description" content="140 символов этого поста" />
<если страница раздела>
<meta name="description" content="описание раздела" />
<если страница тегов>
<meta name="description" content="Ключевое слово: тег" />
<в остальных случаях>
<meta name="description" content="описание блога" />

а про каким образом, надо почитать про the_excerpt()

DRAKULKA 01.11.2016 02:17

Для универсальности добавим ещё сортировку записей по дате, месяцу и году, вывод постов по автору, страничку ошибок и результаты поиска, уберём проверку ограничившись лишь условными операторами if-else и получим такой код:

PHP код:

<?php if (is_home() || is_front_page() ) : ?> 
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php elseif (is_single() || is_page() ) : ?>
<meta name="description" content="<?php echo cutString(get_the_excerpt(), 140); ?>" />
<?php elseif (is_category() ): ?>
<meta name="description" content="<?php echo category_description$category_id ); ?>" />
<?php elseif (is_tag() ): ?>
<meta name="description" content="Записи с ключевым словом: <?php echo single_tag_title(); ?>" />
<?php elseif (is_search() ) : ?>
<meta name="description" content="Результаты поиска по запросу <?php echo wp_title(''); ?>" />
<?php elseif (is_404() ) : ?>
<meta name="description" content="Ошибка 404, такая страничка не найдена. Перейдите на главную и выберите интересующий раздел." />
<?php elseif (is_author() ) : ?>
<meta name="description" content="Статьи автора <?php the_author(); ?>" />
<?php elseif (is_year() || is_month() || is_day() || is_date() ) : ?>
<meta name="description" content="Архив записей за <?php echo wp_title(''); ?>" />
<?php else : ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php endif; ?>


vbilo 08.11.2022 13:52

Нужна помощь с сайтом mabbly.com Как понять он на вордпресе или самопис? я 0 в сео


Часовой пояс GMT +3, время: 17:53.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.