Part 11: Search Engine Optimization Offering

Note: All references to the user guide in this post refer to the public user guide available on the Magento wiki, as opposed to the user guide book for the Enterprise Edition of Magento.

This post is the eleventh part of a series covering the feature set of the Magento PHP-based e-commerce package. In particular, it reviews the search engine optimization features.

100% Search Engine Friendly

Other features in this section seem objective and well-defined, but this one comes off as more of an assurance from the marketing department to lead into the rest of the feature list. It's rare that an assertion of a product being 100% anything is unembellished.

If you'd like a slightly less biased claim, check out this blog post. It links to several other good resources, outlines what Magento already does for SEO, and points to supplemental measures that can be taken to improve it. Another blog post includes a number of related links as well.

Google Sitemap

Google supports use of the sitemap protocol through its Google Sitemap service, which allows site administrators to inform them of sites that offer site maps for consumption by crawlers. The user guide only touches briefly on where to find configuration options for Google Sitemap, but this wiki article helps to fill in the gaps.

To generate a site map, make sure that Magento can temporarily write to the directory intended to house the sitemap.xml file. From the admin area, to go Catalog - Google Sitemap, click the Add Sitemap button, enter a filename (ex: sitemap.xml) and path (ex: /), and click the Save and Generate button.

While a record of the sitemap will be maintained in the database, generating the sitemap from this area only updates it at that time. In other words, it doesn't automatically update as data changes. To do that, go to System - Configuration - Catalog - Google Sitemap - Generation Settings, set Enabled to Yes and appropriate values for Frequency and Start Time. At that point, all sitemaps will automatically be regenerated on the specified interval provided a cron job is a set up for it.

URL Rewrites give full control of URLs

This feature is covered well in the user guide. URL rewrites allow for more search engine-friendly URLs to pages for products, categories, and anything else within Magento. You can manage them by going to Catalog - Url Rewrite Management. Rewrites for categories and products can also be modified using the URL key field in the default tab when editing an individual instance of either.

This feature works whether or not you have Apache's mod_rewrite module. The only difference is that "index.php/" is included in URLs when URL rewriting is not used. To prompt Magento to begin using web server URL rewriting, go to System - Configuration - General - Web - Search Engines Optimizations in the admin area and set Use Web Server Rewrites to Yes.

Note that Magento's .htaccess file will add rewrite rules for mod_rewrite if it's enabled; this configuration setting merely instructs it to exclude the "index.php/" segment in the links it returns. Also, while the system requirements for Magento are specific about Apache, there has been some success in getting it to run on other web servers like IIS.

Meta-information for products and categories

The user guide makes mention of this for products and categories.

For products, go to Catalog - Manage Products, create or edit a product, and access the Meta Information tab to set the page title (not sure why this is labeled Meta Title) and meta description and keywords. If the Meta Description field is left blank, the meta description will default to the value of the Description field under the General tab when editing a product. Likewise, the page title will default to the product name. Meta keywords will default to a set for Magento itself.

For categories, go to Catalog - Manage Categories, create or edit a category, and look for the Page Title, Meta Keywords, and Meta Description fields in the General Information tab. Defaults for these are the category name, a set of keywords for Magento, and the string "Default Description" respectively.

I looked around in the configuration section of the admin area, but couldn't find any way to control the defaults used when any of these fields are left empty.

Auto-generated Site Map for display on site

The user guide covers this feature. It is enabled by default, but can be disabled by going to System - Configuration - Catalog - Catalog - Search Engine Optimizations and setting the Autogenerated site map option to No.

Two site maps are made available, one for a category listing and one for a product listing. The former can be accessed using the Site Map link in the footer of the default theme. From that page, the Products Sitemap link on the top right corner provides access to the product listing. Configuration for that site map can be found in System - Configuration - Catalog - Catalog - Sitemap in the admin area, allowing the visual structure of themap to be changed (list or tree) and the number of results per page to be changed.

With regard to the earlier item claiming 100% search engine friendliness, this feature is one area where I find that claim to be a bit flawed. The links to the category and product listing pages themselves have a title attribute, but none of the links to categories and products on those pages do.

Auto-Generated Popular Search Terms Page

This feature is also addressed in the user guide, albeit briefly. It's enabled by default; that can be controlled in System - Configuration - Catalog - Catalog - Search Engine Optimizations by toggling the Popular search terms selection.

When this feature is enabled, a Search Terms link is included in the storefront footer. This link goes to a page that implements a tag cloud of phrases commonly used in the storefront search with each phrase linking to its respective search result page.

The contents of this page can be managed by going to Catalog - Search in the admin area. That's also covered in the user guide, though more in the context of improving site search than SEO.

While this feature in and of itself is great, its placement is less so. Ideally, the tag cloud would be placed inline (rather than on a separate page) and early on (as opposed to in the footer) in the landing page's content so it would be more likely to be picked up by crawlers. I imagine it's possible to customize Magento to make this change, but it would improve Magento from an SEO standpoint if the native theme was implemented this way.

Wrap Up

Sitemap support, common search terms, and URL rewrites are great SEO features. While metadata are nearly irrelevant for SEO these days, the ability to control it for products and categories from the Magento interface is a nice feature. In the age when content is king, it falls to users of Magento to implement quality content that caters to their business. Much of what Magento can do to support them in this endeavor, it does and does well.