Time2Dine.co.nz is Online Restaurant Booking
 
Elusion Electronic Cigarette
 New Zealand Restaurants Forum
Restaurant Forum | Contact Time2Dine | Book Online & Save | About Time2Dine

Go Back   New Zealand Restaurants & Food Forum > Search Engine Optimisation > SEO vBulletin
Register

Closed Thread
 
LinkBack Thread Tools
  #1  
Old 15th Jun 05, 03:38 AM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Search Engine Optimize vBulletin 3.5/3.6

My goal is to Search Engine Optimize vBulletin 3.5/3.6+ series sites (and older versions) so that the index page, forums, and each thread are top of the search engines for their search terms.

I achieved a good deal of publicity around the web for my Search Engine Optimize vBulletin 3.03 to 3.07 series of hacks. I was then able to lobby vBulletin to include many of the hacks into their base package for vBulletin 3.5. In fact my primary job is now SEO'ing vBulletin sites - applying the principles talked about in this thread.

Please add your discussion of this hack on the following thread:
Search Engine Optimize vBulletin 3.5 discussion.


Overall, I am very impressed with the work that Freddie/vBulletin has done with my SEO vB ideas. But he has left me with a small number of opportunities for enhancement.

URL rewrites

The first step in optimizing vBulletin is getting the site issues sorted - having one url per page of information. vBSEO is a great product (check the link) that does what I consider a 110% job at doing url rewrites, and many other important addons.



Without the url rewrite program, there would be quite a number of hardcode php hacks/plugins needed.

See for yourself on this forum what the url rewrites look like. Apart from the obvious, they remove spare index.php's in url's and correct the url's in lastpost, newpost, previous post, next post to name a few. If you don't purchase the url rewriter, you will need to hack specifically for these issues.

Search Engine Optimize vBulletin 3.5/3.6
setup options & template changes


vBulletin Options

I have personally changed the search function to the mySQL Fulltext search engine and removed the vBulletin indices.

Search Engine Friendly Archive

  • new feature of Display Simple View of Threads Yes/No (based on my recommendation for having the threads accessed directly)
  • Set this to "No" and have the threads accessed directly from the site map.
  • set the archive threads per page to 70 (Google recommends max 100 links per page, so that is 70+ navigation and pagination links)
  • the latest version of vBSEO now has an option to include footer links to each main archive page - another great reason for vBSEO.
General Settings:
Thread/Forum Read Marking Type
- my preference - Database (automatic forum marking)

Forum Display Options - Enable Forum Description - off
This option adds the forum description to each thread and to the forum. However, I prefer to have the forum description in the Navbar for the forum, and a thread description on the threads. I don't like the idea of the forum description being on every thread - doesn't look right

CSS in its own file

This reduces the size of each page, ie download time, makes the content that much higher on the page, and in reducing the size of the page means it takes longer to get to the 100k mark that Google caches. ie This page is over 100k.

Set via the "vBulletin Options", "Style and language settings", option- Store CSS Stylesheets as Files? Yes. You need to follow the instructions given there to change the write permissions on the directory.

I have had problems in getting the css into its own file. If you cant get it to work, try setting the "Store CSS Stylesheets as Files?" as No, then to Yes again. Been a very successful way of getting it working.

Last edited by T2DMan; 30th Sep 06 at 02:38 AM.
  #2  
Old 19th Aug 05, 01:48 PM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Navbar template changes

Welcome Headers Plugin

Install the welcome headers plugin from vbulletin.org. Change the guest message to include your search phrases at the start of the text. And add rel=nofollows to the register and contact us links.

Navbar Template

Changing the navbits to an h1


I have changed the navbits so that the current breadcrumb is in <h1>.

Style Manager/Main CSS - add to the "Additional CSS definitions"

Code:
.h1navbar
  {
    font-family:verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif;  
    margin:0;
    font-size: 14px;
    font-weight: bold;	
    display: inline;
  }

add the following as well for the firstwords:

Code:
.navbar2
  {
	font-family:verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif;  
   margin-bottom:5pt;
   margin-top:5px;
   font-size:8pt;
  }
Edit the navbar template

replace:
Code:
<strong>$navbits[lastelement]</strong>
with:
Code:
<h1 class="h1navbar">$navbits[lastelement]</h1>
and replace:
Code:
<strong>$vboptions[bbtitle]</strong>
with:
Code:
<h1 class="h1navbar">$vboptions[bbtitle]</h1>

Firstwords on the page


