WordPress description


Есть много плагинов для SEO, но почти у всех из них главная задача — это создать SEO мета-теги (метаданные) для страницы: title, description, robots, Open Graph. Иногда есть смысл не подключать подобные плагины, а использовать свой небольшой код — с ним проще управляться и решать нестандартные задачи… В этой статье я делюсь своим «велосипедом» в этой области.

Код ниже был написан уже давно, для статьи: Сравнение СЕО плагинов platinum SEO Pack и All in One SEO Pack. И, несмотря на то что есть плагины, то и дело появляется необходимость пользоваться этим кодом. Он используется иногда, как альтернатива, и судя по комментариям это бывает нужно не только мне… Поэтому было принято стратегическое решение smile вынести этот код в отдельную статью и поддерживать его уже здесь.

Код вывода title, description, robots, Open Graph, twitter

Базовая задача SEO плагинов — это дать возможность создавать четыре метаполя для страницы: title, description, robots и keywords. А также создание дополнительных Open Graph данных.


Код, который все это реализует (см. комментарии в коде):

// удалим стандартный вывод title и вызовем свой remove_action( 'wp_head', '_wp_render_title_tag', 1 ); add_action( 'wp_head', 'kama_render_seo_tags', 1 ); function kama_render_seo_tags(){ 	//remove_theme_support( 'title-tag' ); // не обязательно  	echo '<title>'. kama_meta_title(' — ') .'</title>'."nn";  	echo kama_meta_description(); 	echo kama_meta_keywords(); 	echo kama_meta_robots();  	echo kama_og_meta(); // Open Graph, twitter данные }  /**  * Open Graph, twitter данные в <head>.  * документация: http://ogp.me/  *  * @version 7  */ function kama_og_meta(){  	$obj = get_queried_object();  	// только для записей или терминов 	if( isset($obj->post_type) ) 		$post = $obj; 	elseif( isset($obj->term_id) ) 		$term = $obj;  	$is_post = isset($post); 	$is_term = isset($term);  	$title = kama_meta_title( '–' ); 	$desc = preg_replace( '/^.+content="([^"]*)".*$/s', '$1', kama_meta_description() );  	// Open Graph 	$els = array(); 	$els['og:locale'] = '<meta property="og:locale" content="'. get_locale() .'" />'; 	$els['og:site_name'] = '<meta property="og:site_name" content="'. esc_attr( get_bloginfo('name') ) .'" />'; 	$els['og:title'] = '<meta property="og:title" content="'. esc_attr( $title ) .'" />'; 	$els['og:description'] = '<meta property="og:description" content="'.  

c_attr( $desc ) .'" />'; $els['og:type'] = '<meta property="og:type" content="'.( is_singular() ? 'article' : 'object' ).'" />'; if( $is_post ) $pageurl = get_permalink( $post ); if( $is_term ) $pageurl = get_term_link( $term ); if( isset($pageurl) ) $els['og:url'] = '<meta property="og:url" content="'. esc_attr( $pageurl ) .'" />'; if( apply_filters( 'kama_og_meta_show_article_section', true ) ){ if( is_singular() && $post_taxname = get_object_taxonomies($post->post_type) ){ $post_terms = get_the_terms( $post, reset($post_taxname) ); if( $post_terms && $post_term = array_shift($post_terms) ) $els['article:section'] = '<meta property="article:section" content="'. esc_attr( $post_term->name ) .'" />'; } } // image if( 'image' ){ $fn__get_thumb_id_from_text = function( $text ){ if( preg_match( '/<img +src *= *['"]([^'"]+)['"]/', $text, $mm ) && ( $mm[1]{0} === '/' || strpos($mm[1], $_SERVER['HTTP_HOST']) ) ){ $name = basename( $mm[1] ); $name = preg_replace('~-[0-9]+x[0-9]+(?=..{2,6})~', '', $name ); // удалим размер (-80x80) $name = preg_replace('~.[^.]+$~', '', $name ); // удалим расширение $name = sanitize_title( sanitize_file_name( $name ) ); // приведем к стандартному виду global $wpdb; $thumb_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type.

