چند متد الحاقی SEO
اهمیت: عادی نوع: ارائه ایده و پیشنهاد شماره نگارش: 1
سلام.
من هم چند متد الحاقی داشتم که مرتبط با SEO اند، البته حتما قابل رشد هست ...


public class SEO
{
    private const char TitleCharSeparator = '-';
    //-------------------------------------------------
    public static string GetTitle(params string[] crumbs)
    {
        var maxLenghtTitle = 60;

        var title = "";

        try
        {

            foreach (var crumb in crumbs)
            {
                title += string.Format(" {0} {1}", TitleCharSeparator, crumb);
            }
            title = title.Substring(3);
        }
        catch
        {

        }

        title = title.Substring(0, title.Length <= maxLenghtTitle ? title.Length : maxLenghtTitle).Trim(); 

        return title;
    }
    //-------------------------------------------------
    public static string GenerateMetaTag(this string pageTitle, string pageDescription)
    {
        var maxLenghtTitle = 60;
        var maxLenghtDescription = 170;

        pageTitle = pageTitle.Substring(0, pageTitle.Length <= maxLenghtTitle ? pageTitle.Length : maxLenghtTitle).Trim();
        pageDescription = pageDescription.Substring(0, pageDescription.Length <= maxLenghtDescription ? pageDescription.Length : maxLenghtDescription).Trim();


        var meta = "";

        try
        {
            meta += string.Format("<title>{0}</title>\n", pageTitle);
            meta += string.Format("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n");
            meta += string.Format("<meta charset=\"utf-8\"/>\n");
            meta += string.Format("<meta name=\"description\" content=\"{0}\"/>\n", pageDescription);
            meta += string.Format("<meta name=\"robots\" content=\"{0}\" />\n", "follow");
            meta += string.Format("<link rel=\"shortcut icon\" href=\"{0}\"/>\n", "~/cdn/images/ui/favicon.ico");
        }
        catch
        {

        }

        return meta;
    }
    //-------------------------------------------------
    public static string GenerateSlug(this string title)
    {
        var maxLenghtSlug = 45;

        string str = title.RemoveAccent().ToLower();        
str = Regex.Replace(str, @"[^a-z0-9-\u0600-\u06FF]", "-"); str = Regex.Replace(str, @"\s+", "-").Trim(); str = Regex.Replace(str, @"-+", "-"); str = str.Substring(0, str.Length <= maxLenghtSlug ? str.Length : maxLenghtSlug).Trim();

  return str; } //------------------------------------------------- private static string RemoveAccent(this string txt) { var bytes = Encoding.GetEncoding("UTF-8").GetBytes(txt); return Encoding.UTF8.GetString(bytes); } //------------------------------------------------- }


  • #
    ‫۱۰ سال و ۱۲ ماه قبل، دوشنبه ۲۲ مهر ۱۳۹۲، ساعت ۱۲:۳۹
    متد GenerateSlug حروف فارسی رو حذف می‌کنه. بازه زبان فارسی رو در متد ToSeoUrl می‌تونید مشاهده کنید.
    • #
      ‫۱۰ سال و ۱۲ ماه قبل، دوشنبه ۲۲ مهر ۱۳۹۲، ساعت ۱۳:۲۸
      اصلاح شد.
      با تشکر از شما و شهروز جعفری
  • #
    ‫۱۰ سال و ۸ ماه قبل، پنجشنبه ۲۶ دی ۱۳۹۲، ساعت ۲۲:۱۷
    سلام؛ در مورد seo سایت 
    زمانی که سایتی داریم شبیه همین سایت هر مقاله ای که ثبت میشود اطلاعات از database شده و در view ای به نام post نمایش داده میشود . حالا تکلیف Title صفحه و metatag‌ها چی میشود .keyword-description 
  • #
    ‫۱۰ سال و ۸ ماه قبل، جمعه ۲۷ دی ۱۳۹۲، ساعت ۰۲:۲۴
    این کد هم به مجموعه تون اضافه کنید  
            public static string ToSeoUrl(this string url)
            {
                // make the url lowercase
                string encodedUrl = (url ?? "").ToLower();
    
                // replace & with and
                encodedUrl = Regex.Replace(encodedUrl, @"\&+", "and");
    
                // remove characters
                encodedUrl = encodedUrl.Replace("'", "");
    
                // remove invalid characters
                encodedUrl = Regex.Replace(encodedUrl, @"[^a-zآ-ی0-9]", "-");
    
                // remove duplicates
                encodedUrl = Regex.Replace(encodedUrl, @"-+", "-");
    
                // trim leading & trailing characters
                encodedUrl = encodedUrl.Trim('-');
    
                return encodedUrl;
            }