SEO در وب سایت های ASP.NET

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

SEO چیست ؟

این نوشته را به نقل از ویکیپدیا

بهینه‌سازی موتور جستجو (به انگلیسی: ‎Search engine optimization ( SEO )‎) که گاهی در فارسی به آن سئو گفته می‌شود عملیاتی است که برای بهبود بازدید یک وب‌گاه یا یک صفحهٔ وب در صفحه نتایج موتورهای جستجو که می‌تواند طبیعی و یا الگوریتمی باشد، می‌گویند. SEO این یکی از روش‌های بازاریابی موتور جستجو است. به صورت کلی وب‌گاه‌هایی که دارای بالاترین مکان و بیشترین تکرار در صفحهٔ نتایج موتورهای جستجو باشند، بازدیدکنندهٔ بیشتری از طریق موتورهای جستجو به دست می‌آورند.برای وبمسترها یکی از عوامل مهم و حیاتی بدست اوردن کاربران جدید از موتورهای جستجو و بخصوص گوگل می باشد.

کیفیت محتوا

اگر می خواهید رتبه و SEO سایت شما در طولانی مدت بالا باشد، شاید اهمیت کیفیت بالای محتوای اصیل چندان هم اغراق آمیز نباشد. اگر محتوای شما برای کاربران موردنظرتان ارزشمند باشدد، می خواهند که به آن متصل باشند و آن را از طریق رسانه های اجتماعی یا راه های دیگر به اشتراک بگذارند.

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

عنوان و Metatagها

هر صفحه ای باید عنوان داشته باشد. این عنوان در المنت <title> و در قسمت <head> صفحه قرار می گیرد. این عنوان در صفحات نتایج موتورهای جستجو (SERPs) نمایش داده می شود. عنوان باید یکتا، توصیفی و دقیق باشد. عنوان باید شامل کلمات کلیدی باشد که محتوای صفحه را منعکس کند، و باید خواندن آن آسان باشد. قوانین سفت و سختی برای طول عنوان وجود ندارد اما اغلب باید به توصیه ها توجه کرده و عنوانی با کمتر از ۶۰ کاراکتر داشته باشید. این تعداد کاراکتری است که در SEPRs جا داده می شود، اما هر کاراکتر اضافه دیگری به عنوان بخشی از سیستم رتبه بندی پردازش می شود.

مشخص کردن عنوان – Web Form و MVC

اگر با Web Form ها برنامه نویسی می کنید، چندین راه برای قرار دادن عنوان وجود دارد. می توان آن را در قسمت HTML فایل Master page به صورت hard code نوشت، اما با این کار همه صفحات سایت شما همین عنوان یکسان را خواهند داشت.

اگر می خواهید یک عنوان یکتا و توصیفی برای هر صفحه داشته باشید، باید عناوین را در سطح صفحه مشخص نماییم. اگر عنوان استاتیک است، می توان آن را در فایل aspx و در دایرکتیو @Page مشخص نمایید.

 

اگر می خواهید عناوین پویا و داینامیک تعیین کنید، برای مثال اگر از عنوان مقاله های بلاگ یا عنوان وابسته به محتوای سایت شما دارد، می توانید این کار را با نوشتن Page.Title یا this.Title یا فقط Title در code-behind انجام دهید. روشی که برای تعیین عنوان انتخاب می کنیم بسته به منبع داده ای دارد که برای ساخت عنوان از آن استفاده می کنیم.

بیشتر اوقات، شما از event handler مختص DataBound یا RowDataBound کنترل ها برای دسترسی به منبع داده کنترل و گرفتن هر مقداری که می خواهیم استفاده می کنیم.

هر روشی را که انتخاب کنید، خوب است بدانید که در نهایت ترتیب اولویت است که مشخص می کند کدام مقدار نمایش داده شود.

هر چیزی که در HTML صفحه Master به صورت hard code نوشته شود، همیشه نمایش داده خواهد شد. سایت های قالب وب فرم استاندارد از این ویژگی hard coding به صورت ” – My ASP.NET Application” به عنوان بخشی از مقدار <title> استفاده می کنند، اما همچنین این امکان را فراهم می کنند که بخش اول <title> به صورت داینامیک باشد.

