在 SEO 中連結結構 (URL) 的最佳化也很重要,下面是一段來自百度官方的 SEO 最佳化建議:

簡潔美觀的 url 規則

(1) 唯一性網站中同一內容頁只與唯一一個 url 相對應,過多形式的 url 將分散該頁面的權重,並且目標 url 在系統中有被濾重的風險;

(2) 簡潔性動態引數儘量少,保證 url 儘量短;

(3) 美觀性使得使用者及機器能夠透過 url 即可判斷出頁面內容的主旨;

我們推薦如下形式的 url:url 儘量短且易讀使得使用者能夠快速理解,例如使用拼音作為目錄名稱;同一內容在系統中只產生唯一的 url 與之對應,去掉無意義的引數;如果無法保證 url 的唯一性,儘量使不同形式的 url301 到目標 url;防止使用者輸錯的備用域名 301 至主域名。

很多 SEO 大神也說過網站 URL 的層次儘量不要超過三層這樣有利於蜘蛛抓取內容,然而 WordPress 偽靜態後預設的 tag 頁面的連結結構為:http://域名/tag/tag-name/,而 tag 頁的分頁連結結構為:http://域名/tag/tag-name/page/page-id/這種形式,明顯的已經不符合百度所說的美觀簡短的結構了,那麼我麼可以刪掉連結中的一層來達到減少連結層次的效果,以去除連結中的/tag/這層為例,程式碼如下:

register_activation_hook(__FILE__,'no_tag_base_refresh_rules');add_action('created_post_tag','no_tag_base_refresh_rules');add_action('edited_post_tag','no_tag_base_refresh_rules');add_action('delete_post_tag','no_tag_base_refresh_rules');function no_tag_base_refresh_rules() {    global $wp_rewrite;    $wp_rewrite->flush_rules();}register_deactivation_hook(__FILE__,'no_tag_base_deactivate');function no_tag_base_deactivate() {    remove_filter('tag_rewrite_rules', 'no_tag_base_rewrite_rules');    no_tag_base_refresh_rules();}add_action('init', 'no_tag_base_permastruct');function no_tag_base_permastruct() {    global $wp_rewrite, $wp_version;    if (version_compare($wp_version, '3.4', '<')) {="" $wp_rewrite="" -=""> extra_permastructs['post_tag'][0] = '%post_tag%';    } else {        $wp_rewrite -> extra_permastructs['post_tag']['struct'] = '%post_tag%';    }}add_filter('tag_rewrite_rules', 'no_tag_base_rewrite_rules');function no_tag_base_rewrite_rules($tag_rewrite) {    $tag_rewrite=array();    $tags=get_tags(array('hide_empty'=>false));    foreach($tags as $tag) {        $tag_nicename = $tag->slug;        if ( $tag->parent == $tag_id ) {           $tag->parent = 0;        }        $tag_rewrite['('.$tag_nicename.')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?tag=$matches[1]&feed=$matches[2]';        $tag_rewrite['('.$tag_nicename.')/page/?([0-9]{1,})/?$'] = 'index.php?tag=$matches[1]&paged=$matches[2]';        $tag_rewrite['('.$tag_nicename.')/?$'] = 'index.php?tag=$matches[1]';    }    global $wp_rewrite;    $old_tag_base = get_option('tag_base') ? get_option('tag_base') : 'tag';    $old_tag_base = trim($old_tag_base, '/');    $tag_rewrite[$old_tag_base . '/(.*)$'] = 'index.php?tag_redirect=$matches[1]';    return $tag_rewrite;}add_filter('query_vars', 'no_tag_base_query_vars');function no_tag_base_query_vars($public_query_vars) {    $public_query_vars[] = 'tag_redirect';    return $public_query_vars;}add_filter('request', 'no_tag_base_request');function no_tag_base_request($query_vars) {    if (isset($query_vars['tag_redirect'])) {        $tag = user_trailingslashit($query_vars['tag_redirect'], 'post_tag');        $taglink = trailingslashit(get_option( 'home' )) . $tag;        status_header(301);        header("Location: $taglink");        exit();    }    return $query_vars;}

以上程式碼加到 functions.php,加好程式碼後到後點選一次固定連結即可,現在標籤 (tag) 頁面的連結就變成了以下這種結構:http://域名/tag-name/,而 tag 頁的分頁連結結構為:http://域名/tag-name/page/page-id/這種形式,並且訪問 http://域名/tag/tag-name/會自動 301 轉跳到 http://域名/tag-name/,訪問 http://域名/tag/tag-name/page/page-id/會 301 到 http://域名/tag-name/page/page-id/。