Search Engine Optimization (SEO)

Search Engine Optimization (SEO) shouldn't be the most important thing on your website; it is just a 'tool' to help you improve the website!
The first thing you have to do on your website is, of course, have well written (unique) content! If you haven't got anything interesting to say on your site, what will a visitor do? He (she) is going to the next one, somebody else's.

CMS Made Simple provides components (which can be used in combination with Smarty) to create a very accessible and search engine friendly website.

Pretty url

The out-of-the-box url CMSMS will create is like www.website.com/index.php?page=contact
It does the job, but it doesn't look very nice. The so called pretty urls are much nicer and they are also better for your websites SEO ranking!

Visit for more information this page in the Configuration section »

An url containing www, or not...

Preferring: http://www.website.com

Add the lines before the arrow into the standard .htaccess file:

RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /
#
# Link to http://website,com then redirect to http://www.website.com
RewriteCond %{HTTP_HOST} ^website\.com [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]

Or in case your website is in a subfolder /folder use:

RewriteRule ^(.*)$ http://www.website.com/folder/$1 [L,R=301]
Preferring: http://website.com

Add the lines before the arrow into the standard .htaccess file:

RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /
#
# Link to www.website.com then redirect to website.com
RewriteCond %{HTTP_HOST} ^www\.website\.com [NC]              
RewriteRule ^(.*)$ http://website.com/$1 [L,R=301]

Or in case your website is in a subfolder /folder use:

RewriteRule ^(.*)$ http://website.com/folder/$1 [L,R=301]

Also change the websites root in the config.php:

$config['root_url'] = 'http://website.com';

Customized title tag

Add in the top of the head section of your html template:

{content block="custom_title" assign="custom_title" oneline="true" label="Custom Title Text"}

{if $custom_title}
<title>{$custom_title} - {sitename}</title>
{else}
<title>{title} - {sitename}</title>
{/if}

It adds the ability to add a custom title text in the webbrowser, each page will have now a seperate textfield for it.

Meta: description

Add into the head of your html template, right behind the {metadata} tag (or in the metadata box on the 'page defaults' page):

<meta name="description" content="{description}" />

In the options tab of the page editor you can fill in the title or description of every single page at the line 'Description (title attribute)'.

Another more extended example
{description assign=foo}
{if $foo}
<meta name="description" content="{sitename} - {description}" />
{else}
<meta name="description" content="{sitename} - Default description text" />
{/if}

SEO modules

Related articles