smartfaq
SmartFAQ is developed by The SmartFactory (http://www.smartfactory.ca), a division of InBox Solutions (http://www.inboxsolutions.net)

How can I maximise search engine optimisation?
Requested and Answered by Carnuke on 2005/1/15 19:04:05 (35683 reads)
Search engines can provide you with a way of attracting a great deal of targetted traffic or ensuring your site is found by the audience seeking it. It's no longer good enough to build a site and expect everyone to find it if you have not followed a few simple rules of SEO. Google, Yahoo! and MSN search all follow similar rules that are designed to help the searcher only. Only when you have satisfied those rules will you float majestically to the first page or even number 1. There are NO shortcuts!!! Occasionally a loophole appears that allows spamming of a search engine but only for a few short days, the Google staff know their algorithms better than anyone and will quickly close any loopholes created in an update.

Here's a list of must haves:
1 - Unique content, the more the better
2 - Fresh content, Google likes new content
3 - Many relevant links back to your site
4 - Each page individually optimised for specific words or phrases

I cannot help you on the first 3; content is just about putting the effort in. Put the dog and the kids out, take your codliver oil, and don't stop typing until sunrise! 100 pages is really the lowest you can get away with but aim for 500-1,000.

Backlinks are vital and all 3 engines rank sites with more backlinks much higher. Basically a backlink is a 'vote' for your site by another webmaster which the search engine uses to qualify your page as popular by virtue of number of 'votes' for that page. Best way to get backlinks is to email webmasters and politely ask for a link. There are arguments that recipicol links do not provide any benefit but one way links do, the simple fact is that you really need both and one way links are difficult to get.

Ok, so onto the bones of my article, how to use Xoops to optimise pages on your site! Here is a list (not definitive but comprehensive) of how you need to seed your page with the keywords in order for the Google, Yahoo! or MSN bots to pick them up.

Place your words in:
- Meta Keywords
- Meta Description
- Title of the page but not first word
- In to ensure 100% the phrase is picked up by the most basic BOT
- In plain text on the main body of the page
- H3 or larger heading
- Bold in the 2nd paragraph
- Italic in 2nd or later paragraph
- In the ALT Tag for an image
- In a link text to another site or internal page or both (not applicable in the example)

So, how do you get Xoops to do this, actually it's very simple. The words the page is to be optimised with are usually going to be in the title of the article, e.g. this article is called "Search Engine Optimisation SEO for Google Yahoo and MSN" Xoops conveniently stores this title in the Xoops title code: <{$xoops_pagetitle}>, now all we need to do is strategically place this around the template. It will ensure every page is different and optimised for the words in the title of the article.

Download and make a copy of your themes.html page. This will be in public_html/themes/Your-Theme-Name/theme.html
Do make a copy of the original before you start! Only a fool would ignore this advice. If you make a mistake with just one character you can turn your previously nice tidy code into something that could only otherwise come from the devil's bottom itself.

Ok, now to get those words into the code just do the following:

We are going to change several tags in the HTML and add a couple more:

So change (please note I have removed opening and closing "<" and ">" from the statements so this renders in HTML, you will need to fix the tags:

From:
meta name="keywords" content="<{$xoops_meta_keywords}>" /

To:
meta name="keywords" content="<{$xoops_pagetitle}>, <{$xoops_meta_keywords}>" /


From:
meta name="description" content="<{$xoops_meta_description}>" /

To:
meta name="description" content="<{$xoops_pagetitle}>, <{$xoops_meta_description}>" /


From:
body>



To:
body>
noscripth1><{$xoops_pagetitle}> /h1> /noscript>


From:
img src="<{$xoops_imageurl}>images/logo.gif"

To:
img src="<{$xoops_imageurl}>images/logo.gif" alt="<{$xoops_pagetitle}>"


From:
{$xoops_footer}> &nbsp;|


To:
{$xoops_footer}> &nbsp;|&nbspa href="http://www.your-domain-here.com/" target="_self"> <{$xoops_pagetitle}> /a


Few extras:
Additionally you can add in regions outside content or menu areas <{$xoops_pagetitle}> wrapped in bold and italics tags.

Also worth doing is to create a link using the <{$xoops_pagetitle}> as the HREF title and refer it either to the home page, article index or back to the same page itself. The preferable is the article index because this is likely to have the keywords in a link to the article you are referring from which search engines like.

Reproduced from forum post by 'hoorah' (untested, but fesable)

///////////////////////////////////////////////////////////////////////////

Here is another idea posted by Cubiq on the forms

Per page meta tags with no hacks
For good search engine ranking is vital to be able to change meta tags on a per page basis.
In Xoops it is possible to change meta-tags and page title with few lines of smarty code in "theme.html", without php coding.

All we need is to check the first 4 characters of the smarty variable $xoops_pagetitle.
$xoops_pagetitle holds the current page title that may change depending on the module you are using (eg: News module 1.0 puts just the module name in $xoops_pagetile, but News 1.2 fills the same variable with module name, news topic and title). But what all modules do is placing the module name as first thing.

All we need to do is to modify few lines inside the "head" tag in your theme.html.

Look for:

<meta name="keywords" content="<{$xoops_meta_keywords}>" />
<
meta name="description" content="<{$xoops_meta_description}>" />


Replace with:

<{if $xoops_pagetitle|truncate:4:""=="NewB" }>
<
meta name="description" content="This is the meta description will appear if you are in the NewBB module." />
<
meta name="keywords" content="meta, keywords, for, newbb, forum" />
<{elseif 
$xoops_pagetitle|truncate:4:""=="News" }>
<
meta name="description" content="Here we are in the news section." />
<
meta name="keywords" content="we, love, news" />
<{else}>
<
meta name="keywords" content="<{$xoops_meta_keywords}>" />
<
meta name="description" content="<{$xoops_meta_description}>" />
<{/if}>


What we do is checking the first 4 characters of $xoops_pagetitle variable and serving different contents depending on the module the user is browsing. This is not a per-page solution, but at least each modules may have their own meta tags. Obviously you may also change the page title for each or some modules adding the "title" tag in each if/elseif clause.

Note: Actually, with the same trick you may serve completly different layouts for each module! But I don't know if this is good for your server performances.

Important!!! Depending on your xoops setup and language the module name may change! Eg: this site's forum is named "Support Forums", so the first 4 characters we need to check would be "Supp" (and it should be case sensitive).

Again untested by the submitter here.

///////////////////////////////////////////////////

And another hack from exploz see HERE

///////////////////////////////////////////////////

There is also a hack to re-write query strings to SE friendly address. See details on the ShortURLs hack here

///////////////////////////////////////////////////

Any feedback on these hacks please?


The comments are owned by the author. We aren't responsible for their content.
  • Quite a regular

 SEO

thanks for the great info. I implemented the first one idea of insserting page_title info throughout the theme.

Question on the second option with the if/else statements, how would you right the code if you didn't want to truncate the search for the page_title (module)?

thanks!

 
  • Home away from home

 Re: SEO

Thanks for the comment. I have picked up another forum thread HERE by ManXP about another hack for SEO he has constructed. H e claims its bringing in considerably more referals, but he ahas not released the details about how it works. As I pointed out to him, any complete SEO procedure needs to address 2 main issues

1- full per page meta tagging
2- re-writing query strings into SE friendly URLs.

Anyone wanting to move beyond the google Search engine and and its downstream se's needs to consider both these issues together.

To date XOOPS users have constructed hacks for both requirements, but someone needs to sort out the ones that really work and put together a package.

 
  • Home away from home

 Re: SEO

Another Page title hack found in the forums.

I'll attempt to summarise all these and update the FAQ soon.

 
  • Quite a regular

 Re: SEO

I haven't had much success with the short URLs hacks, especially using xcgal, which causes images and links to pictures to mess up. i think this may have to do with the fact that my site redirects, but either way. I do ok on other search engines besides google on relevant search terms.

I wanted to let people know that I augmented the if/else statemets to include the <title> tag for the site. now when users go to specific sections within the site, not only do section specific meta tags and descriptions show, but also the overall title is customized. I believe this will also assist with rankings. You can see it here:

http://www.hotdogblog.com

I'll let you know if my rankings increase based on these changes. I've been tracking them.

 
  • Quite a regular

 Re: SEO

Results: movement from 153 to 60 on specific keyword phrase in google. This movement occurred since the time I incorporated page_title throughout and also if/then statements to specify meta keywords and description.

I've made additional SEO changes on this page and will report on that when google crawls next.

 
  • Home away from home

 Re: SEO

Thanks toddherrold for your feedback, slow progress I know, but worthwhile information in the end.

 
  • Quite a regular

 Re: SEO

final update on SEO. I made all of the suggested changes above and then i also made the change to xcgal to include my keyword before thumbs and normal size images. This brought me from 153 to 7!!! in google on my targeted keyword phrase. . . not too shabby!

 
  • Just popping in

 Re: SEO

I have been looking at title URls for XOOPS and so far there isn't much that is all that great. I am developing a site for a customer using Oscommerce and they have a mod called Ultimate SEO URLs and the guy who developed it did a great job http://www.oscommerce.com/community/contributions,2823 After looking through his script and what he did, I don't see why there isn't a hack yet for XOOPS like this. Basically he is storing the titles in cache and the database and calling it up to the URL. I am not a big scripter.... OH I wish I had the ability. However I am deep into SEO. If XOOPS could do a URL with titles and have every page for Title meta tags and Meta Descriptions it would put them far above any competitor on the market....it's all about marketing anyway.
I would pay for a title URL script in a heart beat

 
  • Home away from home

 Re: SEO

>>gojoe_gojoe
Is a heart beat valid currency here :LOL: I wish ...

However, did you see the link in the FAQ to Exploz name hack

>>Toddherrold
Thanks for your update... Could you detail here exactly which hacks/ you used?? There are a few listed and it would be good to focus on ones that work.

Thanks

 
  • Quite a regular

 Re: SEO

I too would like to see SEO URL Optimization in future version of XOOPS core. It should be the standard operation of the CMS, not something you have to add on later and tweak for each module you use.

In terms of the hacks I did on my site which greatly increased my ranking in Google:

1. if/else statements to specify title, keyword, and description tags on specific sections

Quote:

<{if $xoops_pagetitle|truncate:6:""=="type 6 characters of module name" }>
<title><{$xoops_sitename}> - type unique title here </title>
<meta name="description" content="type unique description here" />
<meta name="keywords" content="type unique keywords here"/>
<{elseif $xoops_pagetitle|truncate:5:""=="type 5 characters of next module name" }>
<title><{$xoops_sitename}> - type unique title here and/or use <{$xoops_pagetitle}></title>
<meta name="description" content="type unique description here" />
<meta name="keywords" content="type unique keywords here" />

. . . (repeat pattern as necessary/desired). . .

<{else}>
<title><{$xoops_sitename}> - <{$xoops_pagetitle}></title>
<meta name="keywords" content="<{$xoops_pagetitle}>, <{$xoops_meta_keywords}>" />
<meta name="description" content="<{$xoops_pagetitle}>, <{$xoops_meta_description}>" />
<{/if}>


2. Immediately after <body> tag:
Quote:
<noscript><h1><{$xoops_pagetitle}> </h1></noscript>


3. Immediately after footer code (<div id="footer"><{$xoops_footer}>), repeat similar if/else statement scenario:
Quote:

<{if $xoops_pagetitle|truncate:6:""=="type 6 characters of module/section name" }>
<a href="http://www.yoursite.com/etc." target="_self">type unique page title and section here</a>
<{elseif $xoops_pagetitle|truncate:5:""=="type 5 characters of next module/section name" }>
<a href="http://www.yoursite.com/etc." target="_self">type next unique page title and section name and/or use <{$xoops_pagetitle}></a>

. . . and so on . . .

<{else}>
<a href="http://www.yoursite.com/" target="_self">type your site title and/or use <{$xoops_pagetitle}></a>
<{/if}>


4. Because I use xcgal, I also added my primary site keyword as a prefix to the Thumbs and Normal images on the preferences page of the xcgal admin panel. this is best to do prior to launching and adding content. if you make this change after a lot of pictures are on the site, as I did, then you will have to go back and manually change the names of the thumb and normal picture files in the albums of xcgal to correspond with the change. This is simple to do with ftp but can be laborious if you have a lot of images. It is well worth doing, though, as this bumped me from about 100 to 7 in Google by doing so.

That's it so far. Hope it helps.

 
  • Just popping in

 Re: SEO

How to use this hack for the pages i made manualy? After blocks i added some links manually and inclded them in my XOOPS heme. And in those pages this hack not works.

It is as :

<?php
include("/home/httpd/vhosts/mysite.com/httpdocs/mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");
?>

my content here

<?php
include(XOOPS_ROOT_PATH."/footer.php");
?>

And it shows the title as -- and the metas are still as i defined in Admin > General Settings ?

 
  • Not too shy to talk

 Re: SEO

Could anyone please explain the if/else code?

I can understand what it does, but what does the truncate:4 (

truncate:4:""=="NewB"
) mean?

Where else do I declare "truncate"?

Where does the number "4" refer to?

How do I give each module a number? Do I simply pick it up from the top of my head..?

Thanks!

Aharon

 
  • XOOPS is my life!

 Re: SEO

Truncate is a function, and doesnt need defining.

4 = the first 4 characters

 
  • Not too shy to talk

 Re: SEO

Quote:

toddherrold wrote:
I too would like to see SEO URL Optimization in future version of XOOPS core. It should be the standard operation of the CMS, not something you have to add on later and tweak for each module you use.

why isn't it already?
Have used hours of hours to learn as much as possible about SEO, but still don't know enough to make XOOPS as SEO-friendly as possible without these guides and tips.

mmmh .. I'm in love with XOOPS

 
  • Friend of XOOPS

 Re: SEO and page tags

The XBS MetaTags answers at least the dynamic tagging requirement of this thread. URL shortening is covered elsewhere I believe.

See HERE for download

 
  • Just popping in

 Re: SEO and page tags

This is a great tutorial. Thank you.

From my own experience, I do not recommens the use of "noscript> h1><{$xoops_pagetitle}> /h1> /noscript>".

For now it is OK, but in future, you might be penalised for this.

Also, including title in URL will increase the rank verry much. Does any of you know how to do that?