Oracle Commerce Search Engine Optimization

Search engine optimization is critical for all sites, and eCommerce sites are no exception. The difference between #1 and #2 on google search results can be thousands of dollars. ATG/Oracle Commerce provides a number of ways at the application level to aid in SEO. While ATG/Oracle Commerce does provide help for some aspects of SEO, it’s important to understand that a SEO strategy stretches beyond just the application coding; it’s includes everything from the site makeup (like proper HTML, keyword-rich URLs, a coherent navigation and a sitemap) to business-generated content (like keyword-targeted product names, descriptions and page titles) to a load of well-placed backlinks. My hope is to give you some context to what ATG can offer, and provide other SEO considerations on top of ATG/Oracle Commerce.

Bird’s-Eye View of ATG/Oracle Commerce SEO Support

The SEO functionality provided by ATG/Oracle Commerce does its job without (usually) any customizations. That is assuming that you’ve taken the effort to properly configure each area. It is not enabled by default.

Canonical URLs

Canonical URLs are important in SEO because they provide visitors with a textual clue about what a webpage will be about. A URL for a product page out of the box might be something like:

http://example.com/browse/product.jsp?productId=prod1234

Whereas a canonicalized URL could look something like:

http://example.com/browse/product/mens/pants/gap-1969-jean/prod1234

The canonical URL clearly provides much more information to the user. Instead of an ugly query string, the user gets a clean navigation trail (mens → pants categories) and also the product name and ID. It just seems more natural, and search engines place emphasis on this fact.

ATG/Oracle Commerce provides out-of-the-box support for URL canonicalization. It’s most often referred to using the “jump servlet”. During implementation, “indirect” and “direct” URL templates are defined to show how URLs should appear in their canonical and non-canonical forms. A servlet (called the JumpServlet) is then used to intercept requests, check if they are in a canonical form, and convert them into a non-canonical form so that the application can serve the right page. These additions are well-documented and should not require any custom code. You can get far with the out-of-the-box capabilities.

XML Sitemaps

eCommerce sites today can have thousands of unique pages. How do you tell search engines which pages should be crawled, how often, and what the relative priority of each page is? We have the robots.txt standard, however it is really only best at specifying which pages can and can’t be crawled. The solution is to use a standardized XML format to communicate these details. The accepted format is specified with http://www.sitemaps.org, and is recommended by all of the major search engines.

In ATG/Oracle Commerce, there is solid support for XML sitemaps. The main steps to setting up sitemap generation are as follows:

1. Configure a SitemapGenerator component, which is in charge of coordinating the entire sitemap generation process.

2. Configure individual sitemap *Generator components for your products, categories, static content and anything else worthy of a sitemap entry.

3. Configure a SitemapIndexGenerator component, which builds an index of individual sitemap files, and combines them into one “directing” file.

4. Configure a SitemapWriterService component to actually write the sitemap files to the file system.

In a nutshell, the *Generator components write out a sitemap into the SitemapRepository (just a text string). Then the SitemapWriterService comes through and converts the entries in the repository into an actual file. The ATG/Oracle Commerce sitemap framework was designed with the thought that sitemaps would be written into the WAR for each application server, however it is much better for performance if the sitemap is copied to a static content serving directory, so that a trip to the application server is not required for a static asset like a sitemap.

Sitemaps in ATG/Oracle Commerce are more work to implement compared to other SEO utilities like the jump servlet because of the coordination required from multiple parties in the project.  Business users need to decide what is the most important to them and what should make it onto the sitemap, the dev team needs to do the implementation as explained above, and the hosting team needs to workout the filesystem logistics.

SEO Tagging

The final major SEO support ATG/Oracle Commerce provides out-of-the-box is the SEORepository, which allows users to configure meta SEO information like keywords, titles and descriptions from the BCC or ACC. I haven’t seen this used very much, and wouldn’t recommend usage. Why? These meta tags are dead in terms of page ranking, and the level of effort to manage it is just not worth it anymore. The most important pages in the website may have these meta attributes hand-filled in (via BCC or ACC) so that they are displayed nicely in search engine results, however most other pages can get by with a simple algorithm to compute a page description or title on the fly.

Finding the Best Return-on-Investment

It’s up to the individual business to decide how important SEO is for its brand. Here are some things to consider when making this decision:

  • Are you going to make heavy use of PPC marketing (like Google AdWords)?
  • Are you launching into a crowded space, or do you have a unique product?
  • How long have you had a serious presence online?
  • How much does the top of the search results mean for your brand?

The effort versus return on SEO is usually something as shown below:

For a new site, a solid foundation of SEO best practices will do wonders for search rankings, but only to a point. For higher rankings after that, it requires substantially more effort.

Knowing this, it is the most economical to lay a solid foundation for SEO, which will get you to the arrow in the graph, and then reevaluate after a few months. By “solid foundation”, I’d recommend the following:

  • Canonical URLs
  • robots.txt
  • XML Sitemap
  • Use 201X design standards (e.g. don’t use iframes or tables and don’t design for just desktops)
  • Pay close attention to search keyword usage in static pages as well as category and product descriptions

The out-of-the-box capabilities of ATG/Oracle Commerce can take care of the canonical URLs and the XML sitemap, while the other points can be taken care of rather easily with a little guidance and/or coherence.

For large eCommerce brands, SEO shouldn’t be a problem. Businesses can use their existing brand’s weight to boost their eCommerce presence. The key is to establish a baseline SEO strategy and grow from there. ATG/Oracle Commerce provides a few of these building blocks, but it still leaves some open ends.

3 Comments

  1. Patty Parobek 5 years ago

    I would definitely argue “These meta tags are dead in terms of page ranking, and the level of effort to manage it is just not worth it anymore…” regarding meta tags.

    I have seen tremendous value from the strong keyword optimization and refreshing of page titles and descriptions specifically. in fact, I would estimate that beyond the page URL and page content, that the user-facing page meta title is one of the most critical ranking factors from the testing i’ve completed across several etail 500 websites.

    Though I definitely agree that there are better solutions for optimizing page titles & descriptions than the out-of-the-box oracle commerce tooling, I want to make sure you audience isn’t being taught that seo titles & descriptions are dead in general!

    Cheers,

    • Elena 5 years ago

      Completely agree! While Oracle Commerce’s tools wouldn’t be my first choice for keyword optimization, it is still an important part of any SEO strategy (or at least should be).

  2. Joe Lewis 5 years ago

    Yes I agree with Patty, to say that meta tags are dead for SEO is total misinformation. At the very least, they aid with SERP CTR, which is a ranking factor.

Leave a reply

Your email address will not be published. Required fields are marked *

*