No doubt, with the plugins like WordPress SEO by Yoast and Ultimate SEO, you can make your website SEO friendly. BUT, what if there is a possibility that you can make your WordPress website SEO friendly without the use of any plugin. This can be achieve by simply pasting the code in your theme’s functions.php file and you are done.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 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 .= '<meta name="description" content="' . esc_attr($content) . '">' . "\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" . '<meta name="keywords" content="' . esc_attr($keys) . '">' . "\n"; // robots if (is_category() || is_tag()) { $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; if ($paged > 1) { $output .= "\t\t" . '<meta name="robots" content="noindex,follow">' . "\n"; } else { $output .= "\t\t" . '<meta name="robots" content="index,follow">' . "\n"; } } else if (is_home() || is_singular()) { $output .= "\t\t" . '<meta name="robots" content="index,follow">' . "\n"; } else { $output .= "\t\t" . '<meta name="robots" content="noindex,follow">' . "\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" . '<title>' . esc_attr($seo_title . $page_number) . '</title>' . "\n"; return $output; } |
Once done, simply replace the $default_keywords in line 3 with your own keywords and add the following line of code into your theme’s header.php file.
1 | <?php echo basic_wp_seo(); ?> |
Snippet Source/Credit: Jeff Starr