e', 'post_type'=>'attachment', 'post_parent'=>$post->ID ] ); if( $attach && $attach = array_shift( $attach ) ) $thumb_id = $attach->ID; } } } } elseif( $is_term ){ if( ! $thumb_id = get_term_meta( $term->term_id, '_thumbnail_id', 1 ) ){ $thumb_id = $fn__get_thumb_id_from_text( $term->description ); } } $thumb_id = apply_filters( 'kama_og_meta_thumb_id', $thumb_id ); if( $thumb_id ){ if( is_numeric($thumb_id) ) list( $image_url, $img_width, $img_height ) = image_downsize( $thumb_id, 'full' ); elseif( is_array($thumb_id) ) list( $image_url, $img_width, $img_height ) = $thumb_id; else $image_url = $thumb_id; // Open Graph image $els['og:image'] = '<meta property="og:image" content="'. esc_url($image_url) .'" />'; if( isset($img_width) ) $els['og:image:width'] = '<meta property="og:image:width" content="'. (int) $img_width .'" />'; if( isset($img_height) ) $els['og:image:height'] = '<meta property="og:image:height" content="'.

nt) $img_height .'" />'; } } // twitter $els['twitter:card'] = '<meta name="twitter:card" content="summary" />'; $els['twitter:description'] = '<meta name="twitter:description" content="'. esc_attr( $desc ) .'" />'; $els['twitter:title'] = '<meta name="twitter:title" content="'. esc_attr( $title ) .'" />'; if( isset($image_url) ) $els['twitter:image'] = '<meta name="twitter:image" content="'. esc_url($image_url) .'" />'; $els = apply_filters( 'kama_og_meta_elements', $els ); return "nn". implode("n", $els ) ."nn"; } /** * Выводит заголовок страницы <title> * * Для меток и категорий указывается в настройках, в описании: [title=Заголовок]. * Для записей, если нужно, чтобы заголовок страницы отличался от заголовка записи, * создайте произвольное поле title и впишите туда произвольный заголовок. * * @version 4.8 * * @param string $sep разделитель * @param true|false $add_blog_name добавлять ли название блога в конец заголовка для архивов. */ function kama_meta_title( $sep = '»', $add_blog_name = true ){ static $cache; if( $cache ) return $cache; global $post; $l10n = apply_filters( 'kama_meta_title_l10n', array( '404' => 'Ошибка 404: такой страницы не существует', 'search' => 'Результаты поиска по запросу: %s', 'compage' => 'Комментарии %s', 'author' => 'Статьи автора: %s', 'archive' => 'Архив за', 'paged' => '(страница %d)', ) ); $parts = array( 'p.

r = get_bloginfo('description'); } } // отдельная страница elseif( is_singular() || ( is_home() && ! is_front_page() ) || ( is_page() && ! is_front_page() ) ){ $title = get_post_meta( $post->ID, 'title', 1 ); // указанный title у записи в приоритете if( ! $title ) $title = apply_filters( 'kama_meta_title_singular', '', $post ); if( ! $title ) $title = single_post_title( '', 0 ); if( $cpage = get_query_var('cpage') ) $parts['prev'] = sprintf( $l10n['compage'], $cpage ); } // архив типа поста elseif ( is_post_type_archive() ){ $title = post_type_archive_title('', 0 ); $after = 'blog_name'; } // таксономии elseif( is_category() || is_tag() || is_tax() ){ $term = get_queried_object(); $title = get_term_meta( $term->term_id, 'title', 1 ); if( ! $title ){ $title = single_term_title('', 0 ); if( is_tax() ) $parts['prev'] = get_taxonomy($term->taxonomy)->labels->name; } $after = 'blog_name'; } // архив автора elseif ( is_author() ){ $tit.

ry_var('year'); $monthnum = get_query_var('monthnum'); $day = get_query_var('day'); if( is_year() ) $dat = "$year год"; elseif( is_month() ) $dat = "$rus_month[$monthnum] $year года"; elseif( is_day() ) $dat = "$day $rus_month2[$monthnum] $year года"; $title = sprintf( $l10n['archive'], $dat ); $after = 'blog_name'; } // остальные архивы else { $title = get_the_archive_title(); $after = 'blog_name'; } // номера страниц для пагинации и деления записи $pagenum = get_query_var('paged') ?: get_query_var('page'); if( $pagenum ) $parts['paged'] = sprintf( $l10n['paged'], $pagenum ); // позволяет фильтровать title как угодно. Сам заголово // $parts содержит массив с элементами: prev - текст до, title - заголовок, after - текст после $parts = apply_filters_ref_array( 'kama_meta_title_parts', array($parts, $l10n) ); if( $after == 'blog_name' ) $after = $add_blog_name ? get_bloginfo('name') : ''; // добавим пагинацию в title if( $parts['paged'] ){ $parts['title'] .= " {$parts['paged']}"; unset( $parts['paged'] ); } $title = implode( ' '.