زمانی که یک فایل aspx جدید به برنامه اضافه می کنیم، مقدار پیش فرض Title در قسمت دایرکتیو @ Page یک رشته خالی است:

 

اگر آن را به همین شکل بگذارید تا جایی دیگر بخواهید مقدار Page.Title را مشخص کنید، مشکلی نیست و به صورت یک رشته خالی باقی خواهد ماند. مگر اینکه بخواهید مقداری را در دایرکتیو @ Page قرار دهید، باید مقدار وارد شده برای Title را پاک کنید. فرض کنیم که شما این مقدار را به صورت رشته خالی رها نکنید، هر چیزی که شما در دایرکتیو @ Page قرار دهید، با مقداری که در code-behind صفحه جایگزین می شود. و در عوض مقدار code-behind صفحه هم توسط مقدار نوشته شده در code-behind صفحه Master تحت تاثیر قرار می گیرد.

همچنین قالب MVC یک سری نشانه گذاری پیش فرض برای مقدار المنت <title> در طراحی صفحه دارد:

 

مقدار ViewBag.Title را می توان با مشخص کردن در کنترلر مدیریت کرد. همچنین می توان در صفحه محتوا نیز آن را مشخص نمود.

 

توضیحات متا

توضیحات متا فرصت شما برای تبلیغ صفحه خود در SERPs هستند. این توضیحات با استفاده از تگ <meta> مشخص می شوند.

 

SEO

این تگ باید برای فراهم کردن توضیحی از محتوای صفحه استفاده شود و شامل کلمات کلیدی مرتبط با محتوا باشد و به زبان طبیعی نوشته شود نه به صورت لیستی از کلمات کلیدی. ممکن است توضیحات متا توسط اغلب موتورهای جستجو در SERPs استفاده شوند تا جستجوکنندگان بدانند که هر نتیجه ای درباره چیست.

تصویر بالا نشان می دهد که گوگل چگونه از توضیحات متا (قسمت های رنگی) در نتیجه جستجو برای “sending email aspnet mvc” استفاده می کند. گوگل همیشه از این توضیحات استفاده نخواهند کرد و مطمئنا از همه کاراکترها که از ۱۶۰ کاراکتر تجاوز می کند استفاده نخواهد کرد.این مورد در SEO سایت بسیار اهمیت دارد.

اگر گوگل احساس کند که متنی که از خود محتوای صفحه گرفته می شود مناسب تر است، به جای محتوای توضیحات متا از آن استفاده می کند. در این مورد خاص، توضیحات ما از ۱۶۰ کاراکتر تجاوز کرد و تعداد کاراکتری که گوگل برای استفاده انتخاب می کند بسته به تصمیم آن ها محدود می شود که شامل تاریخ مقاله در شروع توضیحات باشد یا خیر.

قبل از معرفی ASP.NET 4 شما از یک ContentPlaceHolder و کلاس HtmlMeta برای تعریف توضیحات متا در سایت های وب فرم استفاده می کردید. بعد از معرفی ASP.NET 4، کلاس Page شامل یک property با نام MetaDescription است که توسعه دهندگان وب فرم را قادر می سازد تا این مقدار را از طریق code-behind مشخص نمایند.

 

توسعه دهندگان MVC می توانند از روش مشابهی برای تعریف عنوان صفحه با استفاده از یک جانگه دار(placeholder) در layout page و ViewBag برای ارسال توضیحات به صورت داینامیک استفاده کنند.

 

در این مورد، ما فیلدی برای پاراگراف مقدمه هر مقاله در دیتابیس و فیلد دیگری برای توضیحات متا داریم. اگر فیلد توضیحات پر نشده باشد، پاراگراف اول محتوا به عنوان توضیحات متا استفاده می شود.

 

کلمات کلیدی متا

این روزها عموما مشخص شده که کلمات کلیدی متا چندان کاربرد ندارند و هیچ هدف سودمندی را دنبال نمی کنند. موتورهای جستجو به طور کلی این کلمات را نادیده می گیرند. با این حال، برخی از برنامه نویسان هنوز دوست دارند که از این کلمات کلیدی استفاده نمایند و ASP.NET 4 در کنار MetaDescription یک property نیز با نام MetaKeywords برای کلاس Page معرفی کرده است.

 

