“Magento Search Engine Optimization” Book Review

One of the more legitimate knocks on the Magento ecommerce CMS platform is its poor native search engine optimization. With the complexity of Magento, all that customization on the frontend of a store can lead to a huge headache in SEO, and navigating the admin section or the 15,000 files that make up a typical Magento install can be bewildering.

Magento Search Engine Optimization Book

Thankfully, Robert Kent, of Creare Communications Ltd. in London has just released a book to deal with many of these problems. Magento Search Engine Optimization is published by Packt Publishing and is available on Amazon for about $30-$35. At 116 pages, including the Index, is it worth the cost?

For myself, the book is a bit of a mixed bag, but far more positive than negative. The information contained in it is easily worth the $32 price I paid for it, but it seems strangely unfinished, or rushed to production, or missing that last piece that would push this from a four-and-a-half star to a five star review.

Chapter Overviews

Let’s start from the beginning. Kent does a great job explaining the problems with Magento and walking through some of the basic features to turn on many SEO-friendly settings in the admin section of a store. From using canonical URLs, to turning off Product URLs with category structures, to properly modifying the default Robots.txt file, to trouble-shooting Google Analytics integration problems, he covers a lot of ground in just the first chapter.

The second chapter of the book is even better, as he looks a some common best practices for meta titles, meta descriptions, and product pages. By far, the most helpful part of this chapter was the Schema.org integration. Groove Ecommerce also has a tutorial, but I preferred Kent’s for ease of use and clear explanations.

But this chapter also contains the first of a handful of references to external links for more SEO customizations. At the end of Chapter 2, Kent briefly looks at Twitter card and Open Graph Card functionality, but refers readers to an article he has written about how to integrate them in to a Magento store. Why was this not just put in the book to begin with? The article isn’t particularly long (and it’s freely available online, and Kent wrote it himself!), so there is no clear reason not to put those code snippets in the book, which may have added an additional 3-5 pages at the most to a short book.

Chapter 3 is a good overview of internationalization of a store, but not one that applied to me. I’ll leave the evaluation of that section up to other Magento developers who have either subdomains or subdirectories running different-language versions of their stores. However, to Kent’s credit, he does look at the SEO-related concerns, including Google Webmaster Tools, translation of URL keys, and avoiding duplicate content with translated pages.

Chapter 4 is another technical section of the site and looks at more Schema.org and RDFa breadcrumbs integration, as well as adding rel=next/prev to category listing pages. Unfortunately, the rel=next/prev discussion is just a few paragraphs in length, with a link to an online tutorial that could have been adapted, credited, and included in the current book. This article would add maybe 2-3 pages to the 116-page book.

Chapter 5, although short, is extremely useful and important, covering optimization of Magento store speeds. A site I worked on went from under 3 second to nearly 5 1/2 second page load speeds by switching from a custom platform to Magento, according to Google Analytics data. This is clearly a problem with Magento, as the store has its own dedicated server. In order to deal with some of these problems, Kent looks at Magento’s cache system, compiler tool, and CSS/JS merging in the site’s admin panel. More technical are the .htaccess modifications for content-encoding (mod_deflate/mod_gzip) and expiration headers (mod_expires), but they’re also for more experienced Magento developers. I have started using some of these customizations, however, and will monitor if there are significant reductions in the page load times.

The sixth chapter looks at Google Analytics integration almost exclusively, including Universal Analytics, Multi-Channel Funnels, and finishes with some A/B testing platform integration with both Google and Optimizely. It’s a good, short introduction to using GA to track visitor and ecommerce data.

Chapter 7 is all about .htaccess and Robots.txt manipulation. Again, these changes should be done by more experienced web developers, but the code snippets are also easy enough for many store owners to understand and realize some benefit from. Buy the book to read about maintaining a www or non-www version of the site and removing index.php paths from pages. By far the most useful section of the chapter is some code for adding a NOINDEX, NOFOLLOW tag to pages with parameters. This is how the other problems I had with the book should have been handled: there are links to more technical issues such as setting up a Magento extension, and theory behind the code in an article on Kent’s Creare.co.uk site, but the actual usable code is contained in the book. This is the way the social cards and rel=next/prev should have been done.

The final chapter is on Magento SEO and CRO (conversion rate optimization) extensions, and is quite useful. The Turpentine and One Step Checkout plugins are the most interesting, but all of the extensions Kent lists are worth checking out at least. As someone who has only worked on Magento Enterprise, even Kent’s own extension Creare SEO, wasn’t applicable, but there are enough Community and Enterprise plugins to dig through.

Final Thoughts

Then, the book is over. No conclusion but the book does not really call for one. Almost all of the info up to that point has been useful for configuring, optimizing, and extending Magento for nearly all facets of ecommerce search engine optimization. This is a book that should be read by all individual and company developers of Magento websites, and could save companies a lot of headache with their Magento sites.

My only real complaint is how short the book is, and how much is left out in terms of code for social card integration and rel=next/prev configuration. But these are minor complaints, and the book at least contains links to grab the code and get it into the right files.

All in all, the book is highly recommended for anyone developing their own or clients’ sites using Magento.

Setting a Unique Home Page Title in Magento

In Magento, you can set a default page title in the System > Configuration > General > Design > HTML Head section of the backend. That’s one way to set a default title for your homepage, but you probably want a unique title for that page, even if just to avoid Google Webmaster Tools duplicate title tags errors.

Magento Tricks by Traffic MotionIn most cases, though, you’ll want to set your default title to show at least your company’s name, in our case, Traffic Motion.

But another problem with Magento is that, if you set a default Title Suffix, you could end up with your company name as the default title, and your company name as the title suffix.

Default Title: Traffic Motion
Default Title Suffix: | Traffic Motion

On most page, this would be fine, because you’d have your title as “Product Name | Your Company.” On the homepage, though, that breaks down, and you’ll get something like this: “Traffic Motion | Traffic Motion” — not very good for either users or search engines.

So, here’s an easy XML update for setting a default title on your homepage (or any other CMS page).

<reference name="head">
	<action method="setData">
		<key>title</key>
		<value>Traffic Motion - An Awesome Design & Marketing Website</value>
	</action>
</reference>

To use that snippet, go into the CMS > Pages > Manage Pages > [Your Home Page] > Design > Layout XML Update, and paste that into the editor. After that, save the page, and your homepage on Magento will now have a nifty custom, unique page title that won’t be found anywhere else on your website.