سئو برای وب سایت های ASP.NET : راهکارهای مربوط به URL
Loading...
سئو

این مقاله دومین مقاله از سری مقاله هایی است که به بهینه سازی ( سئو ) وب سایت های ASP.NET برای موتورهای جستجو می پردازد. هر مقاله در این سری روی یک موضوع خاص تمرکز کرده و نگاهی به ویژگی ها و ابزارهای موجود در ASP.NET برای توسعه دهندگان می اندازد تا جستجوی سایت ها را بهتر و درنتیجه رتبه و کلیک های سایت از طریق نتایج جستجو را بهبود ببخشد. این مقاله به برخی از راهکارهای مربوط به URL می پردازد تا آن ها را برای موتورهای جستجو کاربرپسندتر نماید.

سری کامل مقاله ها شامل

می باشد.

Uniform Resource Locator

سئو

URL (یا Uniform Resource Locator) برای هر صفحه معینی آدرس را مشخص می کند که این صفحه کجا قرار گرفته است و مکانیسم (پروتکل) به وسیله آن قابل بازیابی است. برای صفحات وب، پروتکل ها در بسیاری از موارد http یا https خواهند بود. معمولا این پروتکل با نام دامنه و سپس یک شناسه یکتا از برخی توضیحات ادامه می یابد. به طور ایده آل، URL باید محتوا را توصیف کرده و شامل کلمات کلیدی باشد که در عنوان صفحه، توضیحات و محتوا نیز ارائه شده اند.

به عنوان مثال به آدرس زیر برای این مقاله توجه نمایید:

https://www.mspsoft.com/p=1450

این آدرس هیچ سرنخی باز محتوای منابع برای کاربر فراهم نکرده و به هیچ وجه توصیفی نیست. همچنین هیچ کمکی به موتور جستجو هم نمی کند که این صفحه در اینترنت در کجا قرار گرفته است و اعتماد بیشتر در سه منبع دیگر اطلاعات برای موتورهای جستجو قرار گرفته است: عنوان، توضیحات و محتوا. این روزها از دید سئو URL ها بسیار بهتر هستند.

https://www.mspsoft.com/1396/01/01/seo-asp-net-content/

آدرس صفحه باید طوری باشد که هر کسی با خواندن آن پی به محتوای مقاله ببرد.

SEO و URL های کاربرپسند

طرح آدرس قبلی برای این مقاله از ورژن های قدیمی تر وب فرم ها گرفته شده بود که براساس مطابقت آدرس ها با نام و مسیر فیزیکی فایل ها بود. هر مقدار داینامیکی، مانند شناسه هر مقاله ای که باید نمایش داده شود، به صورت پارامترهای query string ارسال می شدند. حال ارسال عنوان مقاله به عنوان پارامتر query string ممکن شده است. با این حال، توصیه موتورهای جستجو این است که تا جایی که ممکن است از query string اجتناب کرده و در جایی که اجتناب از آن ها ممکن نیست، تعداد آن ها کم و مقدارشان کوتاه باشد.

زمانی که داده داینامیک در ASP.NET 3.5 معرفی شد، یک سیستم مسیریابی جدید نیز با آن معرفی شد که توسعه دهندگان را قادر می ساخت الگوهای URL دلخواه را به فایل های فیزیکی نگاشت نمایند. این سازگاری برای استفاده در فریمورک MVC به وجود آمد که همزمان با آن ها معرفی شده بود – اگرچه درمورد MVC، آدرس ها به action method های کنترل ها نگاشت می شوند.

URLهای کاربرپسند و مسیریابی

وب فرم ها هنوز در پایه نگاشت URLها به فایل های فیزیکی کار می کنند، اما همچنین شامل یک سیستم جدید برای تولید و کار با آدرس های کاربرپسند با نام “Friendly URLs” نیز می شوند. این براساس همان نمونه سیستم مسیریابی پیش فرض که به عنوان بخشی از فریمورک صفحات وب Razor ارائه شد، می باشد. تنظیمات پیش فرض یک URL را به فایل فیزیکی بدون پسوند فایل که در آدرس است، منطبق می نماید و همچنین برای بخش های اختیاری داده هایی که در URL به عنوان قسمت های اضافی ارسال می شوند نیز این امکان را فراهم می کند. به عبارت دیگر، یک سیستم قراردادی (convention-based) است که به برخی یا کل مسیر مجازی منطبق با URL برای وب فرم (فایل aspx) متکی است. Friendly URL به صورت Nuget package (Microsoft.AspNet.FriendlyUrls) در دسترس هستند و به صورت پیش فرض نصب شده اند و به عنوان یک بخش استانداردی از قالب پروژه های وب فرم فعال شده اند.

