نرمال سازی URL
بسمه تعالی
URL normalization
URL normalization نباید با URL canonicalization اشتباه گرفته شود.
ممکن است چندین آدرس دارای خروجی یکسان باشد. بنابراین برای جلوگیری از جمع آوری اطلاعات یکسان از چندین URL از URL normalization استفاده می کنیم.
اما URL canonicalization برای جلوگیری از ایجاد مطالب یکسان است. یعنی اگر دو مطلب یکسان نوشته شود ( مثلا در یک سایت) و هر دو مطلب در گوگل index شود، این موضوع برای سئو سایت بسیار مضر است. بنابراین URL canonicalization از ایجاد دومطلب یکسان و ایندکس شدن آن ها جلوگیری می کند.
در واقع canonical link element، اساس html دارد که به وب مسترها کمک میکند تا از ایجاد محتوای تکراری جلوگیری کنند.
مراحل فرایند نرمال سازی آدرس
چندین مدل از normalization کردن هایی که برای هر سایتی باید انجام دهید. در ادامه انواع مختلف نرمال سازی را می توانید مشاهده کنید.
بسمه تعالی
URL normalization
URL normalization
URL normalization نباید با URL canonicalization اشتباه گرفته شود.
ممکن است چندین آدرس دارای خروجی یکسان باشد. بنابراین برای جلوگیری از جمع آوری اطلاعات یکسان از چندین URL از URL normalization استفاده می کنیم.
اما URL canonicalization برای جلوگیری از ایجاد مطالب یکسان است. یعنی اگر دو مطلب یکسان نوشته شود ( مثلا در یک سایت) و هر دو مطلب در گوگل index شود، این موضوع برای سئو سایت بسیار مضر است. بنابراین URL canonicalization از ایجاد دومطلب یکسان و ایندکس شدن آن ها جلوگیری می کند.
در واقع canonical link element، اساس html دارد که به وب مسترها کمک میکند تا از ایجاد محتوای تکراری جلوگیری کنند.
مراحل فرایند نرمال سازی آدرس
چندین مدل از نرمال کردن هایی که برای سئو هر سایتی باید انجام شود.
نرمال سازی با حفظ معنا:
1- Converting the scheme and host to lower case
تبدیل scheme and host به حروف کوچک:
برای مثال :
HTTP://www.Example.com/ → http://www.example.com/
2- Capitalizing letters in escape sequences
حروفی که بلافاصله بعد از علامت درصد (%) می ایند، باید با حروف بزرگ نوشته شوند.(مثال"%3A"))
http://www.example.com/a%c2%b1b → http://www.example.com/a%C2%B1b
3- رمز گشایی کردن بایتهایی که پس از علامت درصد می آیند و رزرو نشده اند.
حروف آلفا (%41–%5A and %61–%7A),
اعداد (%30–%39)
خط ربط (%2D)
بازه زمانی (%2E)
خط کشیدن زیر مطلب (%5F)
علامت مد ((%7E
این علامت ها نباید با URL ساخته شود و زمانی که این علائم در URL پیدا شد. باید با متناظرشان رمزگشایی شوند و آدرس مربوطه نرمال شود.
برای مثال:
http://www.example.com/%7Eusername/ → http://www.example.com/~username/
4- پاک کردن پورت های پیشفرض (Removing the default port)
مانند پورت 80 در HTTP
مثال:
http://www.example.com:80/bar.html → http://www.example.com/bar.html
نرمال سازی با حفظ معانی
1- اضافه کردن / به آخر آدرس (Adding trailing /)
http://www.example.com/alice → http://www.example.com/alice/
اگر آدرس URL به یک مسیر جدید تغییر کند. نشان می دهد که این دو آدرس با هم برابر است.
2- حذف کردن نقطه ها از آدرس URL (dot-segments)
با توجه به الگوریتمی که در RFC 3986 ارائه شده است. می توان قسمت های “..” and “.” را حذف کرد.
برای مثال:
http://www.example.com/../a/b/../c/./d.html → http://www.example.com/a/c/d.html
با این حال ممکن است زمانی که (..) را در (b/..) حذف کنیم، به یک مسیر و آدرس مختلف منجر شود.
البته در موارد نادر بسته به وب سرور ممکن است که در دایرکتوری ریشه (//www.example.com/..) با (//www.example.com/) معادل نباشد
نرمال کردن با عوض کردن سمنتیکها
1- حذف آدرس ایندکس دایرکتوری: (Removing directory index.)
ایندکس دایرکتوریهایی که به صورت پیش فرض وجود دارد را نیاز نیست که در URL استفاده کنیم.
مثال:
http://www.example.com/default.asp → http://www.example.com/
http://www.example.com/a/index.html → http://www.example.com/a/
2- حذف بخش های زائد.( Removing the fragment)
بخش هایی زائد URL که هیچ گاه توسط سرور ها خوانده نمی شود و گاهی می توان آن ها را حذف کرد.
مثال:
http://www.example.com/bar.html#section1 → http://www.example.com/bar.html
با این حال در اپلیکیشن ajax در بخش های مختلف از این مقادیر استفاده می شود.
3- جایگزین کردن نام دامنه به جای IP ( Replacing IP with domain name )
البته باید بررسی شود که نام دامنه با ip نگاشت شده باشد.
برای مثال:
http://208.77.188.166/ → http://www.example.com/
جایگزینی معکوس در این مرحله با توجه به وب سرورهای مجازی به ندرت بی خطر است.
4- اعمال محدودیت بر روی پروتکل ها مانند تبدیل https به http
(Limiting protocols )
لایه های مختلف برنامه های کاربردی را در پروتکل ها محدود می کنیم. برای مثال https را می توان جایگزین کرد توسط http
برای مثال:
https://www.example.com/ → http://www.example.com/
5- حذف کردن اسلش (/) های تکراری (Removing duplicate slashes )
می توان دو اسلش مجاور را در آدرس مسیرها به یک اسلش تبدیل کرد.
برای مثال:
http://www.example.com/foo//bar.html → http://www.example.com/foo/bar.html
6- اضافه کردن و یا حذف کرد "www" به اول دامنه. (Removing or adding “www” as the first domain label.)
برخی از سایت ها با دو دامنه اینترنتی کار می کنند. یکی از آن ها با www اول ادرس و یکی دیگر با حذف www از اول دامنه
برای مثال دو آدرس زیر به یک سایت هدایت می شود.
http://example.com/
http://www.example.com/
بسیاری از وبسایت ها کاربر را از آدرسی که www دارد به آدرسی که www ندارد تغییر مسیر می دهند و یا برعکس
در نرمال سازی ممکن است مشخص شود که از یکی از URL ها به دیگری تغییر مسیر دهد و همه url ها باید به صورت مناسب نرمال سازی شوند. (نمیدونم به جر تغییر مسیر یعنی راه دیگه هم داره که بهتر باشه یانه)
برای مثال:
http://www.example.com/ → http://example.com/
7- مرتب کردن پارارمترهای در خواستی.
برخی از صفحات وبسایت ها از تعدادی از پارامترهای درخواستی در URL استفاده میکنند. در نرمال سازی می توان این پارامترها را بر اساس حروف الفبایی مرتب کرد.( به همراه مقادیرشان) و دوباره URL را بسازد.
برای مثال:
http://www.example.com/display?lang=en&article=fred → http://www.example.com/display?article=fred&lang=en
با این حال، ممکن است برخی از این پارامترها مورد توجه باشند و مهم باشند ( و با این استاندارد تعریف نشوند) و وب سرور اجازه دهد که متغییرهای یکسان چندین بار نمایش داده شوند.
8- حذف کردن متغییرهای استفاده نشده در query (Removing unused query variables)
ممکن است یک صفحه تنها منتظر پارامترهای خاصی که درخواست شده برای نمایش باشد و پارامترهایی که مورد استفاده نیست را می توان حذف کرد.
برای مثال:
http://www.example.com/display?id=123&fakefoo=fakebar → http://www.example.com/display?id=123
نکته: نیاز نیست پارامترهایی را که مقدار ندارند را جزء پارامترهای غیر مفید در نظر بگیریم.
9- حذف کردن پارمترهای پیش فرض query (Removing default query parameters)
متغییرهای پیش فرض در query-string ممکن است عینا ارائه شود و یا نشوند.
http://www.example.com/display?id=&sort=ascending → http://www.example.com/display
10- حذف کردن ؟ زمانی که query خالی است. (Removing the "?" when the query is empty)
زمانی که یک query خالی است. نیاز نیست که از " ؟ " استفاده شود.
برای مثال:
http://www.example.com/display? → http://www.example.com/display
نرمال سازی بر اساس لیست url
1- برخی از قوانین نرمال سازی ممکن است برای وب سایت های خاص با بررسی لیست url های بدست آمده از جست و جوهای قبلی و یا log های وب سرور توسعه پیدا کرده باشد. برای مثال : اگر url :
http://example.com/story?id=xyz
باشد بعد از چندین بار در log ، URL زیر نمایش داده می شود.
http://example.com/story_xyz
می تونیم فرض کنیم که این دو تا url معادل هستند و می تونیم فقط به یکی از این اشکال نرمال کنیم.