Google likes paragraphs at the top of pages that include the search phrases. Often it will use this paragraph for its snippet. Therefore, you need to use the search phrase (ie title) minimum twice within around 157 characters. The firstwords are used in both the main forum index page, thread and forum. For the index page, I use the guest welcome message. In addition, I tweak the guest welcome phrase - Languages and Phrases, Search in phrases - for "If this is your first visit".

On the NAVBAR template

after what was:
Code:
<strong>$vboptions[bbtitle]</strong></div>
 		</if>
now
Code:
<h1 class="h1navbar">$vboptions[bbtitle]</h1></div>
		</if>
add - your version of:

Code:
<if condition="THIS_SCRIPT=='member'">
<div class="navbar2">
The userprofile of $userinfo[username]. Domain.com - a community of ... discussing ...</div>
<else />
<if condition="THIS_SCRIPT=='index' and $show['guest']">
	<!-- guest welcome message -->
<div class="navbar2">
<phrase 1="faq.php?$session[sessionurl]" 2="register.php?$session[sessionurl]" 3="$vboptions[bbtitle]" 4="sendmessage.php$session[sessionurl]">$vbphrase[welcome_guest]</phrase>
	<!-- / guest welcome message -->
  
<else />

<if condition="THIS_SCRIPT=='poll'">
<div class="navbar2">The poll results for <b>$threadinfo[title]</b>.</div>
 
 <else />
 
 <if condition="$thread[title]">
<div class="navbar2">Discuss <b>$thread[title]</b><if condition="$pagenumber>1"> Page $pagenumber</if>. on domain.com sales pitch. <i>$thread[title]</i> - $foruminfo[description].</div>
 
 <else />
 <if condition="$foruminfo[title]">
  <div class="navbar2">
$foruminfo[title] <if condition="$pagenumber>1">Page $pagenumber </if> on domain.com. $foruminfo[description]</div>
 </if></if></if></if></if>
At the end of the navbar template, add
Code:
<if condition="THIS_SCRIPT<>'index'">
$welcomeheaders
</if>
Add a "Register" link on the logon form (top right of page)

It is not always easy to find the register link - I like having a link as part of the logon script box.

after:
Code:
<input type="submit" class="button" value="$vbphrase[log_in]" tabindex="104" title="$vbphrase[enter_username_to_login_or_register]" accesskey="s" />
add
Code:
<if condition="$show['registerbutton']"><span class="smallfont">
<a href="register.php$session[sessionurl_q]" rel="nofollow">$vbphrase[register]</a></span></if>
With the register link now with the login script, you don't have to have it again on the menu.

Delete the following - depending on your preferences
Code:
<if condition="$show['registerbutton']">
			<td class="vbmenu_control"><a href="register.php$session[sessionurl_q]" rel="nofollow">$vbphrase[register]</a></td>
		</if>
If you don't use the calendar, consider adding rel="nofollow" on its link.

Last edited by T2DMan; 29th Jan 07 at 05:04 AM.
  #3  
Old 19th Aug 05, 02:17 PM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default headinclude template changes

vBulletin have followed my advice, and have a great headinclude template.

However, there are several small tweaks:

