CMS SEO Question: How are individual CMS article pages intended to be indexed by Google?

Hi Ben,

First, I want to say that I’ve spent the past week rebuilding my expert witness website using Elements CMS, and I’m genuinely impressed with what you’ve built. After a bit of a learning curve, I now have a CMS-driven site that I’m very happy with.

My site uses:

  • A Collection for the home page
  • Filtered Collections on five separate expertise pages
  • A Collection on an Expert Insights page that displays all articles
  • Individual Item pages that display each article and embedded YouTube video

The CMS architecture itself is working very well.

However, I’ve run into what appears to be an SEO limitation and I’m wondering whether I’m misunderstanding how the CMS is intended to work.

When I click on an article card, the URL is something like:

https://markgoodeexpertwitness.com/expert-insights/insight/?item=how-i-saved-the-government-1-billion

Google Search Console reports:

No referring sitemaps detected

When I inspect my sitemap, it contains the template page:

/expert-insights/insight/

but it does not appear to contain the individual CMS article URLs generated by the ?item= parameter.

My questions are:

  1. Are individual CMS Item pages intended to be indexed by Google?
  2. If so, how are search engines expected to discover those URLs if they aren’t listed in the sitemap?
  3. Is there a recommended SEO strategy for CMS-driven article sites built with Elements?
  4. Are SEO-friendly article URLs (rather than query-string URLs) planned for a future release?

For context, my site isn’t a traditional blog. It’s a growing knowledge base that will eventually contain dozens of long-form articles and videos demonstrating my expertise as an expert witness. Discoverability of the individual articles is therefore extremely important.

Overall, I’m very pleased with the CMS and the flexibility it provides. I’m simply trying to understand the intended SEO strategy so I can build the site correctly from the outset.

Thanks for any guidance you can provide.

Mark Goode

Hello,

I would say that I can fairly call myself an expert when it comes to the Elements CMS. I run more than a handful of websites that all work entirely in combination with the Elements CMS. From an SEO perspective, all of these websites are pushed as far as currently possible with Elements — and even a little beyond that.

Regarding your questions:

1. Are individual CMS Item pages intended to be indexed by Google?

Yes, absolutely.

2. If so, how are search engines expected to discover those URLs if they aren’t listed in the sitemap?

Usually, this should work the “natural” way: through internal linking. Alternatively, the pages can also be indexed through a sitemap or, as I do it, through the RSS file.

Both options are already available in the Collection component under RSS & Sitemap.

3. Is there a recommended SEO strategy for CMS-driven article sites built with Elements?

What exactly do you have in mind here? What are your expectations? In general, you should be very flexible with Elements.

4. Are SEO-friendly article URLs instead of query-string URLs planned for a future release?

This is already possible as well. You can already use Pretty URLs.

You should find all the information you need here:

Otherwise, feel free to ask your questions here in the forum as well.

Thanks for your helpful reply. I think I’ve narrowed this down further.

My CMS folder currently contains eight published articles.

My Expert Insights page displays all eight articles correctly.

However:

  • sitemap.xml only contains the item template (/expert-insights/insight/) rather than the eight individual article URLs.
  • feed.xml only contains the three articles displayed by the homepage collection rather than all eight published CMS items.

Is the RSS feed generated from the Collection component instead of the CMS folder?

If so, is there currently any way to generate an RSS feed or sitemap that includes every published CMS item automatically?

From an SEO standpoint this seems important because search engines would otherwise only discover the featured articles rather than the complete article library.

I took a closer look at your site and also found the articles.

The main reason why your articles are currently not being found by Google is that the correct canonical tag is not being set for the article pages. Instead, each article uses the canonical URL of the article collection page.

Once this is fixed, the article pages should also be indexed by Google over time.

To fix this, you need to add the following to your article post page:

{{ item.canonicalUrl }}

Add this Twig syntax here:

Meta Tags → Canonical URL

