ATG SEO – Search Engine Optimization

Search is Rocking

No matter how good your website or web application is, if people can’t find it, then it doesn’t do anyone any good.

The Secret to SEO

So how do you game Google? How do you trick search engines to put you at the top?

You don’t.

The “secret” to search engines is that they are built to return the most useful relevant results. All you have to do is to build your site in accordance with standards, common sense, and have it be helpful or useful. The upside to taking these elements into consideration is that not only will it help people find your site, but often it will improve the experience on the site as well.

I’m going to cover aspects of your site such as head tags, semantic tags, standards and accessibility, URL structures, limitations to be aware of, how to test what GoogleBot sees, tools to check your site with, and how to boost your Google ranking using means beyond just fixing up your site.

These pointers will apply to any website, but I will make some specific recommendations and provide some sample code for ATG sites, which are often not very SEO friendly, despite best intentions.

Head Meta Tags – Title, Description, and Keywords

The first important things that the search engine will see in your HTML are the tags in the head section of the HTML. There are three that we care about, Title, Description, and Keywords.

Title

The Title meta tag should uniquely identify the content of the page. Every page should have a different title, and the title should describe the content of the page accurately and succinctly. My preference is to put the site name after the unique portion of the title, like “Men’s Shoes – MyShoeStore.com” or “Men’s Fluevog Size 12 – MyShoeStore.com”. The content of the title should be relevant to the content on the page, words from the title should be found prominently within the page content.

When you’re using a template or including a shared header file, as is common in many dynamic sites, especially ATG sites, you need to pass in the unique title as a param.

Within your header page you use code like this:

[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][xml]
<title><dsp:valueof param="title">Shoes</dsp:valueof> – MyShoeStore.com</title>
[/xml]

And from within the calling page you pass in a title like this:

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][xml]
<dsp:include page="fragments/page-header.jsp">
<dsp:param name="title" value="Contact Us" />
</dsp:include>
[/xml]

Or with catalog data, like this:

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][xml]
<dsp:include page="fragments/page-header.jsp">
<dsp:param name="title" param="category.displayName" />
</dsp:include>
[/xml]

The other thing to keep in mind is that the Title is the default name of the bookmark if the user bookmarks the page. It needs to be clear, concise and helpful, and should make it easy for the user to find among their other bookmarks.

Description

The description meta tag should contain a longer description of the page content. It should be no longer than 160 characters, and should use terms that are highly relevant for the page content, and are repeated within the page.

For dynamic sites, including ATG, I recommend the same approach as above for the title tag.

Keywords

The keywords meta tag should contain close to eight keywords which best represent the content of the page, and terms that people might use to search for similar content. Those keywords should feature prominently within the page content itself.

For dynamic sites, including ATG, I recommend the same approach as above for the title tag.

Tuning Your Head Tags

It’s important to tune your description and keywords to get the right users to the right content. This is the great part: by using the best relevant terms, by providing helpful accurate terms and not trying to scam or spam traffic your way, you end up helping searchers to find what they are looking for, and you end up helping yourself to get more and higher quality traffic..

So in order to be more efficient, you need to figure out what people are searching for when they end up at your site. There are a couple ways to do this. The most basic is to use an analytics package, such as Google Analytics, and look at the keywords people are using that direct them to your site. Google Analytics makes this easy by also showing you the average time on the site, and number of pages visited by users divided by the keywords they searched for. This makes it easy to tell which keywords generate traffic of users who WANT to be on your site, and find it useful (and hence will come back, make purchases, etc…), and which keywords brought in the wrong people, people who were looking for something else.

Here is the Google Analytics keyword report for my site:?

Google Analytics Keyword Report

You can see that people who come to my site when they’re searching for “create web service seam” only look at the first page they see, and have 100% bounce rate. That means one of two things: A) this group of people was really looking for something else and my site didn’t help (in which case I should probably change my keywords and content so they don’t waste their time on my site) or B) the first page answered all of their questions. In this case the page on my site is probably pretty helpful for people searching for those words, so I’m going to keep the keywords, but you understand the point.

