چگونه با جاوااسکریپت آدرس URL بهینه بسازیم
تابع جاوااسکریپتی قدرتمند برای تبدیل متون فارسی و انگلیسی به URL سئو-فرندلی، با حذف کاراکترهای غیرمجاز، پشتیبانی از یونیکد و رعایت اصول فنی سئو.


لیست مطالب
در دنیای توسعه وب و سئو (Search Engine Optimization)، ساختار URL از جمله عواملی است که مستقیماً در رتبهبندی صفحات و تجربه کاربری تأثیرگذار است. URLهایی که ساختار بهینه ندارند، نه تنها توسط موتورهای جستجو به خوبی ایندکس نمیشوند، بلکه ممکن است موجب کاهش نرخ کلیک (CTR) و بروز خطاهای فنی شوند.
در این مقاله، به طراحی و پیادهسازی تابعی در جاوااسکریپت (JavaScript) میپردازیم که به صورت هوشمند ورودیهای فارسی یا انگلیسی را به یک URL تمیز، خوانا و سئو-فرندلی تبدیل میکند.
چرا ساختار URL مهم است؟
ساختار URL مناسب باید ویژگیهای زیر را داشته باشد:
-
خوانا برای انسان و موتور جستجو
-
کوتاه و توصیفی
-
عاری از کاراکترهای غیرمجاز یا مبهم
-
دارای کلمات کلیدی مرتبط با محتوای صفحه
-
قابل اشتراکگذاری و ایمن از نظر امنیتی
موتورهای جستجویی مانند Google هنگام خزش (Crawling) و ایندکس کردن صفحات، به صورت حساس نسبت به ساختار URL واکنش نشان میدهند.
چالشهای ساخت URL با متون فارسی
زبان فارسی در مقایسه با انگلیسی پیچیدگیهای بیشتری در پردازش متنی دارد. وجود حروف یونیکد، اعداد فارسی، فاصلهها، و نشانهگذاریهای خاص از جمله مواردی است که هنگام تولید URL باید به آن توجه کرد.
مشخصات یک URL بهینه از نظر سئو
قبل از ورود به کدنویسی، بیایید با ویژگیهای URL سئو-فرندلی آشنا شویم:
✅ بایدها:
-
استفاده از
-
بهجای فاصله -
استفاده از حروف کوچک (lowercase)
-
حذف کاراکترهای ویژه و ناامن
-
پشتیبانی از زبان اصلی محتوا (مثل فارسی یا انگلیسی)
-
حذف علائم نگارشی یا کاراکترهای غیرمجاز مانند
@
,?
,&
,%
,#
❌ نبایدها:
-
استفاده از فاصله مستقیم (space)
-
استفاده از کاراکترهای رمزگذاریشده (مانند
%20
) -
داشتن URLهای خیلی طولانی و غیرقابل فهم
-
استفاده از حروف بزرگ و ترکیبهای بیمعنی
طراحی تابع: تبدیل ورودی به URL سئو-فرندلی
در ادامه، کدی در جاوااسکریپت معرفی میکنیم که به طور خودکار یک رشتهی متنی را به URL مناسب برای استفاده در وبسایتها و CMSها تبدیل میکند:
// -------------------------------------------------------------------
// Programmer : Ebrahim Shafiei (EbraSha)
// Email : [email protected]
// -------------------------------------------------------------------
// Converts any input string (Persian or English) to an SEO-friendly URL slug
function generateSEOUrl(input) {
return input
// Trim whitespace from both ends
.trim()
// Convert to lowercase
.toLowerCase()
// Replace Persian digits with English digits
.replace(/[۰-۹]/g, d => "۰۱۲۳۴۵۶۷۸۹".indexOf(d))
// Replace all whitespace (including tabs, line breaks) with dash
.replace(/\s+/g, "-")
// Remove invalid URL characters
.replace(/[^\u0600-\u06FFa-z0-9\-]/g, "")
// Replace multiple consecutive dashes with a single dash
.replace(/\-+/g, "-")
// Remove starting or ending dashes
.replace(/^\-+|\-+$/g, "");
}
تحلیل خطبهخط کد
1. .trim()
تمام فاصلههای ابتدا و انتهای ورودی را حذف میکند.
2. .toLowerCase()
همهی حروف را به کوچک تبدیل میکند تا URL ثبات داشته باشد.
3. .replace(/[۰-۹]/g, ...)
اعداد فارسی را به معادل انگلیسیشان تبدیل میکند.
4. .replace(/\s+/g, "-")
تمام انواع فاصله (Space، Tab، Newline) را به -
تبدیل میکند.
5. .replace(/[^\u0600-\u06FFa-z0-9\-]/g, "")
تمام کاراکترهای غیرمجاز مانند @
, &
, %
, #
و ... را حذف میکند و فقط حروف فارسی، انگلیسی، اعداد و -
را نگه میدارد.
6. .replace(/\-+/g, "-")
اگر چند -
پشت سر هم باشند، به یکی تبدیل میکند.
7. .replace(/^\-+|\-+$/g, "")
تمام -
های ابتدای یا انتهای رشته را حذف میکند.
مثالهای واقعی از خروجی تابع
عبارت " آموزش ساخت URL سئو فرندلی با جاوااسکریپت! " به این خروجی تبدیل می شود : آموزش-ساخت-url-سئو-فرندلی-با-جاوااسکریپت
عبارت " Clean & Safe URL Generator @2025 " به این خروجی تبدیل می شود : clean-safe-url-generator-2025
عبارت "تست /// کاراکترهای خطرناک ؟ و فاصلهها! " به این خروجی تبدیل می شود : تست-کاراکترهای-خطرناک-و-فاصلهها
تابع generateSEOUrl
به گونهای طراحی شده که بدون نیاز به کتابخانه خارجی، به شما امکان میدهد هر ورودی فارسی یا انگلیسی را به یک slug مناسب برای URL تبدیل کنید. این تبدیل نه تنها به بهینهسازی موتور جستجو کمک میکند، بلکه باعث افزایش خوانایی، اشتراکگذاری و امنیت URLهای شما نیز خواهد شد.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)