更新日期:2023-07-31

最近台北市長選戰正打的激烈,連網站都被揪出來『鞭』一下,像是 robots.txt 檔的寫法,究竟應該怎麼寫才好?Allow 和 Disallow 是否有先後順序的差別,各位可以參考一下 google 的怎麼寫,接著這邊教你如何改寫 wordpress 的 robots.txt 預設內容。

你在 wordpress 根目錄下是找不到 robots.txt 這支檔案的,但系統會依據搜尋引擎的造訪自動生成。

若是你設定『阻擋搜尋引擎索引這個網站』,那麼它會生成以下內容:

User-agent: * 
Disallow: /

若是沒有設定阻擋,那就會生成這樣子:

User-agent: * 
Disallow: /wp-admin/ 
Disallow: /wp-includes/

底下教你如何改寫原本的預設內容。一樣把下列的語法寫在你正在使用的佈景內的 functions.php

add_filter( 'robots_txt', 'robots_mod', 10, 2 );
function robots_mod( $output, $public ) {
  $output = "User-agent: *\n";
  if( get_option( 'blog_public' ) == '0' )
  {
    // 你設定阻擋搜尋引擎索引這個網站
    $output .= "Disallow: /\n";
  }
  else
  {
    // 注意,以下語法需要了解 robots.txt 的撰寫規則
    // 請依照自己的需求自行填寫
    $output .= "Disallow: /wp-admin/\n";
    $output .= "Disallow: /wp-includes/\n";
    $output .= "Allow: /wp-content/uploads/\n";
  }
  return $output;
}

補充

robots.txt 並不一定要寫,況且寫了『有些搜尋引擎』不一定會照你的規則走。

2020-11-05
從 版本 5.5 開始多了自動產生 sitmap 功能,你會在 robots.txt 裡面看到: Sitemap: https://www.abc.com/wp-sitemap.xml

你可以使用語法禁用顯示 sitemap:

add_filter( 'wp_sitemaps_enabled', '__return_false' );