29 November
2011

Remove Duplicate Title Tags and Meta Descriptions

Setiap Blogger yang menggunakan Hosting Provider dengan WordPress sebagai CMS (Content Management System) yang termudah, akan selalu berhadapan dengan permasalahan Duplicate Title Tags and Meta Descriptions. Permasalahan tersebut dapat diketahui bila Blogger menggunakan Google WebMaster Tool.
Duplicate Title Tags and Meta Descriptions pasti terjadi pada Theme dasar yang digunakan (Not Customized Theme). Umumnya hal tersebut terjadi pada 3(tiga) kondisi berikut:

  1. Akses URL yang mengandung Query String, yaitu URL yang mengandung karakter tanda-tanya ?, seperti: http://www.yourdamain.com/?page-id=2
  2. Category Name (Nama Kategori) bisa diakses dengan 2(dua) cara, yaitu dengan menuliskan langsung di address bar, seperti: http://www.yourdamain.com/category-name dan dengan cara normal meng-click link nama kategory, seperti: http://www.yourdamain.com/category/category-name
  3. Jumlah Post sudah melampui batas jumlah post yang akan ditampilkan pada halaman depan maupun pada halaman archives. sehingga link yang ditimbulkan bertambah dengan suffix ‘/page/2’, ‘/page/3’ dan seterusnya. Pengaturan jumlah post yang ditampilkan pada halaman [Settings -> Reading -> Blog pages show at most] terlihat seperti gambar berikut:

Blog pages show at most

Untuk mengatasi permasalahan tersebut dibutuhkan perubahan pada 3(tiga) file yaitu:

  • File robots.txt
  • File Themes header.php
  • File Themes functions.php

File robots.txt digunakan untuk memberitahukan pada Search Engine bahwa URL yang mengadung Query String tidak perlu diakses/di-index. Yang perlu ditambahkan pada file robots.txt adalah:

Disallow: /*?*

atau disesuaikan dengan kebutuhan kita, seperti dapat dilihat pada contoh ini. Untuk melakukan perubahan pada file robots.txt ini kita perlu melakukan upload dan download ke hosting provider kita. Sedangkan untuk melakukan perubahan pada file functions.php dan header.php dari template Theme yang aktif dapat dilakukan dengan login ke Dashboard WordPress.

File functions.php dan header.php dari template Theme yang aktif, digunakan untuk mengatasi permasalahan yang terjadi pada kondisi point ke 2(dua) dan ke 3(tiga) diatas. Perubahan yang dilakukan adalah sebagai berikut:

1. Buka File functions.php melalui Theme Editor yang ada pada Dashboard WordPress seperti gambar berikut:
Pada Sidebar kiri dari Dashboard WordPress, klik Appearance -> Editor, seperti gambar berikut:

Themes Editor

Pada Sidebar kanan dari Dashboard WordPress, klik file functions.php, seperti gambar berikut:

Themes Editor

Kemudian scroll keatas, maka akan tampak seperti gambar berikut:

Themes Editor

Setelah itu ubah file functions.php tersebut agar mengandung perintah-perintah seperti berikut ini
Untuk menampilkan content pada title tag

function dp_title_tag($sub_title, $paged) {
  if (isset($sub_title)) {
    echo $sub_title;
  } elseif (is_home()) {
    echo get_bloginfo('name') . ' - ' . get_bloginfo('description');
  } elseif (is_search()) {
    echo 'Pencarian di ' . get_bloginfo('name') . ' - ' . get_bloginfo('description');
  } elseif (is_category()) {
    echo single_cat_title('Arsip di kelompok ', true) . ' - ' . get_bloginfo('name');
  } elseif (is_archive() && is_month()) {
    echo 'Arsip di Bulan ';
    the_time('F, Y');
    echo ' - ' . get_bloginfo('name');
  } elseif (is_single()) {
    single_post_title();
  } elseif (is_page()) {
    single_post_title();
    echo ' - ' . get_bloginfo('name');
  } elseif (is_author()) {
    echo 'Arsip sang Penulis - ' . get_bloginfo('name');
  }
  if ($paged < 2) {
  } else {
    echo " [ Page $paged ]";
  }
}

Untuk membatasi jumlah karakter yang akan ditampilkan pada meta description

function get_limit_words($text, $limit) {
  if (str_word_count($text, 0) > $limit) {
    $words = str_word_count($text, 2);
    $pos = array_keys($words);
    $text = substr($text, 0, $pos[$limit]) . '...';
  }
  return $text;
}

Untuk mengambil isi posting yang akan ditampilkan pada meta description

function dp_excerpt($excerpt) {
  $string = strip_tags(str_replace('"', '', wp_trim_excerpt($excerpt)));
  $string = str_replace(array("\r\n", "\r", "\n", "\t"), ' ', $string);
  $string = substr($string, 0, 152);
  $sCount = str_word_count($string, 0) - 1;
  $string = get_limit_words($string, $sCount);
  return $string;
}

Untuk menampilkan content pada meta description

function dp_meta_description($sub_title, $paged, $excerpt) {
  if (is_single()) {
    echo dp_excerpt($excerpt);
  } else {
    echo dp_title_tag($sub_title, $paged) .
      ' : Personal Notes of Computer Networking Information Technology Tips and Trick and Howto';
  }
}

Untuk mengisi content “noindex” atau “index” pada meta tag robot khusus untuk URL yang mengandung Category-Name

function dp_meta_robots() {
  if (is_category()) {
    if ($_SERVER["REQUEST_URI"] == "/cisco") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/linux") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/microsoft") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/miscellaneous") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/microsoft") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/vmware-virtualization") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/wordpress") {
      echo "noindex, follow";
    } elseif ($_SERVER["REQUEST_URI"] == "/juniper") {
      echo "noindex, follow";
    } else {
      echo "index, follow";
    }
  } elseif ($_SERVER["QUERY_STRING"]) {
    echo "noindex, follow";
  } else {
    echo "index, follow";
  }
}

Isi kalimat yang akan ditampilkan pada title tag dan meta tag disesuaikan dengan kebutuhan masing-masing blogger.

2. Buka file header.php melalui Theme Editor yang ada pada Dashboard WordPress seperti gambar berikut:
Pada Sidebar kanan dari Dashboard WordPress, klik file header.php, seperti gambar berikut:

Themes Editor

Kemudian scroll keatas, maka akan tampak seperti gambar berikut:

Themes Editor

Setelah itu ubah file header.php tersebut agar mengandung meta tags seperti contoh berikut:

<?php
global $subtitle;
global $paged;
date_default_timezone_set('Asia/Jakarta');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
.
.
<meta name="robots" content="<?php dp_meta_robots(); ?>" />
<meta name="description"
	content="<?php dp_meta_description($subtitle, $paged, $post->post_content); ?>" />
<title><?php dp_title_tag($subtitle, $paged); ?></title>
.
.
<?php wp_head(); ?>
</head>

Selamat ber Hosting Ria

Di Terbitkan Oleh Winston Sahusilawane Pada Rubrik WordPress : 29 November, 2011 |