یک مثال مشخص از URL، http://localhost:1234/article/101/seo-for-asp-net-web-sites-urls، کد زیر نشان می دهد که چگونه با استفاده از پکیج Friendly URLs در article.aspx مقادیر از بخش های مختلف گرفته شده و سپس به کنترل های لیترال (رشته ای) با نام ID و Headline تخصیص داده می شوند و چگونه یک هایپرلینک با استفاده از کنترل HyperLink تولید می شود.

protected void Page_Load(object sender, EventArgs e)
{
    var segments = Request.GetFriendlyUrlSegments();
    if (segments.Any())
    {
        ID.Text = "ID: " + segments[0];
        Headline.Text =  "Headline: " + segments[1];
        Link.Text = Link.NavigateUrl = FriendlyUrl.Href("~/article", segments[0], segments[1]);
    }
}

متد GetFriendlyUrlSegments یک متد افزونه است که در Microsoft.AspNet.FriendlyUrls قرار گرفته است، بنابراین ما نیاز به دایرکتیو using در بالای فایل نیز داریم و یا باید فضای نام آن را در این محدوده (scope) تعریف کنیم. متد FriendlyUrl.Href helper از طریق مسیر مجازی و مقادیر فراهم شده قسمت ها URLها را تولید می کند و به هر دو property کنترل Hyperlink یعنی Text و NavigateUrl تخصیص داده می شود.

سئو

Friendly URLs یک سیستم بسیار آسانی برای استفاده در سایت های وب فرمی است که طرح URL نسبتا سرراستی در آن ها استفاده شده و تطابق بین URL و نام فایل بدون پسوند قابل قبول باشد. برای موارد دیگر، معمولا مسیریابی (routing) گزینه پیشنهادی است.

مسیریابی (Routing)

برای بهبود سئو سایت بهینه بودن مسیریابی یکی از کلیدی ترین مراحل است

مسیریابی براساس اینکه شما توسعه دهنده سایت وب فرم باشید یا MVC کمی متفاوت کار می کند. اساسا، پایه و اساس یکسانی دارند – شما در زمان بالا آمدن اپلیکیشن URLها را به منابع نگاشت می کنید و درخواست های ارسالی روی نقشه نگاشت (یا جدول مسیر) بررسی می شوند تا ببینند باید به کدام صفحه هدایت شوند. با این حال، در وب سایت وب فرمی همه URLهای ورودی باید به فایل های فیزیکی نگاشت شوند. چرا که هیچ وابستگی احتمالی بین محتوای URL و سیستم فایل روی وب سرور وجود ندارد، هر URL باید پیکربندی شود. این امکان وجود دارد که از هر دو سیستم Friendly URLs و routing در یک سایت به طور همزمان استفاده نماییم، بنابراین این کار پیکربندی را بسیار آسان تر می کند چرا که درواقع اغلب URLها با نام یک فایل بدون پسوند آن مطابقت دارند. کد قسمت زیر کلاس پیش فرض RoutingConfig که در پوشه App_Start در قالب وب فرم ها یافت می شود را نشان می دهد:

public static class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings);
        routes.MapPageRoute("", "test/{id}", "~/mytest.aspx");
    }
}

سه خط اول کد در متد RegisterRoutes سیستم Friendly URLs را فعال می سازد و مشخص می کند که به طور پیش فرض درخواست هایی به عنوان مثال http://domain.com/contact.aspx نتیجه اش کد وضعیت ۳۰۱ Moved Permanently و در مکان http://domain.com/contact (بدون پسوند) خواهد بود.

خط آخر کد از مسیریابی برای نگاشت درخواست هایی برای http://domain.com/test/ttt به mytest.aspx استفاده می شود. ttt می تواند هر مقداری باشد، اما باید برای مسیر ارائه شده باشند تا کار کنند. می توانید بخشی از URL را اختیاری قرار دهید، یا مقدار آن را با استفاده از عبارات منظم به الگوی خاصی محدود نمایید. برای اینکه در این باره بیشتر بدانید می توانید MSDN’s overview of ASP.NET routing را مطالعه نمایید.

