WordPress 去 category 教程:3 种方法移除 URL 前缀提升 SEO(2026 版)

想移除 WordPress 网址中的 /category/ 前缀?本文详解 3 种 2026 最新方法:免插件代码法、WP No Category Base 插件及 Rank Math 设置。含自动 301 重定向方案,防止老站 SEO 权重流失,让 URL 更简洁友好。立即查看教程!

在使用 WordPress 搭建网站(尤其是像“主机酷”这样的技术博客)时,你是否注意到分类目录的链接默认长这样:https://zhuji.cool/category/server-deals/

那个多余的 /category/ 不仅让网址变长,增加了目录层级,从 SEO(搜索引擎优化)的角度来看,它也稀释了关键词的权重。对于追求极致扁平化结构的站长来说,去掉它是必经之路。

今天,我们将分享三种在 2026 年依然有效的方法,帮助你彻底移除这个前缀,让网址变成更简洁的 https://zhuji.cool/server-deals/

⚠️ 重要提示
如果你的网站已经运营了一段时间,且旧链接(带 /category/ 的)已经被搜索引擎收录,请务必做好 301 重定向,否则会导致流量损失和 404 错误。本文方法二和方法三均涉及此保护机制。

方法一:使用专用插件(最简单、推荐新手)

WordPress 去 category 教程:3 种方法移除 URL 前缀提升 SEO(2026 版)

对于不想修改代码的用户,使用插件是最安全、快捷的方式。这些插件不仅能去除前缀,通常还会自动处理旧链接的 301 跳转。

推荐插件:WP No Category Base

这是目前最经典、维护最及时的插件之一。

  1. 安装插件
    • 进入 WordPress 后台 > 插件 > 安装插件
    • 搜索 WP No Category Base
    • 点击“现在安装”并“启用”。
  2. 配置与生效
    • 该插件无需复杂设置,启用后立即生效。
    • 它会自动刷新伪静态规则(Permalinks)。
    • 核心优势:它会自动检测旧的 /category/xxx 链接,并将其 301 重定向到新的 /xxx 链接,完美保护 SEO 权重。
  3. 验证
    • 访问任意分类页面,检查地址栏是否已去除 /category/

替代方案:如果该插件不兼容你的环境,也可以尝试 Remove Category URL 或 No Category Parents,功能类似。

方法二:通过代码实现(无需插件,性能更优)

如果你像我一样,喜欢保持网站轻量,不希望为了一个小功能多装一个插件,那么将代码添加到主题的 functions.php 文件中是最佳选择。

操作步骤:

  1. 进入 WordPress 后台 > 外观 > 主题文件编辑器(或使用 FTP/SFTP 连接服务器)。
  2. 找到当前主题的 functions.php 文件。
    • 注:如果你使用的是子主题(Child Theme),请编辑子主题的 functions.php,以防主主题更新后代码丢失。JustNews 主题建议开启子主题功能。
  3. 在文件末尾添加以下代码:
/* 移除分类链接中的 /category/ 前缀 */
add_action('load-themes.php', 'no_category_base_refresh_rules');
function no_category_base_refresh_rules() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

// 注册激活钩子
register_deactivation_hook(__FILE__, 'no_category_base_deactivate');
function no_category_base_deactivate() {
    remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
    // 刷新规则
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

// 定义重写规则
function no_category_base_rewrite_rules($category_rewrite) {
    $category_rewrite = array();
    $categories = get_categories(array('hide_empty' => false));
    foreach ($categories as $category) {
        $cat_nicename = $category->slug;
        if ($cat_nicename == 'feed') { 
            // 避免与 feed 冲突
            continue; 
        }
        $category_rewrite['(' . $cat_nicename . ')(?:/[0-9]+)?/?$'] = 'index.php?category_name=$matches[1]';
        
        // 处理分页
        $category_rewrite['(' . $cat_nicename . ')/page/[0-9]+/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';
        
        // 处理父级分类
        if ($category->parent != 0) {
             $parent = get_category($category->parent);
             $category_rewrite['(' . $parent->slug . '/' . $cat_nicename . ')(?:/[0-9]+)?/?$'] = 'index.php?category_name=$matches[1]';
        }
    }
    
    // 保留原有的 feed 规则
    $old_category_base = get_option('category_base') ? get_option('category_base') : 'category';
    $old_category_base = trim($old_category_base, '/');
    $category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]';

    return $category_rewrite;
}

add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');

// 处理 301 重定向 (关键步骤:防止 SEO 权重流失)
function no_category_base_old_urls($wp) {
    if (isset($wp->query_vars['category_redirect'])) {
        $catlink = trailingslashit(get_option('home')) . user_trailingslashit($wp->query_vars['category_redirect'], 'category');
        wp_redirect($catlink, 301);
        exit;
    }
}
add_action('parse_request', 'no_category_base_old_urls', 9999);
  1. 保存文件
  2. 刷新伪静态:进入后台 > 设置 > 固定链接,直接点击“保存更改”按钮(无需修改任何内容),以刷新 rewrite 规则。

方法三:利用 SEO 插件的高级功能(一站式管理)

如果你已经安装了一些功能强大的WordPress主题Rank Math SEO 或 Yoast SEO Premium,它们内部可能已经集成了此功能,无需额外操作。

  • Rank Math SEO
    • 进入 Rank Math > 常规设置 > 链接
    • 找到 “去除分类基础” (Remove Category Base) 选项。
    • 开启开关即可。Rank Math 会自动处理底层的重写规则和重定向。
  • Yoast SEO
    • Yoast 免费版通常不直接提供此开关,但可以通过其高级重定向管理器配合手动设置实现,或者建议使用方法一/二。
  • 主题
    • 详见主题设置界面或主题官方文档

常见问题与注意事项

1. 出现 404 错误怎么办?

如果在操作后访问分类页面出现 404,通常是伪静态规则未刷新。

  • 解决:进入 WordPress 后台 > 设置 > 固定链接,点击“保存更改”。这会强制 WordPress 重新生成 .htaccess 文件或 Nginx 规则。

2. 与页面(Page)链接冲突

如果你的网站有一个“页面”的别名(Slug)和某个“分类”的名称完全相同(例如都有一个叫 news 的页面和分类),去除 /category/ 后可能会导致冲突。

  • WordPress 优先级:通常 WordPress 会优先匹配页面。
  • 建议:在规划网站结构时,尽量确保分类目录 slug 和页面 slug 不重复。

3. Nginx 服务器需要特殊配置吗?

上述代码方法主要适用于 Apache 环境(通过 .htaccess)。如果你使用的是 Nginx(国内云服务器如腾讯云、阿里云常用),上述 PHP 代码方法依然有效,因为它是通过 WordPress 内部的 Rewrite API 实现的。
但为了性能,建议在 Nginx 配置文件中优化伪静态规则。不过对于大多数用户,方法一(插件) 和 方法二(PHP 代码) 在 Nginx 下也能正常工作,因为请求最终还是会进入 PHP 解析。

4. 对 SEO 真的有好处吗?

  • URL 更短:更符合用户体验,易于记忆和分享。
  • 权重集中:减少了目录层级,理论上能让分类关键词的权重更集中。
  • 结构化数据:更清晰的 URL 结构有助于搜索引擎理解网站架构。
  • 结论:虽然 Google 表示 URL 长短不是直接排名因素,但在竞争激烈的“主机优惠”和“建站教程”领域,每一个细节优化都至关重要。

原创文章,作者:主机酷,如若转载,请注明出处:https://zhuji.cool/jiaocheng/132.html

(0)
上一篇 2026年3月1日 下午8:09
下一篇 2天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注