These types of reports should allow you to tune your keywords to get the best quality traffic and the happiest users.

To be more advanced you can track the keywords that didn’t just lead people to your site, but led people who made purchases/other goals to your site. You can do this with Google Analytics by setting up Goals, or with other analytics packages.

There will be three more posts on SEO coming in the next few days!

———
ATG SEO – Accessibility and GoogleBot

ATG SEO – URL Formats and Crawler Limits

ATG SEO – Tools and Traffic[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]


Posted

in

,

by

Tags:

Comments

13 responses to “ATG SEO – Search Engine Optimization”

  1. anand raman Avatar
    anand raman

    In all earnestness, SEO is an overrated science. While some of what you say has some meaning, it is all about semantics and cleaniness. If you structure your content which is readable easily by humans, there is every possiblity that search engines also like you. The so called SEO experts go to all lengths to distort truth and ofcourse earn their living.

    Finally I am not sure about your preception of ATG’s seo capabilities are. In my opinion they dont have any offering in this space.. You build custom code to do what you want.

    1. Devon Avatar

      Anand,

      I’d recommend you read the next three posts on the subject, as I hope you’ll find additional information that you agree with. I’m on vacation right now, but after the whole series of posts is up (all automated at this point), I’d be happy to discuss SEO with you if you still disagree with my posts.

      Regards,

      Devon

  2. […] Search Engine Optimization – SEO | Devon Hillard Tech Blog […]

  3. Ben Carlson Avatar

    Devon,

    thanks for the thoughful post! We have an issue with our URL’s where we don’t know the number of parameters that might be passed (due to faceted navigation, many attributes could be selected), or in what order. Have you run across any way of using SEO friendly URLs with a dynamic number of parameters? Maybe a key-value pair?

    Thanks in advance,

    -Ben

    1. Devon Avatar

      Ben,

      you probably don’t want to convert every parameter into a URI segment. Too long URLs aren’t helpful for people and don’t help your SEO. I guess it really depends on what the params are, and how they impact the page rendering. The SEO module I’m working on will work against a configured list of params, because I think that handling ALL params that you find on many ATG ecommerce websites will cause more trouble than benefit.

      Can you provide any specifics around the params you want to encode in the URL?

      To do what you’re talking about you’ll want to move to very small param names to reduce the size of the URL, but keep some descriptive if possible (how’s that for useless advice:> ). And then you’ll probably just need to map them into the URL like “/paramname-value/” and then extract them out on the request side. It should be doable, but if you have 20 of them, it gets pretty ugly. It also makes caching the translation mappings more difficult/impossible. You’ll probably also want to apply an ordering preference to certain parameters, to ensure things like category, product, sku name, etc… end up at the front of the URL and hence get more SEO weight and readability.

      Devon

  4. Heiko Mock Avatar
    Heiko Mock

    Hi Devon,

    I have a question regarding Internationalization, SEO and Google.
    We have multi-languages on our website and we want to use only one domain (www.xyz.com). We don’t want to have something like us.xzy.com, gb.xyz.com or http://www.xyz.com/en/, http://www.xyz.com/it/. Do you have any idea how Google will handle this?
    We are using different categories for the different languages.

    Thanks and regards,
    Heiko

    1. Devon Avatar

      Heiko,

      that is a FANTASTIC question! 10MinuteMail has about 30 languages but it uses the same pages/URLs so I guess Google either doesn’t see the other languages or it just confuses things, I really don’t know. I’m asking around as to the best approach on this, as it’s a good question and unfortunately I don’t know the answer. Anyone else?

      Devon

      1. Devon Avatar

        Heiko,

        I’ve done some homework and it seems like the best approach is to have sub-directories with the language code http://www.xyz.com/it/, etc…

        This lets google index each language tree separately, and keeps all the PR on your domain. I’m not sure what you mean by different categories for the different languages?

        You can also submit different google sitemaps for each language.

        Devon

        1. riya Avatar
          riya

          Hi Devon,
          Since we are using atg but we have our own logic for seo. We have created the redirectpipeline which checks for the url patterns and forward it to the proper url. We have created a droplet to create the seo urls.

          we have written a logic in servletpipeline to handle the noncatalog urls also. So if we use atg ootb implementation then will it be useful?

          Regards,
          Riya

          1. Devon Avatar

            Honestly if you have all that built and it’s working and performing well, I’d advice against trying to migrate to the ATG OOB solution (which I’m not a huge fan of anyhow….). Keep what you have if it’s working!

  5. Cyril Traux Avatar

    I am indebted to this blog and its comment posters for enlightening me .

  6. Kapil Avatar
    Kapil

    Hi Devron,

    I have a question on SEO URLs.

    Can we manage the SEO URLS through BCC as there are only few numbers of products. Below is the approach what i thought of :

    1. Add another Item descriptor named SEOURL in seo repository.
    properties will be :

    1. Id
    2. SEO URL (only the last word of actual URL).
    3. SEO Category(for whch category URL is getting generated i.e. product catalog pages or content pages(HTMLS))
    4. SEO Container type – (HTML,Category,Product,SKU)
    5. SEO Container Name -(Name of the HTML,Catgeory,Product,SKU)

    2. Add the SEO URL property in the procuct catalog items i.e. in category,prodcut or SKU.

    3. Business will configure the SEO URL property of the catalog items For eg :

    id :xxxxx
    SEO-URL ; home-camera
    SEO-Category : home-monitoring
    SEO-COntainerType : SKU
    SEO COntainer Name = home camera

    The construted URL will be :

    http:///Home-monitoring/home-camera

    4. And whenever this URL is entered in browser we will create a custom jump servlet which will monitor all the urls and
    will go by the last word of the URLS. If that last word is present in the SEO repository as SEO URL then it will load the SEO URL item and from that item it loads the actual producut,SKU or category repository item and will create the dynamic URL.

    5. In case if the last word in URL is not in SEO repository then it will treat it as a normal URL.

    6. Similarly the itemlink droplet will generate the URLS for the web crawlers on the page. That droplet will look for the product /sku and will load their SEO URL item and will construct the SEO URL.

    Please let me know your thoughts on same.

    Thanks and regards,
    Kapil Chaudhary

  7. Kapil Avatar
    Kapil

    Hi Devron,

    I have a question on SEO URLs.

    Can we manage the SEO URLS through BCC as there are only few numbers of products. Below is the approach what i thought of :

    1. Add another Item descriptor named SEOURL in seo repository.
    properties will be :

    1. Id
    2. SEO URL (only the last word of actual URL).
    3. SEO Category(for whch category URL is getting generated i.e. product catalog pages or content pages(HTMLS))
    4. SEO Container type – (HTML,Category,Product,SKU)
    5. SEO Container Name -(Name of the HTML,Catgeory,Product,SKU)

    2. Add the SEO URL property in the procuct catalog items i.e. in category,prodcut or SKU.

    3. Business will configure the SEO URL property of the catalog items For eg :

    id ; xxxx
    SEO-URL ; home-camera
    SEO-Category : home-monitoring
    SEO-COntainerType : SKU
    SEO COntainer Name = home camera

    The construted URL will be :

    http://domain-name/Home-monitoring/home-camera

    4. And whenever this URL is entered in browser we will create a custom jump servlet which will monitor all the urls and
    will go by the last word of the URLS. If that last word is present in the SEO repository as SEO URL then it will load the SEO URL item and from that item it loads the actual producut,SKU or category repository item and will create the dynamic URL.

    5. In case if the last word in URL is not in SEO repository then it will treat it as a normal URL.

    6. Similarly the itemlink droplet will generate the URLS for the web crawlers on the page. That droplet will look for the product /sku and will load their SEO URL item and will construct the SEO URL.

    Please let me know your thoughts on same.

    Thanks and regards,
    Kapil Chaudhary

Leave a Reply

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

PHP Code Snippets Powered By : XYZScripts.com