Friendly URLs همیشه در رویدادهای ثبت مطابقت مسیر فایل مجازی برای یک فایل .aspx روی سرور برنده می شوند. برای مثال، اگر کسی یک فایل با نام Test.aspx را به فولدر ریشه سایت در مثال بالا اضافه کرده باشد، Friendly URLs به مطابقت مستقیم بین URL و سیستم فایل اهمیت خواهد داد و ثبت مسیریابی هرگز فراخوانی نخواهد شد.

در یک سایت MVC، مسیریابی تنها سیستم برای نگاشت بین URLها و منابع می باشد، چرا که هیچ فایلی برای نگاشت وجود ندارد. برای بیشتر سایت ها، نیازی نیست که شما فراتر از مسیر واحدی که به صورت پیش فرض تعریف شده است، بروید:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

این تعریف مسیر مشخص می کند که قسمت اول URL شامل نام کنترلر، قسمت دوم نام action method و قسمت سوم اختیاری است، اما اگر پر شود، می تواند با یک پارامتری به نام id منطبق شود. مقدار پیش فرض برای بخش کنترلر Home و مقدار پیش فرض بخش action method مقدار Index می باشد.

اگر می خواهید URLها را برای استفاده در href یا صفت src متعلق به تصویر یا مشابه آن در MVC 5 یا نسخه های قبل تر تولید نمایید، چندین متد کمکی برای انتخاب دارید: ActionLink، RouteLink و UrlHelper’s Action و متدهای Route. در MVC همچنین امکان جدید دیگر Anchor TagHelper را نیز در اختیار دارید که action و کنترلر به صورت صفات مخصوص asp- در المنت های HTML مشخص شده اند:

<a asp-action="Index" asp-controller="Home">Back Home</a>

Slugها

Slug عبارتی است که اغلب برای توصیف بخش های قابل خواندن توسط انسان URL استفاده می شود. ما در سایت خود، عنوان مقاله را به عنوان Slug به کار می بریم و از این رو عنوان مقاله را بادقت انتخاب می کنیم تا مطمئن شویم که این مقالات شامل کلمات کلیدی مرتبط هستند. همچنین ما از عنوان مقاله در عنوان صفحه و محتوای تیتر h1 نیز استفاده می نماییم تا کلمات کلیدی به طور یکپارچه در سراسر صفحه یافت شود. ASP.NET froums و Stackoverflow از کلمات سوالات پست شده به عنوان slug استفاده می نمایند. اگرچه، آن ها کلمات جداکننده متفاوتی استفاده می کنند: ASP.NET froums از + بین کلمات استفاده می کند در حالی که Stackoverflow علامت – را برای این کار به کار می برد. گوگل استفاده از – را پیشنهاد می کند.

سئو

سوالی که به طور مکرر پیش می آید این است که چگونه یک slug تولید کنیم که به طور ایمن نقطه گذاری و سایر کاراکترهای رزرو شده را به حساب آورده باشد. افراد در Stackoverflow متدی که برای تولید slug استفاده می کنند، پست کرده اند. ما از الگوریتم های مختلف آن ها که محدودیت ۸۰ کاراکتری دارند، استفاده می کنیم. بسیاری از کارشناسان سئو توصیه می کنند که باید URL ها را با ماکزیمم ۷۵ تا ۸۰ کاراکتر حفظ کنیم چرا که این بیشترین مقدار کاراکتری است که در SERP نمایش داده خواهد شد. با این حال، گوگل به طور خاص تمایل به کوتاه کردن URL برای نمایش کلمات کلیدی برجسته، جایگزین کردن بخش های غیر کلیدی با ادغام دارد. هیچ توصیه ای از سمت گوگل برای تنظیم حداکثر طول URL وجود ندارد، بنابراین به نظر می رسد که آن ها واقعا ناراحت نمی شوند.

URL های معیار

باید فقط یک URL معتبر در هر منبع باشد. این قانون به عنوان URL معیار شناخته می شود. خطر داشتن چندین URL که به یک منبع یکسان اشاره می کنند، این است که رتبه بندی برای هر صفحه در تمام URLهای مختلف کمرنگ می شود. URLهای زیر همگی یکسان به نظر می رسند:

https://www.mspsoft.com/1395/12/23/seo-asp-net-urls ‎

https://www.mspsoft.com/11232/seo-asp-net-urls ‎

https://www.mspsoft.com/1395/12/23/Seo-Asp-Net-Urls/ ‎

درواقع همه این ها در محتوای یکسانی به عنوان نتیجه از دیتابیس واکشی شده و سورس کد مشابهی در صفحه نتیجه خواهند داشت. اما همه این ها از لحاظ سئو لینک های سایت همگی متفاوت هستند – به همین دلیل باید در URLهایی که برای هدایت گری سایت استفاده می کنید، دقت داشته باشید. –