im($sep) .' ', array_filter($parts) ); //$title = apply_filters( 'kama_meta_title', $title ); $title = wptexturize( $title ); $title = esc_html( $title ); return $cache = $title; } /** * Выводит метатег description. * * Для элементов таксономий: метаполе description или в описании такой шоткод [description = текст описания] * У постов сначала проверяется, метаполе description, или цитата, или начальная часть контента. * Цитата или контент обрезаются до указанного в $maxchar символов. * * @param string $home_description Указывается описание для главной страницы сайта. * @param int $maxchar Максимальная длина описания (в символах). * * @version 2.2.1 */ function kama_meta_description( $home_description = '', $maxchar = 260 ){ static $cache; if( $cache ) return $cache; global $post; $cut = true; $desc = ''; // front if( is_front_page() ){ // когда для главной установлена страница if( is_page() && $desc = get_post_meta($post->ID, 'description', true ) ){ $cut = false; } if( ! $desc ) $desc = $home_description ?: get_bloginfo( 'description', 'display' ); } // singular elseif( is_singular() ){ if( $desc = get_post_meta($post->ID, 'description', true ) ) $cut = false; if( ! $desc ) $desc = $post->post_excerpt ?: $post->post_content; $desc = trim( strip_tags( $desc ) ); } // term elseif( is_category() || is_tag() || is_tax() ){ $t.

sc ); // удаляем шоткоды. Оставляем маркдаун [foo](URL) if( $cut ){ $char = mb_strlen( $desc ); if( $char > $maxchar ){ $desc = mb_substr( $desc, 0, $maxchar ); $words = explode(' ', $desc ); $maxwords = count($words) - 1; // убираем последнее слово, оно в 90% случаев неполное $desc = join(' ', array_slice($words, 0, $maxwords)).' ...'; } } $desc = preg_replace( '/s+/s', ' ', $desc ); } if( $desc = apply_filters( 'kama_meta_description', $desc, $origin_desc, $cut, $maxchar ) ) return $cache = '<meta name="description" content="'. esc_attr( trim($desc) ) .'" />'."n"; return $cache = ''; } /** * Метатег robots * * Чтобы задать свои атрибуты метатега robots записи, создайте произвольное поле с ключом robots * и необходимым значением, например: noindex,nofollow * * Укажите параметр $allow_types, чтобы разрешить индексацию типов страниц. * * @ $allow_types Какие типы страниц нужно индексировать (через запятую): * cpage, is_category,.

st_type_archive'; if( ( is_home() || is_front_page() ) && ! is_paged() ) return; if( is_singular() ){ // если это не вложение или вложение но оно разрешено if( ! is_attachment() || false !== strpos($allow_types,'is_attachment') ){ $robots = get_post_meta( $post->ID, 'robots', true ); } } else { $types = preg_split('~[, ]+~', $allow_types ); $types = array_filter( $types ); foreach( $types as $type ){ if( $type == 'cpage' && strpos($_SERVER['REQUEST_URI'], '/comment-page') ) $robots = false; elseif( function_exists($type) && $type() ) $robots = false; } } $robots = apply_filters( 'kama_meta_robots_close', $robots ); if( $robots ) return "<meta name="robots" content="$robots" />n"; } /** * Генерирует метатег keywords для head части сайта * * Чтобы задать свои keywords для записи, создайте произвольное поле keywords и впишите в значения необходимые ключевые слова. * Для постов (post) ключевые слова генерируются из меток и названия категорий, если не указано произвольное поле keywords.

