ASP.NET做SEO:制作架构清晰和更新及时的网站地图

网站地图的作用是让搜索引擎尽快的,更多的收录网站的各个网页。

这里我们首先要明白一个基本的原理,搜索引擎的爬行方式。整个互联网就像一张纵横交错的“网”:网的各个节点就是各个网页,而各个网页之间通过url相互连接。蜘蛛可以从一个网页出发,通过该网页上的url,爬到另一个网页;再通过另一个网页上的url,再爬到更多的网页……,以此类推。但如果是一个新发布的网站,可能就没有其他url指向它,那么它就永远不会被“爬到”(收录)。为了解决这个问题,新站可以自己主动向搜索引擎提交url,申请蜘蛛前来抓取(Google申请网址:),但申请时一般只会提交一个主页的url。

为了让所有的url(尤其是动态生成的)都能被蜘蛛快捷便利的检索到,我们就需要提供一个全面完整、架构清晰和更新及时的网站地图。

和处理重复内容的robots.txt文件,我们通过.ashx文件来生成一个基于sitemaps.org的xml格式的网站地图。网站地图生成之后,我们就可以向Google等搜索引擎提交。大量的文章证实,提交网站地图将极大的提高网站的收录速度和深度。其他几乎所有的SEO方法,都有可能效果难以证实、失效甚至带来副作用,但提交网站地图除外!

Linq to XML为我们带来了近乎完美的操作体验。


<%@ WebHandler Language="C#" Class="website" %>

using System;
using System.Web;
using System.Xml;
using System.Xml.Linq;
using System.Linq;

public class website : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "text/xml";

        //文件的声明信息,第第三个参数standalone的值yes 表示这个 XML 文档是自包含的(self-contained)而不依赖于外部所定义的一个 DTD. 
        XDeclaration declaration = new XDeclaration("1.0", "UTF-8", "yes");
        context.Response.Write(declaration);
        
        //XML文件的命名空间
        XNamespace ns = "http://www.google.com/schemas/sitemap/0.84";
        XElement siteMap = new XElement(ns + "urlset");

        string fixedUrl = "http://www.freeflying.com/article";
        string wholeUrl = string.Empty;
        
        //循环取出数据,转换成XML节点
        foreach (var item in Articles.GetArticles())
        {
            XElement url = new XElement("url");

            wholeUrl = string.Format("{0}?id={1}&catelog={2}",fixedUrl,item.ID,item.Catelog); 
            XElement loc = new XElement("loc", wholeUrl);
            XElement lastmod = new XElement("lastmod", item.LastMod.AddDays(-23).ToShortDateString());
            XElement changefreq = new XElement("changefreq", item.Frequency);
            XElement priority = new XElement("priority", item.Weight);

            url.Add(loc, lastmod, changefreq, priority);

            siteMap.Add(url);
        }

        
        
        //最后输出整个xml文件
        context.Response.Write(siteMap);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

同样还将使用到xml技术的还有RSS


<%@ WebHandler Language="C#" Class="rss" %>

using System;
using System.Web;
using System.Xml;
using System.Xml.Linq;

public class rss : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/xml";

        context.Response.Write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");

        XElement rssFeed = new XElement("rss", new XAttribute("version","2.0"));

        string fixedUrl = "http://www.freeflying.com/article";
        string wholeUrl = string.Empty;

        XElement channel = new XElement("channel",
            new XElement("title", "freeflying"),
            new XElement("link", fixedUrl),
            new XElement("description","the website for dream flying freely"),
            new XElement("pubDate",DateTime.Now.ToString())
            );
        
        
        foreach (var article in Articles.GetArticles())
        {
            XElement item = new XElement("item");

            XElement title = new XElement("title", article.Title);

            wholeUrl = string.Format("{0}?id={1}&catelog={2}", fixedUrl, article.ID, article.Catelog);
            XElement link = new XElement("link", wholeUrl);

            XElement description = new XElement("description", article.Description);

            XElement pubDate = new XElement("pubDate", article.LastMod.ToString());

            item.Add(title,link,description,pubDate);

            channel.Add(item);
        }

        rssFeed.Add(channel);

        context.Response.Write(rssFeed);

    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
    

}

模拟数据

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.UI.MobileControls;
using System.Collections.Generic;

/// <summary>
/// Summary description for Articles
/// </summary>
public class Articles
{
    public Articles()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public static List<Article> GetArticles()
    {
        return new List<Article>(){
            new Article(234, "blog", DateTime.Now.AddDays(-23), Freq.none, 0.8, "asp.net seo", "articles about SEO in asp.net"),
            new Article(267, "blog", DateTime.Now.AddDays(-245), Freq.daily, 0.6, "ado.net pro","about the dataset usage"),
            new Article(653, "news", DateTime.Now.AddDays(-45), Freq.daily, 1,"CLR via C#","notebook about this book")
        };
    }

}

public class Article
{
    public int ID;
    public string Catelog;
    public DateTime LastMod;
    public double Weight;
    public Freq Frequency;
    public string Title;
    public string Description;

    public Article(int id, string catelog, DateTime lastMod, Freq frequency, double weight, string title, string description)
    {
        ID = id;
        Catelog = catelog;
        LastMod = lastMod;
        Weight = weight;
        Frequency = frequency;
        Title = title;
        Description = description;
    }
}

public enum Freq
{
    none = 1,
    daily = 2,
    weekly = 3,
}

作者:自由飞 原文链接

时间: 2025-01-07 16:14:36

ASP.NET做SEO:制作架构清晰和更新及时的网站地图的相关文章

现形势下,企业站到底该如何做seo,如何优化推广

