Managing SEO

Building a website that is optimized for Search Engines (SEO) is a combined responsibility of both the developer building your website, your content architecture and your content editors.

Agility CMS assists in this by providing some built-in fields as part of our Page Management to encourage developers to use these fields and for editors to have a consistent place to manage this.

This guide highlights the relevant fields for SEO that you can manage in the CMS. It is recommended to use these fields where possible.

If you are using these fields in the CMS and are not appropriately being reflected in your website, please speak with your website developers. 

SEO on Pages

In the Pages section in Agility CMS, each page has a set of built-in properties to assist with managing SEO content. 

Built-in Agility CMS properties for SEO

Page Title

This should represent the <title> HTML element that is outputted on your website. This is used for both Search Engines as well as displaying the title of the page in your web browser tab.

<title>My Page Title</title>

Page Name

This should represent the URL slug of the page which comprises part of the full URL for your page on your website. For example, if your Page Name is "services" and it is a sub-page of "about" then your full URL for your website would be:


Visible On Sitemap

This property should represent whether this page should be included in the website's sitemap (sitemap.xml) file reported to search engines. Developers may also interpret this property to determine whether the page should allow robots to crawl it. In general, if this property is checked, the page should be visible in the sitemap and be crawlable by search engines. If unchecked, the page should disallow search engines from crawling it.

Meta Description

This property should represent the meta description used in the HTML page output. This is used by search engines to learn more about your page, and they often use this in their search results. This is a plain text field and should not include any HTML. The assumption is that the website will output this as a properly formatted meta tag.

Example Input

Agility CMS is a Content-First Headless Content Management System

Example Output (HTML)

<meta name="description" content="Agility CMS is a Content-First Headless Content Management System" />

Meta Keywords

This property should represent the meta keywords used in the HTML page output. This is a plain text field and should not include any HTML. The assumption is that the website will output this as a properly formatted meta tag.

Example Input

Agility CMS, Headless CMS, Cloud CMS, SaaS, Digital Experience Platform, The Fastest CMS, Headless Ecommerce, Headless Page Management

Example Output

<meta name="keywords" content="Agility CMS, Headless CMS, Cloud CMS, SaaS, Digital Experience Platform, The Fastest CMS, Headless Ecommerce, Headless Page Management" />

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. It should accept and output raw HTML.

Example Input

<meta name="robots" content="noindex">

Example Output

<meta name="robots" content="noindex">

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:


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:


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 page 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="" />This means that however, a crawler reached the page, it would know that the content is the same as defined in the page found at the 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 page - 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 page 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!