Votre SEO sans plugin

L’optimisation pour le référencement/positionnement ne doit pas être négligée… Certaines extensions sont parfois un peu lourdes lorsque l’on n’y connaît pas grand chose.

Ce snippet permet de générer automatiquement ce qu’il faut pour une page et/ou un article…
Cela peut être ajouté en éditant le fichier functions.php de votre thème, ou alors en l’ajoutant via le plugin Code Snippets.

Pour que cela fonctionne, il vous faut ajouter une ligne de code entre vos balises <HEAD> ... </HEAD>

<?php echo basic_wp_seo(); ?>

Ou alors, si vous ne souhaitez pas modifier vos fichiers créez un snippet

/* Basic WP SEO

Option : ajout de Description, Mots Clés et/ou Titre personnalisés pour chaque Post ou Page en utilisant les "custom fields" (champs personnalisés) suivants :
	mm_seo_desc
	mm_seo_keywords
	mm_seo_title

Snippet original et explications :
	http://digwp.com/2013/08/basic-wp-seo/
*/
function basic_wp_seo() {
	global $page, $paged, $post;
	$default_keywords = 'wordpress, plugins, themes, design, dev, development, security, htaccess, apache, php, sql, html, css, jquery, javascript, tutorials'; // customize
	$output = '';

	// description
	$seo_desc = get_post_meta($post->ID, 'mm_seo_desc', true);
	$description = get_bloginfo('description', 'display');
	$pagedata = get_post($post->ID);
	if (is_singular()) {
		if (!empty($seo_desc)) {
			$content = $seo_desc;
		} else if (!empty($pagedata)) {
			$content = apply_filters('the_excerpt_rss', $pagedata->post_content);
			$content = substr(trim(strip_tags($content)), 0, 155);
			$content = preg_replace('#\n#', ' ', $content);
			$content = preg_replace('#\s{2,}#', ' ', $content);
			$content = trim($content);
		} 
	} else {
		$content = $description;	
	}
	$output .= '' . "\n";

	// keywords
	$keys = get_post_meta($post->ID, 'mm_seo_keywords', true);
	$cats = get_the_category();
	$tags = get_the_tags();
	if (empty($keys)) {
		if (!empty($cats)) foreach($cats as $cat) $keys .= $cat->name . ', ';
		if (!empty($tags)) foreach($tags as $tag) $keys .= $tag->name . ', ';
		$keys .= $default_keywords;
	}
	$output .= "\t\t" . '' . "\n";

	// robots
	if (is_category() || is_tag()) {
		$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
		if ($paged > 1) {
			$output .=  "\t\t" . '' . "\n";
		} else {
			$output .=  "\t\t" . '' . "\n";
		}
	} else if (is_home() || is_singular()) {
		$output .=  "\t\t" . '' . "\n";
	} else {
		$output .= "\t\t" . '' . "\n";
	}

	// title
	$title_custom = get_post_meta($post->ID, 'mm_seo_title', true);
	$url = ltrim(esc_url($_SERVER['REQUEST_URI']), '/');
	$name = get_bloginfo('name', 'display');
	$title = trim(wp_title('', false));
	$cat = single_cat_title('', false);
	$tag = single_tag_title('', false);
	$search = get_search_query();

	if (!empty($title_custom)) $title = $title_custom;
	if ($paged >= 2 || $page >= 2) $page_number = ' | ' . sprintf('Page %s', max($paged, $page));
	else $page_number = '';

	if (is_home() || is_front_page()) $seo_title = $name . ' | ' . $description;
	elseif (is_singular())            $seo_title = $title . ' | ' . $name;
	elseif (is_tag())                 $seo_title = 'Tag Archive: ' . $tag . ' | ' . $name;
	elseif (is_category())            $seo_title = 'Category Archive: ' . $cat . ' | ' . $name;
	elseif (is_archive())             $seo_title = 'Archive: ' . $title . ' | ' . $name;
	elseif (is_search())              $seo_title = 'Search: ' . $search . ' | ' . $name;
	elseif (is_404())                 $seo_title = '404 - Not Found: ' . $url . ' | ' . $name;
	else                              $seo_title = $name . ' | ' . $description;

	$output .= "\t\t" . '' . esc_attr($seo_title . $page_number) . '' . "\n";

	return $output;
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *