The Definitive Guide to Concrete5 Search Engine Optimization (SEO)

After a lot of research and testing I think we have search engine optimization (SEO) for the Concrete5 content management system down to a science now.  The following guide is the compilation of seven years of testing to best optimize Concrete5 for the best rankings on Google and the other search engines.


Out of the box, the Concrete5 content management system is an excellent CMS for search engine optimization.  This guide will show you step-by-step what you need to do the get your concrete5 site optimized to get the best rankings.  To get a free check of your website’s current optimization, please click the tab at the bottom of the page for a free, instant audit of your website’s SEO.

Title & Meta Tags
Google loves using the title and meta tags to help it better understand what your website is about.  The title and meta description tags will often be displayed by Google in the search results, so having good keywords in your title and description are very important, but it is also important to write good marketing copy for those titles and descriptions.

To add title and meta descriptions in concrete5 is easy.  Log into concrete5, go to the page you want to add title and meta descriptions for and in Concrete5 5.6, mouse on the Edit button, click on Properties and click on the Custom Attributes tab. If you don’t see the title, meta description and meta keywords in the right column click on them in the left column to add them to the right column.  After adding your title, description and keywords click the save button.

In concret5 5.7 & 5.8 versions the process of adding meta tags is similar.  Log into concrete5, go to the page you want to add tags to, click on the gear icon in the editing toolbar and then click on Attributes.  On this page you can add meta and title tags and then click the save button.

To add SEO tags in bulk, for either concrete5 5.6, 5.7 or 5.8 sites go to the intelligent search box and type in ‘bulk SEO updater’ and then click on the link that appears in the drop down box.  On this page you can add your title and meta tags for all of the pages on your website from a single, easy to use interface.

Mobile-Friendly Concrete5 Websites
As of this writing, it has become more important than ever to have a mobile friendly website for search engine optimization.  Google is now putting even more weight into mobile optimization, so making sure your website is mobile friendly is now critical.  Why is it critical?  Because 50+% of all searches are now done on mobile devices and Google puts mobile friendly websites at the top of the search results for mobile searches.  How do you make your website mobile friendly?  A responsive website theme is probably the easiest and best way to accomplish this.  Check out the Pixo Epic theme, which is available for Concrete5 5.6, 5.7 and 5.8 sites.  It is a responsive theme that automatically adapts itself to desktop, tablet and smart phone views for the ultimate user experience and it will make Google happy for mobile SEO.  You can get it for as little as $45.  Want to see if your website is mobile friendly?  Click the tab at the bottom of this page for a free mobile SEO checkup.

Sitemap for Google
The sitemap.xml file is a tool to help Google and other search engines discover all of the pages on your website.  It shouldn’t be confused with the site map pages that had links to all of your site pages that were used in days past.  Google no longer recommends using site map pages.  Google feels that if your site needs a site map page for users to navigate your site, then you probably do not have a good user interface on your site and as a result it can drop your site's ranking.

Concrete5 comes with a tool to create a sitemap.xml file on your website.  Simply go to the Intelligent Search Box in the editing toolbar and type ‘Automated Jobs’ and then click the Automated Jobs link.  On this page you will see a number of jobs listed.  Simply click the run button next to the ‘Generate the sitemap.xml file’ text and concrete5 will create a XML sitemap for the search engines on your server that is located at www.yourdomainname.com/sitemap.xml.

404 Page Not Found Pages
It shouldn’t happen, but sometimes there can be bad links on your website to pages on your site or bad links from other sites to your site.  When that happens a 404 page is displayed.  This SEO fix is a little more complicated than some, because you have to get into the site code to make this change.  What you will need to do is go into your /www/config/site_theme_path.php file for a concrete5 5.6 site and remove the /* that is before the $v = View::getInstance(); and remove the */ at the end of the file.  What you should have is something that looks like this:

$v->setThemeByPath('/login', "your_theme_name");
$v->setThemeByPath('/page_forbidden', "your_theme_name");
$v->setThemeByPath('/register', "your_theme_name");

What this will do is apply your site theme to the login, page forbidden, register and 404 error pages.

After adding the theme to your 404 Page Not Found page, go to that page when logged into Concrete5, mouse on the Edit button, click on Properties and then Custom Attributes.  Add the Header Extra Content field and then add the following:

<META NAME="ROBOTS" CONTENT="noindex, follow">

This tag will tell Google to not index the 404 page, but to follow any links it finds on that page.