داده های ساختاریافته یا Rich Snippets

گاهی اوقات گوگل تلاش می کند تا برای بهبود ورودی های لیست های SERPs داده هایی را از نتایج جستجو اقتباس کند. تصویر قبلی نشان می دهد که تاریخ مقاله بخشی از توضیحات محسوب می شود. برخی دیگر از نتایج جستجو می تواند شامل داده های ساختاریافته باشد که گوگل به آن “Rich Snippets” اطلاق می کند و همانطور که تصویر زیر نتایج جستجو برای “دستورپخت کیک کریسمس” را نشان می دهد:

علاوه بر توضیحات، نتایج تصویر، امتیاز، زمان موردنیاز برای تهیه و پخت کیک و در نتیجه اول جستجو میزان کالری دستورپخت نیز نشان داده می شود. بی شک مهندسین گوگل به اندازه کافی باهوش هستند تا بتوانند این داده ها را به وسیله پردازش زبان طبیعی (یا هر فیلد alpha-geek دیگری که روی آن کار می کنند) از صفحات وب پردازش نمایند، اما کار آن ها با استفاده از داده های ساختاریافته نوشته شده توسط نویسندگان صفحات وب بسیار آسان تر می شود. داشتن لیست خود می تواند با منجر شدن به تعداد کلیک های بیشتر باعث بهبود شود.

فرهنگ لغت داده های ساختاریافته ای که گوگل و سایر موتورهای جستجو می شناسند در schema.org توصیف شده است. انواع مختلفی از ورودی ها برای قرار دادن چنین چیزهایی به عنوان مقالات فنی، رویدادهای موسیقی، رویه های پزشکی و … ایجاد شده اند. این فرهنگ لغات به یکی از دو روش زیر روی صفحات وب اعمال می شوند: یا به صورت صفت (attribute) های خاص به المنت های HTML؛ یا به عنوان JSON-LD. اگر شما استفاده از صفات را انتخاب کنید، آن ها می توانند استفاده از دو انکدینگ جایگزین Microdata یا RDFa را اعمال نمایند.

Microdata

معمولا، بخش قابل شناسایی یک صفحه به آیتمی اختصاص می یابد که می خواهید آن را نشانه گذاری نمایید. این ممکن است کل یک صفحه یا قسمت هایی از آن باشد. از صفت itemscope برای تعریف محدوده ای که اطلاعات مربوط به آیتم را در خود نگه می دارد، استفاده می کنیم و itemtype برای مشخص کردن نوع واقعی آیتمی که توصیف می کنیم استفاده می شود. مقدار صفت itemtype یک آدرس URL است که به schema مرتبط با آن آیتم اشاره می کند. یک مقاله فنی باید در یک تگ div یا تگ article قرار بگیرد.
صفات context و type با یک علامت @ قبلشان می آیند، اما در Razor view، از اینکه چرا این علامت دو تاست میگذریم. ما در فایل aspx وب فرم تنها به یک علامت @ نیاز داریم.

 

خلاصه

این مقاله SEO به برخی از روش هایی پرداختیم که با این روش ها شما می توانید محتوای سایت ASP.NET خود را برای بهبود بخشیدن و دیده شدن در موتورهای جستجو و به ویژه افزایش نرخ کلیک ها در نتایج جستجو، ارائه دهید. این مقاله اهمیت عنوان، توضیحات متا تگ ها و نحوه استفاده از آن ها را بررسی نمود. سپس به بهبود لیست های جستجو از طریق استفاده از داده های ساختاریافته و بررسی دو روشی که می توان از این داده ها استفاده نمود، پرداختیم.

مقاله بعدی در این سری آموزشی SEO ، به اهمیت آدرس ها و بهینه سازی آن ها جهت دست یافتن به بهترین نتیجه در SEO خواهیم پرداخت.

SEO در وب سایت های ASP.NET
5 (100%) 1 رای

(335 نوشته)

C# Programmer , Web Design And Developer , MVC , ASP.NET

فکر شما چیست؟

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *

حاصل جمع اعداد را وارد کنید : *