SEO برای وب سایت های ASP.NET: ارائه محتوا
Loading...
SEO

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

SEO چیست ؟

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

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

سری کامل این مقالات شامل

  • محتوا (این مقاله)
  • آدرس ها – چگونه آدرس های خود را برای جستجو بهینه کنیم.
  • فهرست گذاری – مکانیسمی که کمک می کند مطمئن شویم قسمت های درستی از سایت ما توسط موتورهای جستجو یافت می شوند.

کیفیت محتوا

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

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

عنوان و Metatagها

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

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

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

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

<%@ Page Title="About my site" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="WebFormsSEO.About" %>

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

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

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

SEO

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

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

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"

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

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

<title>@ViewBag.Title - My ASP.NET Application</title>

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

@{
    ViewBag.Title = "Home Page";
}

توضیحات متا

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

<meta name="description" content="This is where the description goes" />

SEO

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

SEO

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

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

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

public partial class About : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MetaDescription = "A page that describes what we are about";
    }
}

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

<meta name="description" content="@ViewBag.Description">

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

ViewBag.Description = article.Description != null ? article.Description : article.Introduction;

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

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

protected void Page_Load(object sender, EventArgs e)
{
    MetaKeywords = "spam, spam, spam";
}

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

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

SEO

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

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

Microdata

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

<article itemscope itemtype="http://schema.org/TechArticle">

سپس، با توجه به itemtype از صفت هایی استفاده می کنید تا ویژگی های مرتبط با آیتم را توصیف نمایید. درمورد مقاله های فنی، این آیتم شامل articleBody، auther، genre و... می باشد. گوگل ویژگی های موردنیاز آیتم های خاص را برای نشانه گذاری جهت معتبر بودن را مشخص می کند. درمورد یک مقاله، گوگل به یک headline، datepublished و image دارد. ویژگی های منحصر به فرد با استفاده از itemrop مشخص می شوند.

<h1 itemprop="headline">
    @Model.Article.Headline
</h1>

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

<meta itemprop="bestRating" content="5" />
<meta itemprop="worstRating" content="1" />

JSON-LD

JSON-LD کوتاه شده عبارت Javascript Object Notation Linked Data هم در تگ های اسکریپت و هم در فایل جداگانه .js تعریف می شود. برخلاف صفت های Microdata به توسعه دهندگان این امکان را می دهد که متا دیتای مربوط به محتوای خود را در یک جا فراهم نمایند. در زیر شیوه ای که یک مقاله با سیستم امتیازدهی در Razor view ظاهر می شود، می بینیم:

<script type="application/ld+json">
    "@@context": "http://schema.org",
    "@@type": "TechArticle",
    "headline": "@Model.Article.Headline",
    "image": [
    "image1.jpg"
    ],
    "datePublished": "@Model.Article.DateCreated.ToString("T"),
    "description": "@Model.Article.Description",
    "articleBody": "@Model.Article.Maintext",
    "aggregateRating": {
        "@@type": "AggregateRating",
        "ratingValue": "@Model.ArticleRating.AverageRating",
        "reviewCount": "@Model.ArticleRating.TotalRaters"
    }
</script>

 

صفات context و type با یک علامت @ قبلشان می آیند، اما در Razor view، از اینکه چرا این علامت دو تاست میگذریم. ما در فایل aspx وب فرم تنها به یک علامت @ نیاز داریم.

<script type="application/ld+json">
    "@context": "http://schema.org",
    "@type": "TechArticle",
    "headline": "<%: Model.Article.Headline %>"
    ...

خلاصه

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

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



avatar فاطمه زکایی

فاطمه زکایی هستم. فارغ التحصیل کارشناسی مهندسی نرم افزار، مدت سه سال هست که در زمینه توسعه اپلیکیشن های تحت وب و اندروید و همچنین تولید محتوای تخصصی برنامه نویسی تحت وب و اندروید در مجموعه mspsoft در خدمت شما هستم.

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


محبوب ترين ويدئو هاي انلاين
دوره برنامه نویسی فروشگاه اینترنتی
  • تعداد اعضا 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...