Part IV – XML Sitemaps – Advanced SEO Tips for Your Exponent CMS Website
As a follow up to Part III of my advanced SEO tips for Exponent CMS webmasters that discussed installing webmaster tools, I'll now discuss the importance of XML Sitemaps and how to create and configure one for your Exponent site.
What are XML Sitemaps?
XML Sitemaps for your website that notifies the search engines about each web pages on your site, how important each page is, as well as how often the site is updated.
Creating a XML Sitemap also provides a way for the search engines to discover pages on your website that they might not have found through the normal site crawling process.
A complement to the Robots.txt file, after they are generated, XML Sitemaps are uploaded to Google and Bing Webmaster tools to help you manage the indexation of your web pages.
Creating & Uploading a XML Sitemap
Generating an XML sitemap is very easy by going to www.xml-sitemaps.com.
This website gives step by step instructions on how to create your XML Sitemap. You'll first need to enter your website URL and then select the frequency that your site is changed.
Next you can tell the search engines precisely when the last time your site was updated:
The Priority tag for your XML sitemap assigns a value to your URLs between 0.0 and 1.0, where 0.0 identifies the lowest priority URLs on your site and 1.0 identifies the highest priority URLs. The default priority of a page is 0.5.
Once you've filled out the necessary data, you can then run your XML Sitemap by clicking the “Start” Button.
As you can see in the image above, you can run a XML Sitemap for a website up to 500 pages for free. If your website has more than 500 pages that need to be indexed, you'll have to find an alternative sitemap generator, or pay for the advanced version.
Once you click “Start” the Sitemap crawler will start to build your XML Sitemap:
Once the Sitemap generator is finished running, you can download it and push it up to the public_html directory of your Exponent CMS website via FTP or cPanel/WHM.
You can verify that you've properly uploaded your XML sitemap by going to www.yourwebsite.com/sitemap.xml It should look something like this:
Configuring Your XML Sitemap in Webmaster Tools
So now that you've created and uploaded your new XML Sitemap to your web server, you now must go to Webmaster tools for both Google and Bing and submit your XML Sitemap URL.
Google Webmaster Tools
In the Google Webmaster Tools, you can access the Sitemap configuration page from the dashboard, or on the left hand menu under Optimization by clicking the “Sitemaps” link.
Once you've landed on the Sitemaps configuration page, you can submit a new sitemap by clicking the red “Add/Test Sitemap” button on the right hand side.
There, you'll simply enter “sitemap.xml” in the rest of the URL field and click “Submit Sitemap”
You'll receive a “Sitemap Submitted” message to let you know that you've successfully completed the process:
Bing Webmaster Tools
Similarly to the Google Webmaster Tools, you can submit a XML Sitemap on the Bing Webmaster Tools dashboard under the “Sitemaps” section:
To submit the sitemap, simply click “Submit a Sitemap” and fill out your XML Sitemap URL:
Once you've filled out your URL, click submit and you're done.
You now have successfully notified the search engines about each page on your website. While it does not guarantee every page will be indexed, it does help eliminate URLs not getting picked up through normal crawling.
In Part V of this Advanced SEO Tips series, I'll discuss how to configure and install Google Analytics on your Exponent CMS website.
About the Author
Chris Everett is an organic SEO expert and is the founder of the Captivate Search Marketing search engine marketing firm in Atlanta, GA.
If you'd like to learn more about how to optimize your Exponent CMS website for maximum SEO value, feel free to contact Chris on Google+ or by visiting his website.
Part III – Webmaster Tools – Advanced SEO Tips for Your Exponent CMS Website
If you're the webmaster of an Exponent CMS website that is undergoing a search engine marketing program, there are several metrics you'll need to analyze to measure the performance of your campaign.
Among those basic trends are web page indexation, as well as website traffic and its sources.
In this, the third part of my Advanced SEO Tips for Exponent CMS Websites series, I'll discuss how to verify and install Google & Bing Webmaster Tools. In later posts, I'll discuss how to create and upload XML sitemaps, as well has how to setup and install Google Analytics.
Webmaster Tools
Webmaster tools allow you to manage the indexation of your website, as well as analyze its visibility in the search index. Before you can do this, though, you must first verify ownership of your site with both Google and Bing search engines.
Install Google Webmaster Tools
After logging into your Google Account, you'll want to go to https://www.google.com/webmasters/tools/. To setup your website profile, you'll need to select the red “Add a Site” Button on the right hand side of your screen.
A popup box will then appear, where you'll type in your website's domain name.
You'll next be directed to Verify ownership of your website.
There are multiple ways to verify ownership including inserting a meta tag in the header of your theme file or selecting your DNS provider, but the method I like to use is uploading an html verification file.
Simply download your HTML verification file and then upload that file to your public_html directory through cPanel or FTP.
Once your file is uploaded, go back to Google Webmaster Tools and click the red verify button.
If you've successfully uploaded your verification file, you'll get a Green check mark letting you know you've retained ownership of the site.
Install Bing Webmaster Tools
Similarly to Google, Bing Webmaster Tools can also be verified multiple ways. First you'll go to http://www.bing.com/toolbox/webmaster and either sign in or create a new account.
Once you are logged in you'll see your Bing Webmaster Tools domain dashboard and immediately you'll notice the “Add a Site” box where you can quickly type in your site's domain and then click “Add”
You'll then be directed to a screen where you're given the option to declare whether an XML sitemap has been uploaded to your server:
If you don't have an XML sitemap already on your web server, you can simply click “Add” and move forward through the process. I'll discuss creating and uploading XML sitemaps in Part IV of this advanced SEO tips for Exponent CMS websites.
You can download your “BingSiteAuth.xml” verification file from Bing and then push that file up to public_html through FTP or cPanel/WHM. Once you've uploaded the file, click the “Verify” button to complete the process.
Once you've verified ownership of your website with both Google and Bing Webmaster Tools, you can then remove URLs from the search index, view any crawl errors experienced by search spiders, analyze the overall health of your site, as well as submit XML sitemaps - all of which are essential tasks for properly maintaining a website undergoing an advanced SEO program.
About the Author
This article was written by SEO consultant Chris Everett of Captivate Search Marketing in Atlanta, Georgia.
Chris has worked with the Exponent CMS open source project since 2007.
Feel free to connect with him on Google+ or LinkedIn.
Part II - .HTACCESS - Advanced SEO Tips For Your Exponent CMS Website
In Part II of my Advanced SEO Tips for Exponent CMS websites, I'll discuss how you can utilize your .htaccess file to practice better SEO.
.HTACCESS
Your .htaccess file, which also ships in your Exponent CMS install, is used to override the Apache or PHP configuration files on your web server.
The .htaccess file can be pulled down from your Exponent site's public_html directory much like the robots.txt, which I discussed in Part I of this advanced series file can through FTP or cPanel/WHM. The one catch here is if you're trying to pull it down from cPanel/WHM, you must check the box that allows you to see hidden files (dotfiles) in your directories.
For SEOs who are optimizing Exponent CMS sites, there are two primary modifications that they can make to the file in order to make their Exponent CMS sites more SEO friendly.
Forcing a Preferred Domain URL
The first .htaccess modification you can make to optimize your website for SEO is to force a www. or a non-www. domain URL structure. This prohibits the possibility of two identical pages being indexed by the search engines with a www. and a non-www. version of the same website (the dreaded duplicate content issue!)
In the latest releases of Exponent CMS that support canonical URLs, this isn't such a big deal (so long as you're defining the canonical URL), but in previous versions of Exponent CMS before 2.2.0, you'll want to make sure you put this modification in place.
All you need to do is pull down your .htaccess file, uncomment out the example rule you want to follow, fill in the proper domain name, save, and re-push your file to the live server:
301 Redirects
During a website redesign project, one of the most important items to cross off the go-live check list (for the SEO minded at least) is to ensure you have any 301 redirects in place for URLs that have been indexed by the search engines.
Often times when a website is moved from one CMS platform to another, or undergoes an SEO overhaul, the URLs of each web page are updated.
When this happens, SEOs want to ensure that every URL that's been indexed by the search engines are permanently (301) redirected to their new URLs so the website does not lose any of their current organic rankings, nor deter potential customers who have found the website via organic search and landed on a “Page Not Found” (404 error) because the URL they landed on wasn't properly redirected.
Plotting out 301 Redirects is relatively simple in the .htaccess file. All you need to do is pull it down from your public_html directory and at the bottom of your .htaccess file start adding your 301 Redirect rules, which would look as such:
These two .htaccess modifications are critical for websites undergoing SEO programs, particularly when that site is going through a redesign.
About the Author
This blog post was written by Chris J. Everett, a small business SEO consultant based in Atlanta, Georgia.
Chris has used Exponent CMS extensively over the past 5 years and writes about topics related to the SEO friendliness of the system.
To learn more about Chris, connect with him on Google+.
Advanced SEO Tips For Your Exponent CMS Website (Part I - Robots.txt)
When reading blogs that discuss topics related to SEO, most of the time you'll read about on-site strategies such as keyword optimization, image optimization, cross linking, etc.
Most of these on-site strategies can be easily executed through the administration interface of your Exponent CMS website.
Some of the mission critical items for SEO that you can't execute through the admin interface of your Exponent CMS must be done on the web server through a FTP or cPanel/WHM type interface.
This post is the first in a series of submissions I'll write over the next few days discussing advanced server-side SEO tips for your Exponent CMS website include editing your robots.txt and .htaccess files, as well as pushing webmaster tools verification files and XML sitemaps to your web server.
In this edition, Part I, I'll discuss how modifying the Robots.txt file that resides on your web server can eliminate issues with duplicate content.
Robots.txt
The Robots.txt file on your web server defines crawling parameters for robots that crawl websites all over the Internet. For SEO, the Robots.txt file is a way to allow/disallow search engine robots (such as Googlebot) that index your web pages from crawling specific directories on your website.
If you're working with a new install of Exponent CMS, the Robots.txt file will be included in your installation with a basic set of disallow parameters that will look like this:
Because Exponent CMS is a dynamic platform, there are several modules within the system such as blog/news/portfolio or ecommerce that can pose some SEO headaches revolving around duplicate content.
Some of the most frequent issues that I encounter from Exponent CMS websites in terms of duplicate title tags, content, etc., come from the tagging functionality (blogs in specific) and when login/view cart links are hard coded for users on ecommerce websites.
If a robot can crawl a link to a blog tag or a link to login, this often times causes that URL to be indexed – more often than not with a duplicate Title or Description tag as other dynamic pages on your site. The example below shows an ecommerce Exponent CMS website that has had its login module link indexed. As you can see, the meta description is exactly the same as the homepage meta description:
You can easily prevent this type of SEO issue by disallowing the /loginmodule (or for newer versions of Exponent the /login) or any other troublesome directories within your Robots.txt file.
In the screenshot below, you can see where this Robots.txt file has added more parameters than the initial file that comes with your Exponent CMS install.
Simply pull down this file from public_html through your FTP or cPanel/WHM interface, make these modifications and push that file back up to your web server to ensure you don't experience these easily avoidable SEO headaches.
In Part II of these server-side SEO tips for Exponent CMS sites, I'll discuss how to modify the .htaccess in order to redirect URLs and set a preferred domain URL structure.
About the Author
Chris J. Everett is an SEO expert and the founder of Captivate Search Marketing, a digital marketing firm based in Atlanta, Georgia.
Chris has worked with Exponent CMS in a variety of roles since 2007 and continues to work with the software's developers to further enhance its SEO friendliness.
The 'Wizard' Returns to Exponent
One feature which didn't make the move from Exponent 1.x to 2.x was the 'Wizard'...essentially a sequential set of forms. Well 'ta-daaa', we're planning to have a wizard or paged-form feature in the next release (already in the 'develop' code branch)! This will be a much simpler implementation than available in 1.x, as a 2.x paged form can easily be designed all in one place, instead of having to create separate form pages, etc... This feature will be available in both the forms module/site forms (event registration now uses site forms) and in templates/views.
You may be asking, 'how does a paged form or wizard work?' Well in many of the system forms, we use 'tabs' to segregate collections of input, and recently also introduced 'groups' to further segregate sets of controls on a page/tab. These will still be used in most cases, but in some scenarios a sequential or progressive set of controls is more intuitive. This is more evident in a complex form requiring a great deal of customer input such as a 'camp registration and release' form. On the other hand, the 'site configuration' form is NOT intended to be sequential and would be practically unusable if it did not remain as a tabbed form.
How will a paged form work in Exponent? In the form designer, it will be as simple as adding a 'form page break' control as the first/top control, and placing one where ever you want to begin a new 'form page'. Exponent will do all the heaving lifting from that point. If you want to revert to a standard form, you'd simply remove/delete the page break controls from that form using the form designer. In practice a paged form would have at least two page breaks (including the top one) with one or more being the break(s) between the different pages.
The result will then look something like this. Exponent performs input validation on all visible controls prior to moving to the next 'page.' And as the development code matures prior to the next release, we will likely add form module configuration settings to enable/disable certain features like the 'page' description (Basic Information, etc...) appearing below the 'page' caption (Step 1, Step 2, etc...) AND also at the top of the current 'page', etc...
How will a paged form work within a template/view? In the simplest sense a 'paged' form is simply one with controls grouped inside 'fieldsets' and then a jQuery plugin is used. The {form} block function has been updated to accept a new 'paged' parameter which now also requires you pass an 'id' or 'name'. Then within the form you group pages of control with the 'page' block with a required 'label' and an optional 'description' param. Let's take a module view (mass-mailer) that is currently coded like this:
{form action=mass_mail_out}
{group label="Send this Message To"|gettext}
{control type="checkbox" class="emailall" postfalse=1 name="allusers" label="All Site Users?"|gettext value=1 description='Uncheck to allow user/group/freeform selection'|gettext}
{control type="checkbox" postfalse=1 name="batchsend" label="Batch Send?"|gettext value=1 checked=1 description='Hide email addresses from other users'|gettext}
{userlistcontrol class="email" name="user_list" label="Users"}
{grouplistcontrol class="email" name="group_list" label="Groups"}
{control type="listbuilder" class="email" name="address_list" label="Other Addresses" size=5}
{/group}
{group label="Message"|gettext}
{control type="text" name="subject" label="Subject"|gettext}
{control type="html" name="body" label="Message"|gettext}
{control type="uploader" name="attach" label="Attachment"|gettext description='Optionally send a file attachment'|gettext}
{/group}
{control type="buttongroup" submit="Send"|gettext cancel="Cancel"|gettext}
{/form}
a 'paged' version (if we wanted one) is easily created and would be coded like this:
{form action=mass_mail_out name='mass-mail' paged=1}
{page label="Send this Message To"|gettext description="Select Recipients"}
{control type="checkbox" class="emailall" postfalse=1 name="allusers" label="All Site Users?"|gettext value=1 description='Uncheck to allow user/group/freeform selection'|gettext}
{control type="checkbox" postfalse=1 name="batchsend" label="Batch Send?"|gettext value=1 checked=1 description='Hide email addresses from other users'|gettext}
{userlistcontrol class="email" name="user_list" label="Users"}
{grouplistcontrol class="email" name="group_list" label="Groups"}
{control type="listbuilder" class="email" name="address_list" label="Other Addresses" size=5}
{/page}
{page label="Message"|gettext description="Email Content"}
{control type="text" name="subject" label="Subject"|gettext}
{control type="html" name="body" label="Message"|gettext}
{control type="uploader" name="attach" label="Attachment"|gettext description='Optionally send a file attachment'|gettext}
{/page}
{control type="buttongroup" submit="Send"|gettext cancel="Cancel"|gettext class='finish'}
{/form}
As with all pre-release code, the specifics listed above are subject to change prior to the actual release.
We've also already added another 1.x feature missing in 2.x...'Configuration Profiles' which allows backing up and restoring the current site configuration (on the server). This becomes really handy in a test or development environment as you can very quickly switch between databases and themes to test a new feature or customization.