For Concrete5 5.7 & 5.8 sites, you won’t need to do the step to apply the theme to the pages in the Site Theme Path file, so just go to a bad URL on your site (i.e. http://www.yourdomain.com/sdfsdf), click on the gear icon, click Attributes and then add the Header Extra Content field and add <META NAME="ROBOTS" CONTENT="noindex, follow">.

Robots.txt File
Google these days wants to understand the way your site looks, so it needs access to the HTML and CSS files for your website.  By default, concrete5 in the robots.txt file located at www.yourdomainname.com/robots.txt file blocks Google and search engines from some files it should be able to access.  For concrete5 5.6 sites remove these four lines if they appear in your robots.txt file:

Disallow: /themes
Disallow: /packages
Disallow: /blocks
Disallow: /js

Out of the box the concrete5 5.7 & 5.8 robots.txt files typically are setup correctly and no changes need to be made.

Search Engine Friendly URLs & Canonical URLs
Creating SEO friendly urls (AKA pretty URLs) is east in Concrete5.  Simply go to the Intelligent Search box in Concrete5 5.6 and type in 'Pretty URLs' and click the Pretty URLs link and then check the Enable Pretty URLs box and click save.  This will take the index.php out of the URLs for your website.

To setup a Canonical URL for a Concrete5 5.6 site add this code to the header of each page of your website theme between the <head> tags:

<? $cPath = $c->getCollectionPath();
$canonicalURL = BASE_URL;
$canonicalURL.= $cPath;
$pageIndentifierVars = array('keywords','fID','tag','productID');
$canonicalVars = array();
foreach($pageIndentifierVars as $var)
if($_REQUEST[$var]) $canonicalVars[]= $var.'='.$_REQUEST[$var];
if( count($canonicalVars) ) $canonicalURL.= '?' . join(',',$canonicalVars);
?>
<link rel="canonical" href="<?= $canonicalURL ?>" />

For Concrete5 5.7 & 5.8 sites type 'Pretty URLs' in to the Intelligent Search box and then click on the URLs and Redirection link.  Now click the Remove index.php from URLs checkbox and click save.  It is also a good idea to put in your domain name under the Canonical URL while on this page.

Did you know that http://www.pixoinc.com/seo, http://pixoinc.com/seo, http://pixoinc.com/seo/ (with a trailing slash) and http://www.pixoinc.com/seo/ (with a trailing slash) would all be considered different URLs and as such different pages by Google?  The canonical will help fix that, but it won't fix the www verses non-www issue in all cases.  If you have those different URLs showing up on your website it could be causing you duplicate content issues on Google.  To fix that potential issue, add the following to your htaccess file and it will force the use of www on your website. 

# Force www prefix unless dev or already there
RewriteCond %{HTTPS}s on(s)|
RewriteCond %{HTTP_HOST} !^(?:www|dev)\. [NC]
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

Page Load Time
By default, concrete5 has page caching turned on.  This will help increase the load time of your pages and take some pressure off of your server.  Making sure image files are properly compressed on your pages will also increase page load time.  For concrete5 5.7 & 5.8 sites, using LESS for the CSS can also improve site performance.  To optimize server performance, read this list of items that can be done on the server side for concrete5 sites to reduce page load times.

Blogs
If you use the popular ProBlog or other blog add-ons available for Concrete5 and you are using tags, categories or archive search pages on your site I would recommend going into the Properties/Attributes section for that page and under Custom Attributes add the Header Extra Content add the following:

<META NAME="ROBOTS" CONTENT="noindex, follow">

Google doesn’t like duplicate content and it often has trouble with URL parameters used for those search pages.  The best way to not run into this problem is to not use tags, archives and categories, but I feel that takes away from the user experience.  If you do use tags and categories, keep them to a minimum.  Having a ton of links off of a blog post to other pages is going to minimize the value of the blog post in Google’s eyes.  The next best option however is to add that noindex tag on the blog search page which will minimize that page in Google’s eyes and can help solve that problem.

The Foundation is Laid, But You’re Not There Yet!
If you do the items in this SEO guide on your Concrete5 site you will have the foundation in place to get to page #1 on Google.   Now you just need keyword research, SEO Friendly Markup, make sure you site loads quickly, have good social media, have GREAT content and get quality backlinks to your website. 

You also need to reduce the bounce rate on your website and increase the time a user stays on your site, because it will not only increase your conversions (which at the end of the day it is all about--don't get too focused on rankings) but it will also increase your rankings. Google tracks how long users stay on a site.  If they bounce quickly for a given keyword, then Google assumes that site must not have much value for that keyword phrase so it drops that site’s ranking.

In all there is somewhere around 150+ ranking factors that Google uses in its algorithm and it is constantly evolving.  Of those, Google itself has said that content, backlinks and RankBrain are the three most important ranking factors. We have also found that the number of domains linking to a page correlates to a site's rankings more than any other ranking factor.

Need help with your search engine optimization for your website?  Get a FREE SEO consultation (we're really inexpensive, but very good--ask the start ups, mom & pop shops, airlines, restaurant chains, law firms and ski resorts that have seen great rankings from our work) and let us know how we can help drive quality traffic from the search engines to your website.  Ask us about our local SEO services. Contact us today!


For more information about this blog or Concrete5 please contact Jamie Johnson or visit his Google+ profile.