Product support

Get help in the plugin support forum.


With support for CMS Pages, RainLab.Pages and RainLab.Blog; You can add dynamic meta and Open Graph tags, structured data, and generate a sitemap.xml automatically, for all your pages and models from the backend area with just a few clicks and a few lines of code.

⭐ Dynamic meta tags

SEO Title

You will be able to use twig syntax inside the SEO fields of CMS/static pages and blog posts, to dynamically generate the value of those meta tags.

Multilingual support for SEO tags

The power of twig inside meta tags enables seamless support for multilingual SEO tags using the RainLab.Translate plugin.

⭐ Automatic sitemap.xml

Automatically generate a sitemap.xml for all your CMS/static pages, posts and custom models with the flip of a switch!

⭐ Structured Data (schema.org)


Enhance the display of your site in Google search results with schema.org structured data. Add it to any page using individual components or snippets.

Supported types:

  • Article
  • Product
  • VideoObject

⭐ Open Graph & Twitter cards

open graph example

Engage more people in social media with enhanced links, using Open Graph and Twitter card tags.

Currently supported:

  • og:title and twitter:title
  • og:description and twitter:description
  • og:image and twitter:image
  • og:type
  • og:site_name

⭐ Configure your robots.txt

Convenient way to enable/disable and setup the content of the robots.txt in the settings page.

For more information on these features and how to use them, please feel free to read the plugin documentation.

For free support, please use the plugin forum and help will be on the way as fast as possible.


The seo component

This component is the head of all other components, from it, all the meta tags and schema.org scripts are rendered. If you want to use this plugin for CMS, static and blog post pages; then you must to place this component inside the head tag of each layout that will render SEO meta tags and structured data.

seo component screenshot example

Dynamic SEO meta tags

SEO meta tag fields support twig syntax, this makes them more flexible when you have a website with many records and you need to use their attribute values for search results, or generate the title and description of the page from a model field.

seo fields screenshot

RainLab.Translate support

The twig syntax is very helpful, it allows you to do something like this:

{{ "This is the meta title of my page" | _ }}

After rendering the page the first time, the string will be registered by the RainLab.Translate's _ filter as a translation message. This means that these meta tags can become multilingual.


  • Sitemap.xml fields don't use dynamic fields.
  • If you are using only one {{ }} inside a the property field of a schema.org component, you need to add at least one trailing space, from the code of the page not the October interface. Example:
description = "{{ episode.serie.summary }} " <-- this is the trailing space

Automating the sitemap.xml

To automatically generate the sitemap.xml, follow the steps below:

  1. Make sure you have the sitemap.xml enabled in the settings page.

    enable sitemap.xml in settings page screenshot

  2. Go to the editor page of your CMS, static or blog post page, and on the "SEO" tab check the "Enable in the sitemap.xml" checkbox.

    sitemap checkbox screenshot

  3. Visit: http(s)://yourdomain.tld/sitemap.xml

Note: The fields in the "Sitemap" section are not dynamic.

Custom models

If you have a custom model that you want to generate the links from, add the full class name of your model in the "Settings" tab of the CMS page. If the page has the blogPost component, you don't need to set the Model class.

model class field screenshot

Important: The URL parameters of the page, for example: /post/:slug, will be replaced by the attribute values of the model with the same name, so you must ensure the model has an attribute called slug in this case.

Adding structured data (schema.org)

The plugin comes with components that define some schema.org objects (Article, Product and VideoObject). These components are also available as snippets for RainLab.Pages and their properties support twig syntax.

It's highly recommended that you read the Google guidelines if you're not familiar with structured data.

To use these components, all you need to do is drag the ones you need from the inspector to the page editor. Do not place them inside the page code as they are rendered by the seo component.

structured data component screenshot

Important: component field values enclosed in {{ }} are automatically interpreted by October as external properties (https://octobercms.com/docs/cms/components#external-property-values). If you have only one brace pair, then the output will be an empty string if October can't find the external property. As a workaround, You must add a trailing space like this:

trailing space at the end of the value

However, if using multiple braces you won't need to add any space.

Open Graph & Twitter cards

The configuration is done via the Open Graph tab. If you don't know about these tags read the guide for Open Graph from Facebook and the guide for Twitter cards from Twitter.

Note: Twitter cards are automatically set from the OG * fields.

open graph tab screenshot

Currently supported tags are:

  • og:titledefaults to page meta_title | page title
  • og:description defaults to page meta_description | site description in the Settings page
  • og:image defaults to page image|site image in Settings page - Open Graph tab
  • og:type defaults to "website"
  • og:site_name set in the settings page.
  • twitter:title from og:title
  • twitter:description from og:description
  • twitter:image from og:image

Note: read the guidelines from Facebook and Twitter linked above for recommended values on these tags.


Although redirection isn't implemented, there is a plugin better suited for the job called Redirect, with many (and powerful) features to handle any possible use case.

  • Found the plugin useful on 29 Mar, 2019

    It's working well.

  • author

    Replied on 29 Mar, 2019

    Ronny thank so much you for your support and feedback, this motivates me to continue to improve the plugin so it can be more useful to people.


!!! Bug Fix: Removed initialization of Twig StringLoader Extension

Apr 02, 2019


plugin will now require VojtaSvoboda.TwigExtensions plugin as dependency to avoid an error with template_from_string().

Mar 29, 2019


fixed a bug that displays a fatal error in pages with the blogPost component.

Mar 29, 2019


!!! fixing bugs with blog posts and static pages.

Mar 29, 2019


The "advanced robots" and canonical url fields now support multiple twig syntax.

Mar 29, 2019


Added support for multiple twig braces in the dynamic fields >> {{hello}} ~ {{bye}}.

Mar 29, 2019


schema.org components won't convert dates/times to iso-8601 anymore.

Mar 29, 2019


New twig filters; d_8601 and i_8601 for help with iso-8601 dates and intervals, inside dynamic fields.

Mar 29, 2019


If using only one {{ }} in schema.org component fields, you must add a trailing space. Read the docs for more info.

Mar 29, 2019


schema.org components won't need to check "enable twig syntax". Must use twig braces {{ }}.

Mar 23, 2019


!!! Minor breaking changes

Mar 23, 2019


Bug fixes and README.md update

Dec 11, 2018


Added arcane_seo_options column to rainlab_blog_posts

Dec 07, 2018


Plugin initialized

Dec 05, 2018


You need to install VojtaSvoboda.TwigExtensions to use dynamic meta tags


When using twig syntax inside schema.org components: if you use only one pair of {{ }}, remember to add a trailing space. Otherwise October will think that {{ title }} is an external property instead of your internal title variable, and will likely output nothing.