After that, publish everything again. The correct canonical URL should then be output for your article pages, giving Google the possibility to index them properly.


Thank you so much - a great help !!

Then also - I see you are giving each page it’s own description via the description tag - where exactly is it referencing this from ?

Does it get it from the twig at the start of each post ?

If so - what is the syntax to do this ?

Thank you for your assistance! Here’s the latest:

I added {{ item.canonicalUrl }} to Meta Tags → Canonical URL on the Insight item template.

After publishing, the page source still outputs the Twig literally:

Also, the metadata remains template-level:

Insight

The item body variables render correctly on the page, so the Item template itself works. It appears only the Meta Tags panel is not evaluating item variables.

Is there a setting I’m missing, or is this a bug in Elements 2.4.4?

Surely this could all just happen ?

Okay, I saw that {{ item.canonicalUrl }} is not being rendered.

Unfortunately, it is now quite difficult to say what might be causing this without seeing your setup, because this should normally work.

There are two ways I could help you further:

Option 1:
You post a few screenshots of your setup.

Option 2:
This would be the most effective option: you post the link to your project in Elements Cloud, either here or via PM.

Then I can take a closer look at the project and see what might be causing the issue.

Please let us know which option works best for you.

The description always comes from the same Markdown frontmatter that also provides the data used in the body text.

Of course, the question is how your frontmatter is set up.

If you post a screenshot of it, I can probably tell you more.

OK - I think this is what you mean ??

It’s the latest blog post

Thanks so much for having a look at this Pegasus !!

Also - my canonical looks like this for the first blog post

Will the ?item= stop Google from doing it’s good work

This is pretty URL, right ?

image

I changed description to copy yours {{ item.description.long }} but it doesn’t seem to pull anything up

Sorry to hijack your thread Mark - I can’t believe I’ve been working so long on this and important stuff is still missing

In principle, you can store almost any data you want in the frontmatter and then output it again wherever needed.

Here is an example of the frontmatter I use:

# ======================================================
# PUBLISHING INFO
# ======================================================
published: true
featured: true
draft: false
status: "published"

date_published: "2026-05-22"
date_modified: "2026-05-22"

author: "john"
site_name: "mydomain.com"
# ======================================================
# HEADLINES
# ======================================================
meta:
    title: "More than just Ballermann – Where Mallorca is most beautiful"
    description: "Mallorca – more than just Ballermann"
    subtitle: "" 
# ======================================================
# CATEGORIES & TAGS
# ======================================================
category:
    name: "News"
    slug: "news"

tags: [travel]
categories: []
# ======================================================
# MEDIA ( HEADER / LOGOS)
# ======================================================
media:
    header:
        960x540:
            src: "/0200-images/0200-header/0100-blog/mallorca/mallorca_001-960x540.webp"
            alt: ""
            copyright: ""
            type: "remote"
    logo:
        src: ""
        alt: ""
        type: "remote"
---

Please note that your frontmatter does not need to be this extensive. Also, this setup is currently not suitable if you are using the ECMS online editor. However, you can still structure the frontmatter very individually.

Ben would probably say “keep it simple” — and he would most likely be right, because it makes problems easier to find and helps avoid them in the first place.

For your frontmatter, I would simply add the following:

metaDescription: "Add the meta description you want to output here"
metaTitle: "Add the meta title you want to display here"

The corresponding Twig syntax would then look like this:

{{ item.metaDescription }}
{{ item.metaTitle }}

You can then simply add this syntax to the corresponding fields in the Inspector. After publishing, the correct values should be output there.

No worries! I’ve been working away on it as well and the first clarity I’ve gotten is from Pegasus. I hope with his help we all can get this working.

Guys, I’m out for now, unfortunately. It’s 35°C here, which means it’s time to head to the lake. :wink:

Get cool! Thanks for your help . . . Mark

Yes enjoy !!

Many thanks Mark for the simple, straight forward explanation !!