正在加载,请稍候…

URL 别名详解:如何创建 SEO 友好的网址

将任何文本即时转换为 URL 友好的别名。学习 SEO 友好 URL 结构的最佳实践,处理重音和特殊字符,生成干净的永久链接路径。

URL 别名详解:如何创建 SEO 友好的网址

什么是 URL 别名?

别名(slug) 是网址中人类可读、URL 友好的部分,用于标识特定页面。“slug”一词源自报纸排版,指代故事在制作过程中的简短名称。

包含别名的示例 URL:https://example.com/blog/how-to-bake-sourdough-bread 其中的别名是:how-to-bake-sourdough-bread

别名出现在博客文章、产品页面、新闻文章、用户个人资料以及任何需要描述性和可分享 URL 的地方。

URL 别名详解:如何创建 SEO 友好的网址 插图

好的别名应具备哪些特征?

一个格式良好的别名:

  • 仅使用小写字母、数字和连字符
  • 没有空格(用连字符代替)
  • 没有特殊字符(移除或音译)
  • 没有连续或结尾的连字符
  • 简洁但具有描述性(理想长度为 30-60 个字符)
  • 包含主要关键词以利于 SEO

别名化算法

将任何文本转换为别名涉及以下步骤:

  1. Unicode 规范化:分解字符(例如 é → e + 组合重音)
  2. 音译:将非 ASCII 字符转换为最接近的 ASCII 等效字符
  3. 小写化:全部转换为小写
  4. 移除特殊字符:仅保留字母、数字和空格
  5. 将空格替换为连字符:连字符是标准单词分隔符
  6. 移除连续连字符:将多个连字符替换为单个
  7. 修剪连字符:移除开头和结尾的连字符

转换示例:

输入:  "The World's Best Café & Restaurant!"
步骤1: "The World's Best Cafe & Restaurant!"  (café → cafe)
步骤3: "the world's best cafe & restaurant!"  (小写)
步骤4: "the worlds best cafe  restaurant"     (移除 ' & !)
步骤5: "the-worlds-best-cafe--restaurant"     (空格变连字符)
步骤6: "the-worlds-best-cafe-restaurant"      (移除双 --)
输出: "the-worlds-best-cafe-restaurant"

特定语言的注意事项

德语(元音变音)

德语元音变音有标准的音译方式:

  • ä → ae
  • ö → oe
  • ü → ue
  • ß → ss

"Schöne Grüße""schoene-gruesse"

法语和西班牙语重音

带重音的字符映射到其基本形式:

  • é, è, ê, ë → e
  • à, â, ä → a
  • ñ → n
  • ç → c

中日韩字符(CJK)

CJK 字符无法音译成有意义的拉丁字母别名。可选方案:

  • 中文使用拼音罗马化
  • 日文使用 romaji
  • 使用页面标题的英文翻译
  • 使用哈希或基于 ID 的别名

URL 别名详解:如何创建 SEO 友好的网址 插图

阿拉伯语、希伯来语、俄语

从右到左的脚本和西里尔字母通常需要特定于区域设置的音译规则。

别名的 SEO 最佳实践

使用关键词

别名是 Google 算法中的排名因素。自然地包含主要关键词:

  • 好:how-to-install-postgresql
  • 避免:post-1234page-2024-01-15

保持简短

较短的 URL 更易于分享和更整洁:

  • 好:/blog/sourdough-bread-recipe
  • 避免:/blog/how-to-make-delicious-homemade-sourdough-bread-step-by-step-guide

使用连字符,而非下划线

Google 将连字符视为单词分隔符,将下划线视为单词连接符:

  • bread-recipe → “bread” 和 “recipe” 是独立的关键词
  • bread_recipe → 被视为单个单词 “bread_recipe”

避免停用词

移除不增加 SEO 价值的常见单词:

  • the, a, an, and, or, but, in, on, at

"how-to-bake-a-delicious-bread" 可以变为 "how-to-bake-delicious-bread"

URL 别名详解:如何创建 SEO 友好的网址 插图

处理重复

从用户生成的内容创建别名时,实现唯一性:

  • my-post → 已存在 → my-post-2 → 存在 → my-post-3
  • 或使用随机后缀:my-post-a7b9

不同框架中的别名

Next.js(动态路由)

文件:pages/blog/[slug].js

export async function getStaticProps({ params }) {
  const post = getPostBySlug(params.slug);
  return { props: { post } };
}

Express.js

app.get('/posts/:slug', (req, res) => {
  const post = db.posts.findBySlug(req.params.slug);
  res.render('post', { post });
});

Django

from django.utils.text import slugify
slug = slugify("Hello World!")  # "hello-world"

使用别名化工具

我们的工具:

  1. 输入任何文本 — 任何语言的标题、名称、短语
  2. 即时别名输出 — 实时查看转换后的别名
  3. 多种选项 — 配置分隔符、大小写、停用词移除
  4. Unicode 处理 — 正确处理重音和特殊字符的音译
  5. 复制别名 — 一键复制,立即使用

用于为博客文章、产品名称、分类页面以及任何需要人类可读且 SEO 友好的 URL 生成一致的别名。