* Для меток, категорий и произвольных таксономий, ключевые слова указываются в описании, в шоткоде: [keywords=слово1, слово2, слово3] * * @ $home_keywords: Для главной, ключевые слова указываются в первом параметре: kama_meta_keywords( 'слово1, слово2, слово3' ); * @ $def_keywords: сквозные ключевые слова - укажем и они будут прибавляться к остальным на всех страницах * * version 0.7 */ function kama_meta_keywords( $home_keywords = '', $def_keywords = '' ){ global $wp_query, $post; $out = ''; if ( is_front_page() ){ $out = $home_keywords; } elseif( is_singular() ){ $out = get_post_meta( $post->ID, 'keywords', true ); // для постов указываем ключами метки и категории, если не указаны ключи в произвольном поле if( ! $out && $post->post_type == 'post' ){ $res = wp_get_object_terms( $post->ID, array('post_tag', 'category'), array('orderby' => 'none') ); // получаем категории и метки if( $res && ! is_wp_error($res) ) foreach( $res as $tag ) $out .= ", $tag->name"; $out = ltrim( $out, ', ' ); } } elseif ( is_category() || is_tag() || is_tax() ){ $term = get_queried_object(); // wp 4.4 if( function_exists('get_term_meta') ){ $out = get_term_meta( $term->term_id, "keywords", true ); } else{ preg_match( '![keywords=([^]]+)]!iU', $term->description, $match ); $out = isset($match[1]) ? $match[1] : ''; } } if( $out && $def_keywords ) $out = $out .', '. $def_keywords; if( $out ) return "<meta name="keywords" content="$out" />n"; }

Подключение

Рекомендую скопировать код в отдельный php файл, например seo.php и подключить его в файл темы functions.php.

require_once 'seo.php';

Это все, код сразу начинает работать, больше не нужно ничего никуда добавлять — все работает через хуки. Единственное, нужно убедиться что в файле темы header.php есть вызов функции wp_head() и что там не выводиться жестко тег <title> и другие SEO теги…

Метаполя в админке

Wordpress description

Код выше только выводит нужные SEO мета-теги, но не добавляет метаполя для записей или элементов таксономий — их нужно создать отдельно.

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

  • title — альтернативный SEO заголовок будет использоваться в мета-теги <title>, вместо заголовка записи.

  • description — описание для страницы. Если его нет, то будет взять текст из цитаты, если и его нет, то кусок из начала контента записи.

    meta_description — так должно называться метаполе описания для терминов, потому что ключ description для таксономий занят…

  • keywords — метатег keywords. Не знаю нужен он или нет вообще в современных реалиях.

  • robots — указанное тут значение выводится как есть, например noindex,nofollow.
Как создать метабоксы с метаполями?

Сделать это можно с помощью класса Kama_Post_Meta_Box, просто кодом или с помощью плагинов Carbon Fields, Meta Box.

Для элементов таксономий (терминов), используйте пример из хука (taxonomy)_edit_form_fields или все те же плагины.

Тонкая настройка вывода

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

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

wp-kama.ru

Для чего нужен мета тег KEYWORDS

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

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

Зачем нужен мета тег DESCRIPTION

Этот мета тег содержит описание страницы ее суть и краткое содержание. Если вернуться к кулинарной статье про борщ, то мета тег description может иметь следующее содержимое: «Простой пошаговый рецепт с фотографиями вкусного борща на говяжьем бульоне, который вы можете приготовить за 30 минут».

Этот мета тег использовался поисковыми системами в качестве анонса статьи в поисковой выдаче. Но со временем он так же был дискредитирован и сейчас только Яндекс считает наличие мета тега description обязательным для каждой html страницы сайта.

Так нужны ли KeyWords и Description

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

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

Решение предлагаемое в этой статье всего лишь попытка заставить Яндекс.Вебмастер не ругаться на отсутствие мета-тега Description. И вряд ли поможет вам продвинуться вверх в поисковой выдаче.

Автогенератор метатегов Description и Keywords

На своих сайтах на WordPress я использую следующий код, который вам нужно разместить в файле functions.php вашей темы:

/* Автогенератор метатегов Description и KeyWords */    function create_meta_desc() {   global $post;   $meta = wp_get_document_title();  	  if (is_category()){  	$a = category_description();  	if ( ! empty( $a ) ) {	$meta = $a; }  }  if (is_front_page()){  	$meta = get_bloginfo( 'description' );  }  if (is_single()) {   $meta = strip_tags($post->post_content);  	$tags = get_the_tags();  	if ($tags) { foreach($tags as $tag) { $meta2 .= ' ' . $tag->name; } }  	$meta2 = ltrim( $meta2, ' ' );  	echo "n<meta name="keywords" content="$meta2" />";  }   $meta = strip_shortcodes($meta);  	$meta = preg_replace( '~[[^]]+]~', '', $meta );  	$meta = wp_strip_all_tags($meta, true);  	$meta = str_replace('"',''', $meta);  	if ( mb_strlen ( $meta ) > 160 ){ $meta = mb_substr($meta, 0, 160)."..."; }   echo "n<meta name="description" content="$meta" />n";  	  }  add_action('wp_head', 'create_meta_desc');  

Пояснения к скрипту: по-умолчанию для всех страниц в качестве тега DESCRIPTION используется заголовок — TITLE. Если страница является разделом категорий, то скрипт попробует использовать описание текущей рубрики, если оно есть (изменить можно в админке):

Автоматическое создание мета тегов description и keywords в WordPress

На главной странице используется краткое описание блога:

Автоматическое создание мета тегов description и keywords в WordPress

А вот для записей (постов) начинается самое интересное. Для формирования метатега Description берется начальная часть текста статьи (160 символов) из которых предварительно удаляются все теги и шорткоды.

Так же в записях на основе меток формируется метатег KEYWORDS.

Как проверить наличие мета-тегов Description и Keywords на странице

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

Автоматическое создание мета тегов description и keywords в WordPress

Либо нажать одновременно на клавиатуре клавиши [Ctrl] + [u]. И тогда на экране вы увидите примерно следующее:

Автоматическое создание мета тегов description и keywords в WordPress

А можно проще?

Можно упростить решения до минимума, просто добавьте следующий код в шаблон вашего сайта перед закрывающим тегом </head>, обычно в файле header.php:

<meta name="description" content="<?php echo wp_get_document_title(); ?>" />

moonback.ru

Description главной страницы WordPress

Каким должен быть дескрипшн:

— он должен отображать краткую информацию о содержимом конкретной страницы сайта;

— емкость и содержательность — главные отличительные черты description;

— размер этого мета тега не должен превышать 700 знаков.

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

Чтобы процесс добавления WordPress meta description был максимально легким и простым, мы рекомендуем использовать специальный плагин — Yoast SEO.

yoast_seo

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

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

Итак, как прописать description в WordPress?

Заходим в SEO — Заголовки и метаданные — Главное меню.

SEO

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

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

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

Также успешно с прописыванием description справляется плагин All in One SEO Pack.

all_in_one_seo

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

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

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

www.templatemonster.com

Wordpress description

В продолжение к статье «Использовать description и keywords или нет?» и рубрики «Делюсь опытом», сегодня делюсь опытом как создавать мета-теги description и keywords, в автоматическом режиме, без использования плагинов. Скажу сразу, рецепт построен на основе Произвольных полей WordPress и будет полезен всем кто экономит на плагинах или создает собственные, SEO оптимизированные шаблоны.

В WordPress, к моему сожалению, не предусмотрено создание мета-тегов description и keywords, простыми штатными средствами.  Я имею ввиду создание мета-тегов для каждой страницы вашего блога. Данную проблему решали сторонние плагины, такие как all-in-one-seo-pack, wpSeo и т.д.

Я написал небольшой скрипт, который автоматизирует процесс формирования мета-тегов title, description, keywords.

Скрипт формирует мета-теги для таких страниц:

  • Главная страницаtitle и description берется из настроек блога, а keywords формируется на основании всех тегов блога, ранжируя их по популярности использования. Количество ключевых слов настраиваемое, по умолчанию 25.
  • Страница рубрики title формируется из префикса и названия рубрики + title блога. Description берется из описания рубрики, а keywords формируется из тегов публикаций находящихся в рубрике. Ключи ранжируются по популярности использования. Количество ключевых слов настраиваемое, по умолчанию 9.
  • Страница тега title формируется из префикса и названия тега + title блога. Description берется из названия тега + 3х заголовков верхних публикаций страницы тега. Keywords формируется из дополнительных тегов публикаций находящихся на странице. Ключи ранжируются по популярности использования. Количество ключевых слов настраиваемое, по умолчанию 9.
  • Страница публикации или статическая страница title формируется из заголовка публикации/страницы + title блога. Description, если не указан в произвольном поле, берется из 20 первых слов публикации/страницы. Количество слов настраиваемое. Keywords формируется из тегов публикации/страницы или из произвольного поля.
  • Страница архива (год, месяц, день) title формируется из префикса и даты + title блога. Description и Keywords не указываются. Добавлен мета-тег <meta name=»robots» content=»noindex, nofollow» /> который запрещает индексирование поисковиками, чтобы исключить дублирование контента.
  • Страница поиска title формируется из префикса и фразы запроса + title блога. Description и Keywords не указываются. Добавлен мета-тег <meta name=»robots» content=»noindex, nofollow» /> который запрещает индексирование поисковиками.
  • Страница 404 title прописан в скрипте + title блога. Description и Keywords не указываются. Добавлен мета-тег <meta name=»robots» content=»noindex, nofollow» />.

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

Для того, чтобы в публикации или статической странице указать Description и Keywords вручную:

  1. Заходим в панель администратора WordPress.
  2. Создаем или редактируем статью блога.
  3. На странице редактора, внизу, находим вкладку Произвольные поля.
  4. Для мета-тега description в Имя пишем description, а в Значение пишем ваше краткое описание статьи.
  5. Для мета-тега keywords в Имя пишем keywords, а в Значение пишем ключевые слова статьи.
  6. Нажимаем кнопку ОпубликоватьОбновить.

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

ВНИМАНИЕ
Данный скрипт устарел, здесь новая версия
SEO скрипта wpAutomateSEO

Скачать скрипт можно по ссылке ниже:

Как подключить скрипт:

  1. Распакуйте файл seo.php, из загруженного архива, в папку с вашим шаблоном.
  2. В панели администратора WordPress кликаем, меню Внешний видРедактор.
  3. Откройте в редакторе файл functions.php (функции темы). Перед редактированием убедитесь что у этого файла стоят  права для записи CHMOD=666.
  4. В редакторе, в конец этого файла, вставляем код <?php include_once «seo.php»; ?>
  5. Сохраняем редактирование.
  6. Возвращаем права на файл functions.php CHMOD=644.
  7. Еще, рекомендую проверить файл header.php (шапка блога) на наличие <meta name=«description» content=… и <meta name=«keywords» content=, если нашли, то удаляем их.

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

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

Как проверить работоспособность скрипта?

  1. Заходим на страницу публикации в блоге.
  2. Кликаем, на странице, правой клавишей мыши.
  3. Выбираем Исходный код страницы HTML.
  4. В открывшемся окне ищем строки <meta name=«description» content=…  <meta name=«keywords» content= и смотрим что в них прописано.

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

Вы можете модифицировать и использовать скрипт в своих шаблонах на свое усмотрение. Не убирайте только копирайт.

Нашел ошибку в тексте? Выдели ее мышкой и нажми Система Orphus

www.wpbloging.com

Автоматическое создание Meta Description в WordPress

Многие пользователи движка WordPress для своих сеошных экспериментов применяют плагины вроде All in One SEO Pack или Platinum SEO Pack. Вещи, безусловно, полезные и нужные. Хотя есть несколько неприятных моментов, начиная с траблов при использовании со старыми версиями движка и заканчивая обыкновенной ленью.

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

Как раз для тех, кто не любит заморачиваться, есть простое и элегантное решение (спасибо Паше Ундервуду) — автоматическое добавление мета-тега Description на страницы с постами. Текст берется из начала поста. Первые 125 букавок. Так что все, что нужно — это при написании поста в самом первом предложении прописать тему и ключевые слова. Все!

Ну а мета-тег keywords добавит старый добрый плагин Simple Tags. Что еще для счастья надо?

Вот код, который нужно поместить в файле functions.php шаблона:

function create_meta_desc() {
global $post;
if (!is_single()) { return; }
$meta = strip_tags($post->post_content);
$meta = strip_shortcodes($post->post_content);
$meta = str_replace(array("n", "r", "t"), ' ', $meta);
$meta = substr($meta, 0, 125);
echo "<meta name='description' content='$meta' />";
}
add_action('wp_head', 'create_meta_desc');

Если у вас старый движок, то удалите из кода следующую строку:

$meta = strip_shortcodes($post->post_content);

Enjoy!

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

UPD: 19.01.2017 Так как отношение поисковиков к метатегам значительно изменилось (ссылка), то я решил переделать этот код на следующий вариант:

function create_meta_desc() {
global $post;
if (!is_front_page()) { return; }
echo "<meta name='description' content='Тут пишете свое описание для главной страницы' />";
}
add_action('wp_head', 'create_meta_desc');

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

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

www.websovet.com

Как добавить Description и Keywords в WordPress

Одним из наиболее частых вопросов, с которыми сталкиваются web-мастера и SEO-оптимизаторы, работающие с Wordcodess, — это добавление в данную CMS META тэгов Description и Keywords. Как правило, большинство новичков, не желая особо разбираться в возможностях движка, а также тратить время на то, чтобы изучать его код, ограничиваются установкой одного из расширений, тем более что количество seo плагинов для Wordcodess исчисляется десятками. Наиболее известным среди них является All in One Seo Pack.

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

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

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

В-третьих, создание МЕТА тэгов так, как делает All in One Seo Pack и другие ему подобные плагины, гораздо рациональнее осуществить при помощи возможностей самого Wordcodess, на основе которых все подобные расширения и работают.

И наконец, в-четвертых, все существующие в настоящее время плагины для создания META тэгов Description и Keywords не позволяют автоматизировать работу по их заполнению. Таким образом, каждый раз при создании очередной статьи вам придется обдумывать и текст, который вы вставите в Description, и ключевые слова. Зачем тратить на это время, если гораздо удобнее и проще предоставить эту задачу CMS?

Создание мета тэгов Description и Keywords в Wordcodess без использования плагинов

Способ № 1. Заполнение мета тэгов каждый раз при создании новой статьи.

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

После этого под областью для ввода основного текста появятся настройки для произвольных полей.

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

После того, как вы выполните данные действия, на каждой странице у вас появятся соответствующее поле для ввода Meta Description.

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

Теперь осталось только вывести содержание дополнительных полей в соответствующем месте HTML-страницы. Для этого в используемом шаблоне открываем файл header.php и вставляем после код

<meta name="description" content="<?php echo get_post_meta($post->ID, 'description', true); ?>" />  <meta name="keywords" content="<?php echo get_post_meta($post->ID, 'keywords', true); ?>" />

Способ № 2. Автоматизация создания мета тэга Description

Данный способ также не вызовет у вас никаких затруднений: вам надо будет только скопировать приведенный ниже код в соответствующее место PHP-файла.

Открываем header.php и в самый верх файла перед всем его содержимым вставляем следующий код:

//Для работы с записями, а не страницами замените is_page на is_single  <?php if (is_page()) {//если это страница…  if (have_posts()) : while (have_posts()) : the_post(); //Начинаем цикл WordPress   $strDescr = wp_trim_words(get_the_content(), 100 ); //Получаем часть поста в размере ста слов  // Количество можно варьировать по своему желанию  $strDescr = preg_split("/[.?!] /", $strDescr);  //Разделяем на предложения, чтобы Description не оказался оборванным на полуфразе.  //При этом, каждое предложение записывается в отдельный элемент массива.  endwhile;  endif;   }  else {  $strDescr="Альтернативное описание сайта"; //если это не страница, выводим иной текст  }  

Для вывода Description в HTML-коде страницы вставляем в header.php:

  <meta name="description" content="<?php echo $strDescr[0].$strDescr[1].$strDescr[2].$strDescr[3]; ?>" />  

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

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

seo-praktika.com

Задача: добавить мета теги description и keywords в заголовок поста на WordPress, без плагинов. В description поместить краткое описание статьи, а в keywords метки (теги) если они имеются у поста.

Не буду банально останавливаться на том зачем эти теги нужны. Отмечу лишь, что по умолчанию WordPress не добавляет эти мета-теги к записи. И при редактировании записи их задать нельзя. Авторы документации ссылаются на то что теги устарели, их использование сомнительно и вообще WordPress «can’t read your mind».

Существует множество SEO плагинов для WordPress которые исправляют ситуацию и добавляют возможность задавать вручную description и keywords для каждой записи, но:

  • во-первых, нужно стремиться минимизировать количество используемых плагинов с точки зрения «зависимости» и производительности;
  • во-вторых, большинство плагинов добавляют лишь дополнительные поля в редактор. А сами значения description и keywords приходится вводить вручную.

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

Решение:

Добавьте в header.php перед вызовом wp_head() код:

<?php if (is_single() || is_page() ) : if (have_posts() ) : while (have_posts() ) : the_post(); ?>  <meta name="description" content="<?php echo cutString(get_the_excerpt(), 140); ?>" />  <meta name="keywords" content="<?php   global $post;   $tags = wp_get_post_tags($post->ID);   foreach ($tags as $tag) { echo $tag->name.", "; }  ?>" />  <?php endwhile; endif; elseif (is_home() ): ?>  <meta name="description" content="<?php bloginfo('description'); ?>" />  <?php endif; ?>

Алгоритм работы прост: если это запись или страницы добавляем в description краткий анонс статьи, а в keywords теги. Функция get_the_excerpt() — получает анонс поста и обрезает лишние html теги и изображения. wp_get_post_tags() — возвращает массив тегов (меток) текущего поста.

cutString() — простенькая самописная функция которая обрезает строку по словам в пределах заданного количества символов и добавляет ‘…’ в конце. Ее необходимо поместить в funtions.php. Напоминаю, оптимальная длина title до 70 символов, а Description — до 150 символов. По некоторым данным допускается длина 60-90 символов для title, и 140-190 для description.

Реализация cutString:

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

sauron.org.ua

Как прописать мета теги в WordPress

От автора: приветствую вас, уважаемые коллеги и любители WordPress :) Все мы хотим видеть наш сайт в ТОПе поисковых систем и иногда этого можно достичь вовсе без денежных вложений, достаточно написать уникальный контент и правильно оформить его. Одной из составляющих правильного оформления являются мета теги. Итак, давайте поговорим о том, как прописать мета теги в WordPress.

Для новичков давайте напомним, что за мета теги нас интересуют. А интересны нам 3 тега, которые отвечают за заголовок страницы — title (его мы видим в названии вкладки в браузере), за описание страницы — description и ключевые слова — keywords. Последние два (description и keywords) можно увидеть только в исходном коде страницы.

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

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

Однако пренебрегать ими не стоит. Во всяком случае я рекомендовал бы вам обратить внимание на описание страницы — мета тег description. Дело в том, что его содержимое может быть вполне взято поисковиком и использовано в качестве сниппета — небольшого фрагмента текста, который мы видим в качестве описания сайта в результатах поисковой выдачи.

Wordpress description

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

Прописать и использовать теги нам поможет замечательный плагин для WordPress All in One Seo. Если у вас он пока не установлен, тогда скорее установите его или другой его аналог (Yoast SEO, Platinum SEO Pack и т.п.).

Первое, с чего стоит начать — главная страница вашего сайта. Главная страница — это, так сказать, лицо сайта, ведь именно с нее большинство посетителей начинают знакомство с сайтом. Именно поэтому важно заполнить все meta теги для нее. Идем в основные настройки плагина WordPress All in One Seo и находим там целый блок настроек, отвечающий за стартовую страницу сайта WordPress.

Wordpress description

Давайте заполним поля заголовка, описания и ключевиков. Я впишу что-то произвольное.

Wordpress description

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

Wordpress description

Отлично, с главной страницей все понятно. А что делать со статьями, тем самым контентом, который является ключевым для любого сайта? Благодаря плагину со статьями все проще простого. Откроем любую имеющуюся статью или создадим новую. После установки плагина All in One Seo вы должны увидеть много новых полей, которые идут после визуального редактора, в котором мы набираем текст статей.

Wordpress description

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

Wordpress description

Как видим, ничего сложного в том, чтобы прописать мета теги в WordPress — нет. Немного усилий с вашей стороны и поисковики уже могут чуть более благосклонно смотреть на ваш сайт. Если вам интересна тема WordPress, тогда больше уроков вы можете найти здесь. Ну а у меня на этом все. Удачи!

Wordpress description

webformyself.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.