(note: There is a great description plugin at http://www.vbulletin.org/forum/showthread.php?t=116410 )

headinclude template changes

  • For the threadinfo description, I prefer to add a few more words.
  • The members meta description can only add specific members information via the members template, so we exclude it from here.
  • I like to have a specific meta description for the poll
existing:
Code:
<if condition="$show['threadinfo']">
<meta name="description" content="<if condition="$pagenumber>1"><phrase 1="$pagenumber">$vbphrase[page_x]</phrase>-</if>$threadinfo[title] $foruminfo[title_clean]" />
replace with your version of the following:
Code:
<if condition="THIS_SCRIPT<>member">
<if condition="THIS_SCRIPT=='poll'">
	<meta name="keywords" content="$vbphrase[view_poll_results] $threadinfo[title] $vboptions[keywords] " />
	<meta name="description" content="$vbphrase[view_poll_results] of $threadinfo[title] $foruminfo[title_clean]. " />
	<else />
<if condition="$show['threadinfo']">

<meta name="description" content="$threadinfo[title] - <if condition="$pagenumber>1"><phrase 1="$pagenumber">$vbphrase[page_x]</phrase>-</if> $foruminfo[title_clean]. Domain.com is the place to discuss $threadinfo[title]" />
Add an </if></if> to the existing </if>'s


With the description plugin, the problem is that people don't know seo, and so don't write seo'ed descriptions. So there needs to be a formula that does it for them, and includes their custom description:

I have used the following
[php]<meta name="description" content="'$threadinfo[title]' on $foruminfo[title_clean] forum of domainname. com - <if condition="$pagenumber>1"><phrase 1="$pagenumber">$vbphrase[page_x]</phrase>-</if><if condition="$threadinfo[description]">$threadinfo[description]<else />$threadinfo[title]</if>- <!--VBSEO_RR_1-->"/>
[/php]

Forum Meta Description

Add the forum title onto the start of the forum meta description

Add the red text:
<meta name="description" content="$foruminfo[title_clean]-

- means that you can have repetition of the title key phrase twice in the meta description if you only otherwise have it once in there.

vBSEO - Relevant Phrases and Thread Meta Description

vBSEO has a "relevant phrases" variable that I use for the meta description. I set <!--VBSEO_RR_1_NOHTML--> to equal [first_post_20_words], then add it to the end of the thread meta description. If you use the standard <!--VBSEO_RR_1-->, then adsense targeting will insert an adsense comment into the meta description.

Discussion

Meta Description
- try to repeat the search phrase twice (I use the thread title twice) and keep your description to 150 characters for Google, then expand it to 200 for Yahoo/MSN. With a formula it is a little hard, but you get the idea.

Google Adsense positioning

I like adding the following just under the Navbar as 5 links - so just after all the </if>'s add the following (choose your own colour scheme:
[PHP]<script type="text/javascript">google_ad_client = "pub-xxxxxxxxxxx";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al_s";
google_ad_channel ="xxxxxxxx";
google_color_border = "F5F5FF";
google_color_link = "cc0000";
google_color_url = "0033CC";
google_color_bg = "F5F5FF";
google_color_text = "6F6F6F";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
[/PHP]

I also like the idea of adding an adsense section either at the last post of the page, or as the second post. When people look at the "last post" they see the adsense at the bottom, or if they are browsing via the search engines, they read the first post, then see the ad.

Second post position: - add to the end of the postbit template - pick your own colours
[PHP]<if condition="$post[postcount] % $vboptions[maxposts] == 1">
$spacer_open
<div style="padding:0px 0px $stylevar[cellpadding]px 0px">

<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
<td class="thead" align="left">Sponsored Links
</tr>
<tr>
<td class="alt1" align="center">
<script type="text/javascript">google_ad_client = "pub-xxxxxxxxxx";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_channel ="xxxxxxxxx";
google_color_border = "003366";
google_color_bg = "F5F5FF";
google_color_link = "003366";
google_color_url = "003366";
google_color_text = "000000";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

</td>
</tr>
</table>

</div>
$spacer_close
</if>[/PHP]

Last edited by T2DMan; 29th Jan 07 at 05:53 AM.
  #4  
Old 19th Aug 05, 02:24 PM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Different text for different forums and threads

If you want multiple phrases, you can either use child templates, or use conditionals

You can put a conditional so that you can also have a non restaurant forum/thread like this one, and not have restaurant related terms in the meta data.

Code:
showthread template
   after <head>
   add
   <if condition="$foruminfo[forumid]<7">
   your meta data information, or navbar firstwords text
   <else />
   your alternate meta data information or navbar firstwords text
</if>
or conditionals for threads:

<if condition="$threadinfo[threadid]==3976">
your meta data information, or navbar firstwords text
<else />
your alternate meta data information or navbar firstwords text
</if>
  #5  
Old 19th Aug 05, 04:30 PM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Spider Identification / Footer

Spider Identification

There is an up-to-date list of spiders on the official vBulletin forum.

Download the spiders xml file and copy it to your includes/xml directory. vBulletin will read the file and include it in its spider identification for the who is online facility.

Footer Archive Links - get the Google PR to your threads

As many arguments as there are for and against accumulation of Google PR, the underlying principle remains - have the least number of clicks to pages holding your content.

So I personally have numbered links to each of the main archive/sitemap pages added to the footer template. Why numbered links? The objective is to get Google PR to the pages, not to have those archive pages ranking in their own right. Therefore, having the links numbered uses the least amount of page space possible.

vBSEO has now built this feature into its package. It also has an option where the links are only shown to guests.

Last edited by T2DMan; 24th Oct 06 at 12:20 AM.
  #6  
Old 19th Aug 05, 06:45 PM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Keyword Density on the Forums

It is a bit of a mission getting the forumdisplay's high on the search engines. One of the issues is keyword density. The phrase has only been in the title/metas/firstwords. With the listings of all the threads, there needs to be more mention of the main search phrase of the forum.

So, I have now added the forum title just underneath each thread as listed on the page. It does wonders for keyword density, and even though it is being repeated, it is always next to unique words, so no duplicate content issues.

Mention of the forum is only made when people are not logged in.

threadbit template -

after
Code:
<span style=&quot;cursor:pointer&quot; onclick=&quot;window.open('member.php?$session[sessionurl]u=$thread[postuserid]')&quot;>$thread[postusername]
             </if>
add (the if statement can be used if you don't want to show the forum title when people are logged in)
Code:
<if condition=&quot;!$show['member']&quot;> - $foruminfo[title]</if>

Last edited by T2DMan; 13th Mar 08 at 02:15 PM.
  #7  
Old 19th Aug 05, 06:56 PM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Pollresults/Showthread templates - change title

No biggie, but I prefer to have the forum mentioned on the title of the poll.

So update mention of the title in the pollresults template to the following:

Code:
<title>$threadinfo[title] - $foruminfo[title_clean] - $vbphrase[view_poll_results]</title>
and the same for the showthread template:

Code:
<title>$thread[title]-$foruminfo[title_clean]<if condition="$pagenumber>1"> - <phrase 1="$pagenumber">$vbphrase[page_x]</phrase></if>-$vboptions[bbtitle]</title>

Last edited by T2DMan; 11th Feb 06 at 08:32 AM.
  #8  
Old 20th Aug 05, 03:31 AM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Memberinfo template

Memberinfo template

I like the idea of having the username first, as they should be able to be found in their own right.
replace
Code:
 <title>$vboptions[bbtitle] - $vbphrase[view_profile]: $userinfo[username]</title>
with
Code:
<title>$userinfo[username]-$vboptions[bbtitle]-$vbphrase[view_profile]</title> 
 
<meta name="keywords" content="$userinfo[username]  $vboptions[keywords] " />
<meta name="description" content="$userinfo[username] is a member of domain.com. Join with $userinfo[username] and [insert some sales pitch]." />
Note: The metas cant be put into the headinclude, as the members variables are not available there.

Last edited by T2DMan; 29th Jan 07 at 06:00 AM.
  #9  
Old 20th Aug 05, 03:34 AM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Forumhome template

forumhome template

I have added rel=nofollow to the two calender links - my personal preference

<a rel="nofollow" href="calendar.php


vBAdvanced CMPS

template adv_portal
Code:
<title><if condition="$navbits[lastelement]">$navbits[lastelement]-</if> sitename</title>
Navbar
Code:
<if condition="THIS_SCRIPT=='adv_index'">
<if condition="$navbits[lastelement]">
<div class="navbar2">
 An article about $navbits[lastelement] on domainname, the place to go for your bla bla
</div>
<else />
<div class="navbar2">Welcome to the best domain.</div>
</if>
<else />
Headinclude
Code:
<if condition="THIS_SCRIPT=='adv_index'">
<if condition="$getpage=='home'">
	<meta name="keywords" content="$vboptions[keywords] " />
	<meta name="description" content="domain is the place for bla bla" />
</if>
<else />
Note, this will leave all pages created by the module as blank. You can then go to the vbadvanced "edit pages" and add in the meta descriptions there.

Last edited by T2DMan; 26th Mar 06 at 03:13 AM.
  #10  
Old 8th Sep 05, 01:46 AM
T2DMan's Avatar
Administrator
 
Join Date: Apr 2004
Location: Auckland, New Zealand
Posts: 7,839
T2DMan is on a distinguished road
Default Please discuss this thread on the following page

vBulletin API

Please add your reply and discussion on the following page:

Search Engine Optimize vBulletin 3.5 discussion

Last edited by T2DMan; 22nd Aug 06 at 04:48 AM.
Closed Thread


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Search Engine Optimize vBulletin T2DMan SEO vBulletin 260 23rd Nov 08 09:16 PM
Search Engine Optimize vBulletin 3.5 Discussion T2DMan SEO Discussion 54 12th Apr 07 11:08 AM
Search engine visits vBulletin Linknz SEO vBulletin 2 18th Aug 06 09:21 AM
Contract details for Search Engine Optimize vBulletin T2DMan SEO vBulletin 1 7th May 05 11:23 AM
Search Engine Optimizing vBulletin T2DMan SEO vBulletin 0 28th Oct 04 12:23 PM



Powered by: vBulletin Copyright ©2000 -2012, Jelsoft Enterprises Limited.
Search Engine Friendly URLs by vBSEO 3.2.0
© 2010 Time2Dine