Tải bản đầy đủ (.doc) (8 trang)

SEO For ASP.NET Web Site pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (134.18 KB, 8 trang )

SEO For ASP.NET Web Site
Every ASP.NET developer (or at least most of us) wants a lot of visitors to their web sites.
Google, Yahoo and other search engines can send plenty of visits especially if your web site is
shown on first page of their search results. And vice versa, if your web site is shown on thirtieth
page or not indexed you will not see any benefit of search engines. Because everyone wants to
win first page there is strong competition and you need to take care of every factor that affects
how much your page will be friendly to search engines.
There is more than a 100 important factors used from search engines to rank page. Most of them
are just speculations, since Google, Yahoo and others don't want to reveal its ranking algorithm.
Also, their algorithms are changed very frequently (a hundreds of times yearly) to improve user
experience and provide correct results. Even Google has not capacity to manually change page
ranking if they think that some page should be better or worse ranked. Instead, they try to find
out what mistake in algorithm caused wrong ranking and try to correct it on that way. Because of
that, Search Engine Optimization (SEO) is very dynamic field, but basics and most important
things are still the same.
Create unique title for every page
Every page of web site needs to have its own unique title. Title should be short, descriptive,
meaningful, contains keywords and relevant to content of the page. Do not insert repeated phrase
like company name on the beginning of the title of every page. Let your most relevant
information appears first. Title tag can be edited at design time, but if you have some content
management system you can change it by using Page.Title property with code like this:
[ C# ]
Page.Title = "My unique and keywords rich title";
[ VB.NET ]
Page.Title = "My unique and keywords rich title"
When someone uses Google search, query terms will be showed as bolded text in search results.
Because of this, you need to place targeted keywords in title to make it noticeable and therefore
get more clicks to your site. Of course, to get a visit your title must please human visitors too, not
just search engines. You can't just list keywords in title without any meaning. Instead of that, let
your title tags be a precise descriptions of every single page and you'll be fine with both search
engines and people. Don't use too long titles because search engines will truncate it anyway.


Keep title under 65 characters long.
Use description and keywords meta tags
Description and keywords meta tags were very important for search engine optimization in past,
but they are widely abused. Today meta keywords tag is practically useless, but meta description
tag is still important. Although it would not improve your position in search results it is
beneficial indirectly. Google often uses meta description tag when display search results below
title as short description of your page. So, if you have catchy meta description tag you can get
more visits even if you are not first in search results. Set unique page description for every page.
Like page title, you can change meta tags in markup or dynamically in server side code:
[ C# ]
protected void Page_Init(object sender, EventArgs e)
{
// Add meta description tag
HtmlMeta metaDescription = new HtmlMeta();
metaDescription.Name = "Description";
metaDescription.Content = "Short, unique and keywords rich page description.";
Page.Header.Controls.Add(metaDescription);

// Add meta keywords tag
HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "Keywords";
metaKeywords.Content = "selected,page,keywords";
Page.Header.Controls.Add(metaKeywords);
}
[ VB.NET ]
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Me.Init
' Add meta description tag
Dim metaDescription As HtmlMeta = New HtmlMeta()
metaDescription.Name = "Description"

metaDescription.Content = "Short, unique and keywords rich page description."
Page.Header.Controls.Add(metaDescription)

' Add meta keywords tag
Dim metaKeywords As HtmlMeta = New HtmlMeta()
metaKeywords.Name = "Keywords"
metaKeywords.Content = "selected,page,keywords"
Page.Header.Controls.Add(metaKeywords)
End Sub
This approach will also work if you use master pages.
Using of H1 tag
H1 tag is very important, but in the same time very easy way to improve your position
in search results. It is best if h1 tag has the same content like title tag. Just place same short,
relevant, keyword rich phrase to both h1 and title tags and this single effort will significantly
elevate your ranking. Like any other HTML tag, you can change h1 tag directly in markup, or
dynamically if you add runat="server" and set its id, like in code bellow:
<h1 runat="server" id="MyPageHeader" ></h1>
Now you can manipulate h1 tag with ASP.NET server side code:
[ C# ]
MyPageHeader.InnerText = "This Is My Catchy Header";
[ VB.NET ]
MyPageHeader.InnerText = "This Is My Catchy Header"
There are also important <h2> and <h3> tags that you can use for sub headers and <strong> tag
to make some keywords more significant in text.
ASP.NET SEO Url Redirecting
Sometimes you need to move a page to other url or move complete web site to other domain.
Common example is, if you upgrade web site created in classic ASP to ASP.NET you need to
change file extensions from .asp to .aspx. If some visitor comes to your old link from search
engine or directly, he or she should be redirected to new url. There are two possible redirections:
1. Temporary redirection, returns message "302 Found". This redirection should be used only

when necessary, very rarely for search engines optimization.
2. Permanent redirection, message returned is "301 Moved Permanently". This redirection tells
spiders that page or site is moved to another url. It is used in SEO to transfer link popularity to
new address.
Response.Redirect will return 302 redirection so it can't be used for search engine optimization
in ASP.NET. To redirect permanently, use code like this:
[ C# ]
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "/your-new-url/");
Response.End();
[ VB.NET ]
Response.Status = "301 Moved Permanently"
Response.AddHeader("Location", "/your-new-url/")
Response.End()
This code is sufficient if you need to move single page. But, if you want to move complete web
site it is best to do it in Internet Information Server (IIS). Go to old site properties and select
Home Directory tab. Choose "A redirection to a URL" and write new url in text box bellow,
like shown on image:
Don't forget to check "A permanent redirection for this resource" check box to get 301
redirection. Avoid using of postback
Some programmers place Button or LinkButton control on web form and use Response.Redirect
to navigate to another page on control's click event. That is a problem because ASP.NET
controls uses JavaScript to make post backs. Since web spiders can't work with JavaScript a lot
of pages can't be indexed and will not appear in search results. To make web pages visible to
search engines try to avoid using of postback. Instead of Button or LinkButton controls, place
simple <a> tag. Text on links should be descriptive, avoid meaningless links like "Read more",
"Click here" etc.
If you must use a postback, then provide alternative way of navigation, with simple plain
hyperlinks. This can be implemented in form of site map. Site map could be a page that contains
listed links to all pages on web site. When web spider visits site map page, it will find all other

pages easily.
SEO Friendly URLs: Url Rewriting
Web spiders don't like query strings parameters in urls. If you are getting some data from
database, it is common to use query string like ShowProduct.aspx?id=23445. Although this url
looks logical from programmer's perspective it is not user friendly and is usually not ranked well
on search engines. You need to use urls that contain keywords separated by hyphens. So, instead
of /ShowProduct.aspx?id?=23445 should be something like /My-Product-Name.aspx. Url that
contains keywords is easier to read by human visitors and is better ranked on search engines.
Also, site with SEO friendly urls is more secure since you can hide id or even file extension.
Url rewriting in ASP.NET can be implemented on many levels, directly on page, in Global.asax,
by using a custom HTTP module or HTTP handler, on level of web server etc.
Url rewriting on page is a hard coding way, but it can be useful in some scenarios. In page with
friendly url, use Server.Transfer method to call real page. So, in this case you must actually have
a frendly url page as a file and place just one line of code in it to transfer execution:
Server.Transfer("/UnfriendlyPage.aspx?id=423874")
Url rewriting in Global.asax uses RewritePath method in Application_BeginRequest event.
Implementation could look like this:
[ C# ]
void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
if (app.Request.Url.AbsolutePath.StartsWith(" /> {
app.Context.RewritePath("/UnfriendlyPage.aspx?id=423874");
}
}
[ VB.NET ]
Protected Sub Application_BeginRequest(ByVal sender As Object, ByVal e As
System.EventArgs)
Dim app As HttpApplication = sender
If (app.Request.Url.AbsolutePath.StartsWith(" Then

app.Context.RewritePath("/UnfriendlyPage.aspx?id=423874")
End If
End Sub
If you are interested in url rewriting with HTTP module or HTTP handler check URL Rewriting
in ASP.NET tutorial where both methods are explained.
To get fast results you can try This is free open source URL rewriter for
ASP.NET written in C#, easy to use and used in many large and small sites, including this web
site.
ViewState and SEO in ASP.NET
There is a speculation that search engines read only limited number of bytes from each page
(first 100K of web page). ViewState value is a string presented as hidden field on client side. If
you have large ViewState on the beginning of the ASP.NET page, then it is possible to web
spiders avoid your real content. That could be harmful for your ranking in search results. The
simple solution is to turn off ViewState if you don't need it, or at least not use it for every single
control. If you really need a ViewState there is new option in web.config to place it to the bottom
of the page:
<pages renderAllHiddenFieldsAtTopOfForm="false" />
Following the same idea, you should remove any unnecessary HTML, JavaScript code and CSS
styles to get smaller page. You still can and should use JavaScript and CSS where needed, but
call them from external file. This will also reduce repetitive work.
However, this talk about limited loading of pages is just a speculation, personally I don't believe
it is completely true. But, search engines for sure try to please their users and users like fast web
sites. Because of that pages that load faster will be ranked better. Loading time is one of the
ranking factors. By removing or reducing ViewState, deleting needless HTML tags and HTML
comments, moving JavaScript and CSS to external file and leaving on page useful content only
you will improve your ranking both directly and indirectly. Final thing could be validating your
HTML output on .
SEO Friendly paging with GridView, Repeater and other
data controls
Default paging in ASP.NET data controls uses postback and javascript. Search engine spiders

checks the links and usually avoid JavaScript so using default pager is not SEO friendly option.
The solution could be to use custom paging for GridView, Repeater and other data controls, or to
get more options and make this task easy for you use our SEO Pager Control, specialized for
search engine optimization and dealing with large tables. More about paging in ASP.NET data
controls you can find in Data Paging In ASP.NET tutorial.
New SEO features in ASP.NET 4.0
Direct manipulation of meta description and keywords tags
ASP.NET 4.0 has new options to change meta description and meta keywords tags. Of course,
you already can do this in any older version in ASP.NET by adding runat="server" to meta
description or meta keyword tag and then calling it from server side code, ASP.NET 4.0 way is
simpler and faster, introduces new MetaDescription and MetaKeywords properties of Page
object, used like in code bellow:
[ C# ]
Page.MetaDescription = "This is my great page";
Page.MetaKeywords = "great,page";
[ VB.NET ]
Page.MetaDescription = "This is my great page"
Page.MetaKeywords = "great,page"
Response.RedirectPermanent for 301 permanent redirection
ASP.NET 4.0 includes another interesting SEO feature. Response.Redirect method returns 302
temporary redirection. To use 301 redirection with earlier versions of ASP.NET you should use a
code shown in ASP.NET SEO Url Redirecting section. With ASP.NET 4.0 this job is simpler:
[ C# ]
Response.RedirectPermanent("New-Page.aspx", true);
[ VB.NET ]
Response.RedirectPermanent("New-Page.aspx", true)
Dealing with www. subdomain
This is common problem. Since www. is just a subdomain, search engines could see duplicate
content and split the reputation between www.example.com/Your-Page.aspx and
example.com/Your-Page.aspx. It is much better to have only one link on first page than two links

on thirtieth page. Allow only one link to the same content. If you discover that visitors could
navigate to same content through few different urls, use 301 redirect to focus all ranking to one
url.
AJAX and Search Engine Optimization
Ajax uses JavaScript and search engines don't like JavaScript. So, your Ajax site have big
potential problem. It is very possible that your content will not be indexed. You can disable
JavaScript in your browser and try to access all content on site. If you can't see it without
JavaScript, spiders will not see it too.
Possible solutions are to provide site map with links to all content, or add additional way of
navigation that uses static links, or to make your content initially loaded without JavaScript.
SEO Sessions problems
By default, ASP.NET uses cookies to store session. Since web spiders usually don't accept
cookies it is possible that some of your content be invisible if session variables are required to
show it. You can change settings and store session in url (you can do this in web.config by
changing the cookieless parameter of sessionState to true), but that is even worse because link
popularity will be divided to many different urls with duplicate content. There is an option to set
cookieless value to AutoDetect. This means that ASP.NET will use cookies if browser supports
it so for SEO issues it is not solving a problem.
The solution could be to set cookieless attribute to false, and provide a way to spiders to find all
content through simple links.
Conclusion
As you see, it is very easy to make ASP.NET web site that is invisible for search engines :). Just
use Button or LinkButton controls for navigation and nobody will find your site through a
Google search. In opposite, to receive maximum of traffic from search engines you need to
follow their rules and be more search engines friendly. I hope I explained well some basics of
search engine optimization (SEO) for ASP.NET web site. If you are interested to find more
about this subject, especially if you build commercial web sites, check Professional Search
Engine Optimization with ASP.NET: A Developer's Guide to SEO (Wrox Professional Guides)
book. There are many other books that covers search engine optimization but this is focused to
specific ASP.NET SEO issues.

Finally, all this technical tips and tricks are irrelevant if you haven't quality content inside of
your body tag. If your content is great, people will link to your page naturally. Incoming links
from relevant sites are the most important factor for ranking. I hope you found some interesting
ideas in this tutorial. Happy coding!

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×