اما با وجود تلاش شما برای مدیریت این مسئله در کدهای خود، راه های دیگری وجود دارد که در آن سئو صفحه شما به عنوان نتیجه اشاره کردن URLهای مختلف به یک منبع یکسان تکه تکه شود. شما نمی توانید جلوی این احتمال که دیگران در زمان لینک دادن از سایت خود، فروم ها یا رسانه های اجتماعی و… به سایت شما URLهای مختلفی از سایت شما ایجاد کنند. به همین دلیل، بهتر این است که از یک المنت link در همه صفحات استفاده نمایید تا به موتورهای جستجو اطلاع دهید که URL معیار برای این صفحه خاص چیست.

<link rel="canonical" href="https://www.mspsoft.com/1395/12/23/seo-asp-net-urls ‎" />

هدایت آدرس های غیر www به آدرس های www

بسیاری از دامنه ها با یک رکورد @ تنظیم شده اند که دامنه آن ها را در خالص ترین حالت (به عنوان مثال domain.com) به آدرس IP وب سرور آن ها نشان می دهد و رکورد CNAME که www.domain.com به رکورد @ اشاره می کند. سپس هر دو domain.com و www.domain.com به عنوان الزاماتی برای سایت به IIS اضافه می شوند. این برای بازدید کننده هایی که آدرس سایت را بدون پیشوند www تایپ می کنند، مفید خواهد بود و تضمین می کند که درخواست به سرور درستی مسیریابی خواهد شد. همانطور که پیش از این گفتیم، این نتایج در دو URL معتبر برای یک محتوای یکسان هستند و در حالی که این مشکل با استفاده از rel=”csnonical” مدیریت می شود، می توانید از هدایت HTTP استفاده نمایید اگر سرور IIS شما URL Rewrite را نصب داشته باشد. حتی نیاز به دسترسی به وب سرور برای تنظیم قانون rewrite نیست. این کار را می توانید در فایل web.config انجام دهید.

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Redirect non-www traffic to www" stopProcessing="true">
        <match url=".*" ignoreCase="true" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^mikesdotnetting.com$" />
        </conditions>
        <action type="Redirect" url="http://www.mikesdotnetting.com/{R:0}" redirectType="Permanent" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

این قانون rewrite هر URL ای را که با الگوی .* مطابقت د اشته باشد، پوشش می دهد که درواقع همه آدرس ها را شامل می شود. قسمت host آدرس را امتحان می کند و اگر با “www” شروع نشده باشد، سرور پاسخ ۳۰۱ – permanently Moved و یک مکان جدید با www در اول آن برمی گرداند.

سئو

خلاصه

در این مقاله به نقش URL ها در بهینه سازی موتورهای جستجو ( سئو ) پرداختیم. نگاهی به اهمیت داشتن آدرس های کاربر و به تبع آن موتور جستجوپسند ( سئو ) و نحوه تولید و کار با آن ها در ASP.NET Web Forms و اپلیکیشن های MVC داشتیم. درنهایت، URLهای معیار توضیح داده شدند.

در مقاله بعدی سئو، نگاهی می اندازیم به اینکه چگونه می توان محتوایی که موتورهای جستجو در سایت شما ایندکس می کنند را مدیریت کرد.

پیشنهاد میکنم آموزش استفاده از MapRouting نیز جهت تولید لینک های بهینه در ASP.NET جهت بهبود سئو را نیز مطالعه کنید



avatar مسعود شریفی پور

از سال 88 که با برنامه نویسی آشنا شدم خیلی علاقه مند بودم یک بستر آموزشی بسازم در فضای وب و به انتشار آموزش های در این زمینه بپردازم.حالا یک تیم داریم و با قدرت رو به جلو حرکت میکنیم.

آخرین مطالب و تخفیفات در کانال تلگرام :) کانال تلگرام ام اس پی سافت
مطالب مرتبط
ديدگاه خود را ارسال کنيد


محبوب ترين ويدئو هاي انلاين
دوره برنامه نویسی فروشگاه اینترنتی
  • تعداد اعضا 80k
  • قيمت دوره۱۰۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره آموزشی سیستم ثبت سفارش آنلاین
  • تعداد اعضا 80k
  • قيمت دوره۵۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره طراحی سیستم مدیریت مشتریان
  • تعداد اعضا 80k
  • قيمت دوره۵۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...