Posts Tagged ‘SEO’

Making DotNetNuke Logo Link SEO Friendly!

Tuesday, May 12th, 2009

Often SEO geeks will advice you not to use the original Logo skin object due to that it will automatically append Default.aspx behind your domain name. This is very bad as it search engine may treat it as a duplicate page of your home page. Even Search Engine will not ‘punish’ you for that but your PageRank weight will definitely be dispersed into different URL like www.example.com and www.example.com/Default.aspx.

If you are using iFinity, most of the time the url problems will be solved. However, due to some server setting, the default.aspx name cannot be removed. In this case, all you need to do is to make a simple change to the DNN Logo Skin Object.

For DNN 5.1 Above, please scroll down for solution.

To do this, FTP access to /httpdocs/admin/Skins and look for Logo.ascx.vb.

Open it using notepad or other development programs like dreamweaver or visual developer and look for this line: (Should be in line 73 be default)

hypLogo.NavigateUrl = GetPortalDomainName(PortalSettings.PortalAlias.HTTPAlias, Request) & “/” & glbDefaultPage

Now all you need to do is to remove this code:

& glbDefaultPage

Save it and upload it back to the same directly. Walla! You can change your logo much easily from Portal Admin Setting while having a clean SEO friendly URL!

Unfortunately, I still haven’t figured out a simple method to remove the Home.aspx which most of the DNN users are having the same problem. If you know how to make your DNN auto generated home page url convert into your root domain name automatically , please share with us!

Update: This is the solution to remove relundant default.aspx in DotNetNuke 5.1 Logo Skin Object.

To do this, FTP access to /httpdocs/admin/Skins and look for Logo.ascx.vb.

Look for these lines: (Around line 78)

If Host.UseFriendlyUrls Then
hypLogo.NavigateUrl = FriendlyUrl(Nothing, “~/”, PortalSettings)
Else
hypLogo.NavigateUrl = “~/”
End If

Change FriendlyUrl(Nothing, “~/”, PortalSettings) to GetPortalDomainName(PortalSettings.PortalAlias.HTTPAlias, Request) & “/”

Don’t Let Search Engine Spider Follow Your Login and Register Page!

Monday, May 4th, 2009

Crawl prioritization: Search engine robots can’t sign in or register as a member on your forum, so there’s no reason to invite Googlebot to follow "register here" or "sign in" links.
Source: Google Webmaster – About rel="nofollow"

So what is crawl prioritization? According to Google suggestion, a page should keep its amount of links under 100. The reason is pretty simple, avoid spam. Most of the websites put their Login and Register links on top of the page where search engine’s spiders crawl it within the first few lines of the source code. This is a waste of resources for search engine as well as the visitors.

To keep this post short, just to remember this few points:

  1. Less links means your visitors will have a better chance to click on the right and valuable links.
  2. Lots of links will only confuse your visitors. Are you trying to make them accidentally click on ads?
  3. Let spiders focus and index on important links by skipping the pages with no content and repeated links. For example, login, Home and Register page.
  4. Less links means faster indexing and less broken links.
  5. It is pointless to let spiders follow javascript links. The spiders are not smart enough to do any javascript call and action. Just put rel="nofollow" to skip it.
  6. Too many links will confuse the search engine and thus not giving you sitelink on SERP.

If you’re a DotNetNuke users and wish to put rel="nofollow" on your login or register link, the simplest way to do is download login.ascx and user.ascx from /httpdocs/admin/Skins

All you need is to add nofollow tag as following example:

<asp:LinkButton rel="nofollow" ID="cmdRegister" runat="server" cssclass="RegLog" CausesValidation="false"></asp:LinkButton>

That’s all! Happy SEOing.

DotNetNuke Custom Error Page, 404 Page Not Found Redirection

Wednesday, January 21st, 2009
Often, DotNetNuke users never bother about URL issues which actually has a great impact on SEO especially your site is very old which has many old links from other websites and you have too much content to manage.

Even which the URL rewriter module like URL Master from ifinity or PageBlaster Module, they still have their limitation. Here, I’m going to talk about the new trend on URL redirections and general practice and DotNetNuke Method.

If you start from a fresh DNN new Website, you have nothing much to concern on the old url from the past. If you somehow migrate your website from a non-DNN to DNN website, you’re pretty much in worst case scenario. To cut it short, the best url redirection is to use 301 soft redirection. So what is 301 Redirection has to do with DNN?

301 Redirection