摘要: 百度无休止k站,又三番五次更新算法,如今那些给企业站做seoer已经摸不着北了.采集.购买链接这些都没用了,有时候甚至原创也不起效果,现形势下,企业站到底该如何做seo,如何 百度无休止k站,又三番五次更新算法,如今那些给企业站做seoer已经摸不着北了.采集.购买链接这些都没用了,有时候甚至原创也不起效果,现形势下,企业站到底该如何做seo,如何优化推广呢? 一.网站每天更新,坚持原创就有效果吗? 现在的企业站,稍微一优化都有可能被百度认为过度.曾经有朋友这样问我:"为什么好几天不管的

除开百度 谈谈医疗企业做SEO的种种困境

本人进入医疗行业做SEO已经两个月了,相比之前的SEO工作,最大的感受就是竞争激烈,比如一个"地区性某某病种医院"的词,百度指数几乎查不到,但竞争的网站就有2.30家之多.8月25日,百度算法大更新,对于医疗行业来说无疑又是一次大地震,大部分网站排名消失.不过,庆幸的是,我负责的网站居然有所上升.当然,这并不是因为我SEO工作做的有多好,更多的是有运气的成分在里面.今天,我想讨论的话题,并不是去讨论百度的种种是非,而是从公司做SEO的内部问题说起. 刚刚进入公司,有一个问题就让我有点发

ctphp-做博客小网站,如何做seo优化啊??

问题描述 做博客小网站,如何做seo优化啊?? 博客小网站如何做seo优化?博客系统有什么前景,该怎么做啊!我的博客是www.ctphp.com,大家有空来帮忙回答一下! 解决方案 http://lusongsong.com/reed/334.html

解析新手做SEO容易进入的6个误区

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 很多新手做SEO时,对于一些细节的处理往往不得当,这就使得自己优化付出的努力和网站实际得到的效果不相符,其实SEO是一个技巧性很强的工作,并不是你想做就能做好的,我们在接手之前一定要对它仔细的了解一下,否则自己再努力,百度也不会买自己的账.下面笔者就分享一下自己初期做SEO时比较容易进入的误区,以此给大家点警示作用. 1 忌焦忌燥 SEO是一

SEO培训学院总结的10个提高网站用户体验的方面

谈到提高网站用户体验,很多SEOER都一脸盲然.只知道用户体验对于SEO优化排名有利,但真正讲到如何去提高网站用户体验,脑子却一片空白.其实网站用户体验的提高,可以从很多方面去做,下面就是seo培训学院总结的提高网站用户体验的10个方面,供seoer参考. 1.网站的logo图片.很多seoer都喜欢把自己网站的logo图片做的很大来吸引眼球,这种做法并不恰当.网站的logo图片只是网站名称的标识,不能喧宾夺主.网站logo图片应做到尺寸合适,图像清晰,数据量小. 2.网站应该有在线搜索功能.一

网站架构:建立架构良好的网站地图

作为大型网站的UE从业人员,关注和讨论比较多的是人机交互,是用户的体验,这个用户的概念是人.而其实网站还有另一个访问者是我们需要关注的,那就是搜索引擎的蜘蛛.别以为这不是UE的一部分,蜘蛛既然也是用户,就是我们的服务对象.而且蜘蛛对你的网站体验的好坏大家应该知道结果. 那么我们在做网站架构的时候,应该考虑哪些因素,来提高蜘蛛的体验呢?思域觉得大家有必要考虑以下三个因素: 第一.建立架构良好的网站地图 第二.根据网站的自身特点来对网站的频道或者页面地址进行优化 第三.积极的更新网站的内容 下面思域

网站地图制作会给你带来什么

在网上看到了很多同仁在强调网站地图的重要性,有的以至把它宣扬到了一个很夸大的高度.我觉得有必要就这个话题来谈谈我的见地,首先来解释几个咨询者常问的两个问题. 网站地图是何物? 网站地图首先是一个网页,这个网页主要是描绘它所在网站的架构规划,访问者能够经过它陈列的网站内局部类链接快速找到本人所需求的信息. 为什么有那么多人强调网站地图很重要? 这种做法主要是针对搜索引擎来思索的.基于网站地图的特殊性质,一旦搜索引擎收录了一个网站的网站地图,那么搜索引擎蜘蛛程序就能够经过这个网页更好地来理解整个网站

SEO诊断倡议书:剔除潜在隐患 重塑网站价值

做SEO优化,顺势搜索引擎规则才能突出网站价值.然而在实际的操作中却由于不甚专业而导致问题频频,排名起伏不定或始终难以逾越超越自我的天堑成为了最直观的表现.甚至由于错误的优化方式葬送了网站的一生,却仍旧倏然不知.难道只能坐以待毙吗?SEO诊断挖掘优化纰漏,解决潜在隐患更易重塑网站价值. 一:网站错误优化方案的直接表现形式 为何有些网站可以在短短的一两个月便可以将排名优化到位,而另一些网站却使劲浑身解数都无法一搏高低.这难道仅仅是因为努力不够所致吗?SEO优化要做到的便是四两拨千斤效果,没有好的优

欢迎团队朋友一起创业B2B交易网,需要:ASP,NET/PHP/JSP/SEO/美工/架构人员

问题描述 欢迎团队朋友一起创业B2B交易网,需要:ASP,NET/PHP/JSP/SEO/美工/架构人员希望有工作经验者一起创业,合作方式:技术入股主式..3,系统所需人员大致如下:一)专业Web网站美工要求熟悉DIV+CSS,HTML,XML,尤其要熟悉JavaScript和AJAX.二)软件工程师要求熟悉B/S开发,对面向对象的基本知识要求很熟悉,对常见的设计模式要有一定的认识,譬如,单例模式,工厂模式,门面模式....并能对ADO.NET有深刻的认识.同时要求熟悉数据库的基本知识,能写简单