Managing SEO for Developers

What is SEO Management and why is it important?

Creating a site that’s Optimized for Search Engines (SEO) is the combined responsibility of both the Developer creating and structuring the site as well as the Editors creating content for the site. 

Agility helps streamline this process by providing some built-in fields as part of our Layout Management to empower Developers to use them and give Editors a consistent place to manage them. For best results they should be used whenever possible. 

Managing SEO Properties

To access SEO options while editing a page click the Target icon found below Properties in the right-hand sidebar. 

  • LayoutTitle – This represents the <title> HTML element which supplies the Layout or "Page" Title that will be display in a Web Browser tab and in Search Engine results.
  • Layout Path - The URL name for the layout, i.e., yourwebsite.com/home or yourwebsite.com/about/services
  • Menu Text – How you would like the name of your layout to appear in Menus
  • Visible on Menu - If you base your website navigation on the Sitemap, then this option allows the author to show/hide the layout from your site menu. Similarly, if you have a “Sitemap” that lists all the layouts or pages on your site, it allows the author to include or exclude layouts from it.
  • Visible on Sitemap – This option allows you to indicate that the layout should be included in the sitemap file that’s reported to Search Engines or if it should be crawled by robots.
  • Meta Keywords – Keywords that describe your layout. This is a plain text field and should not include any HTML
  • Meta Description – This is where you put a description of the layout or page for search engines to learn more about it and is often displayed in search results for potential visitors.
  • Additional Header Markup - This property is designed to allow Editors to add additional HTML meta tags or scripts that should appear in the <head> of the HTML document.

Automatically Generating SEO Fields

While you can use these fields manually to set specific SEO content, you may find it easier to auto-generate some of this content like Open-Graph tags by using existing structured content. For example, let's say you want to generate a Twitter card. A Twitter card is comprised of a title, description, and image. You may already have fields on your content that can be used for this.  

A developer can then auto-generate these tags (and more) using your existing content that is stored on other fields. 

Handle Duplicate URLs with Canonical Links

Search engines have introduced the concept of canonical links in an attempt to solve the problem of duplicate data in their search results. The basic problem is that multiple links to the same content can vary in style, thereby creating duplicate instances in the results pages of a search. The variation in style could be really simple like these: 

  1. http://fishing.ca/videos?id=219
  2. http://www.fishing.ca/videos?id=219
  3. http://www.fishing.ca/videos?id=219&category=bass

All of these links produce the same content, and would be considered different by a search engine and would, therefore, produce duplicate results. Consider a more complex example: 

  1. http://fishing.ca/shop/rods
  2. http://fishing.ca/shop/rods?sortBy=price
  3. http://fishing.ca/shop/rods?sortBy=price&sortDirection=descending
  4. http://fishing.ca/shop/rods?sortBy=price&sortDirection=descending&sessionId=717df154-e6d5-4522-bda5-7ccd2852c287

Again, all of these links essentially lead to the same content. The variances defined by the query string parameter only alter the way content is displayed, and not the intrinsic nature of the content itself. We, therefore, want to avoid having all four examples showing up in Google, if possible. 

There are two ways to achieve this:

The first is to always use absolute URLs in links - a consistent approach to linking reduces duplicates on the site and reduces the variance of links found by the search engine's crawler. 

The second is to use a canonical link - this would be added to the head element of a layout and contain a URL that is considered to be the 'true' path to the content. In the e-commerce style example above, the link element would look like this: <link rel="canonical" href="http://www.fishing.ca/shop/rods.aspx" />This means that however, a crawler reached the layout or page, it would know that the content is the same as defined in the layout found at the http://www.fishing.ca/shop/rods.aspx and would therefore not index it separately. 

There are a number of caveats:

  1. A canonical link is used as a strong hint as to the 'actual' content of the layout - it is not guaranteed to override the crawl results. 
  2. It is strongly recommended to use absolute URLs
  3. Links can not cross domains, although they can cross sub-domains
  4. If a link returns a 404, or a layout that is considered to have different or non-similar content, the link will be ignored.

In summary, using canonical links will help us build better search-engine optimized sites; but we shouldn't stop doing the basics like using proper absolute urls and building good site maps etc. There's still more research to do on all of this! 

Further Reading