How to do 301 Redirection without touching IIS? Simplest way is to use URL Master from ifinity. One thing that you should always remember to do is: COPY DOWN THE OLD URL OF THE PAGE/CONTENT BEFORE YOU DELETE IT! Most of the people deleted the page and forgot which url need to be redirected.

If you need to change the URL of a page as it is shown in search engine results, we recommended that you use a server-side 301 redirect. This is the best way to ensure that users and search engines are directed to the correct page. The 301 status code means that a page has permanently moved to a new location. —From http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=93633

In ASP.NET There is no need touching the IIS to do 301 Redirection, so do in DotNetNuke.

To sum up, just do redirection whenever you delete or move the page location.

*Remember NOT to Redirect all the pages into same page like home page. You will be penalized by Google and having this message: “Too many redirections to single URL.” in the Google Webmaster Tool, and yup! the page will be de-indexed.

404 Page Not Found

So how to make a Custom Error Page for DotNetNuke? If you Google around, people will tell you do to IIS to do redirection. WTF? How am I going to do it in Shared Hosting then? The answer is, with Control Panal like Plesk, simply go to “IIS Setting” or “Custom Error Page” and type in the destination URL of your custom made error page and it is done! But that is stupid way.

By using the method above, all of your applications in the server will be redirected to the page! Since we only need to redirect 404 page in DotNetNuke right? Here comes the web.config file. To explain a bit further, DotNetNuke has it own Error Page in the root of DNN installation already which is ErrorPage.aspx. That file is actually trigger only when your DNN has configuration errors like failed to connect to database, module crashed or DNN installation failed. Most importantly, it has a ugly design that doesn’t match your website!

So, the easiest way (I never thought it is that easy, those ‘experts’ in DotNetNuke’s forum always goes too far for a simple solution) is as above:

How to make Custom 404 Error Page in DotNetNuke?

1. Create a page in your DotNetNuke and choose a skin and container that matches your design. Yup! Just like how you create a normal page as always.

2. Access to your DNN root files via FTP. Find your Web.Config File, download it and open using notepad.

3. Find (Ctrl+F) this line: <customErrors mode=”RemoteOnly” />
and replace it with ”
<customErrors mode=”RemoteOnly” defaultRedirect=”/Whatever-you-like.aspx” />

The mode attribute can be one of the following:
* On – error details are not shown to anybody, even local users. If you specified a custom error page it will be always used.
* Off – everyone will see error details, both local and remote users. If you specified a custom error page it will NOT be used.
* RemoteOnly – local users will see detailed error pages with a stack trace and compilation details, while remote users with be presented with a concise page notifying them that an error occurred. If a custom error page is available, it will be shown to the remote users only.

So, if you’ve already created a page called “/Whatever-you-like.aspx” in first step, then just put it inside “defaultRedirect”. And you may try to typed in wrong URL to visit your website, you should see this: http://www.example.com/Whatever-you-like.aspx?aspxerrorpath=/wrong.aspx

Remember that you can redirect the 404 Error Page to other website also, in this case, just type full url with http:// in inside the “defaultRedirect” attribute.

The best practice is to include your website navigation menu, sitemap and search box for the visitors that fall into this page so that they will not think that your website is broken or else. Therefore, try to match the DotNetNuke 404 Error Page same with your main design theme.

Furthermore, you can add Google Custom Error Widget (You can get your own custom code in Google Webmaster Tool) to show a search box which suggested links for visitors. Sadly, it seems that Internet Explorer is not supporting it if you’re using it in DotNetNuke. To be precise, the widget is still in beta and not quite ready for Dynamic websites.

One last thing, don’t forget to change the CustomError in web.config during DotNetNuke upgrade.

Hope this post solve your doubts and confusion in DotNetNuke Custom 404 Error Page. No need to change IIS setting! (Especially if you’re using Windows server 2008, most of the setting can be done within web.config)

Another SEO trimming tools for lazy people.

Wednesday, January 14th, 2009

Well, found this new SEO trimming website just now. A good start if you don’t have time or knowledge about SEO. Just to remind you, Content always comes first. Don’t waste too much time on the SEO, spend more time on writings.

Here’s the link: http://search.seoeng.com According to them, all outbound link must put into a sentence / paragraph (Wish I found kinda overdone), and must put rel="nofollow" which is kinda pointless to some extend. (If every websites also put nofollow then what is the PR for?

As long as you don’t cheat purposely, there’s no need to make it 100% perfect in the SEO trimming because you might found what you did today is no longer matter tomorrow.

Content is King!

(Just another thing, it is not free one.)