Renatio SEO Manager Plugin
Demo URL: https://october-demo.renatio.com/backend/backend/auth/signin
Login: seomanager
Password: seomanager
Plugin adds SEO functionality to October CMS. It supports CMS Pages, RainLab.Pages, RainLab.Blog, October CMS Tailor out of the box. With one line of code can be attached to any October CMS model. One robust solution for all your SEO needs.
Features
- Support for CMS Pages, RainLab.Pages, RainLab.Blog
- Import default values from CMS Pages, RainLab.Pages, RainLab.Blog
- Open Graph support
- Robots meta configuration
- Canonical URLs
- 301 Redirects
- Easy edit robots.txt and .htaccess in CMS Settings
- Easy integration with other plugins
- Fully compatible with RainLab.Translate for multi-lingual support
- Fully support for October CMS Tailor
Why is this a paid plugin?
Something that is free has little or no perceived value. Users do not commit to free products and only use them until something else looks nice and is free comes along. When I invest my time in the development of a new plugin I commit to supporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by advertisements, upgrades or additional services like hosting or setup.
Did you know that 30% of your purchase or donation goes to help fund the October Project?
My plugins take many hours to develop (40-120+) and even more hours to document and maintain. My paid plugins have to pay for both this time, and the time I am spending on free plugins and less successful paid plugins. This means that it will take even a successful plugin years to become profitable. Please consider buying an extended license if you want me to continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that you feel is missing but valuable.
Like this plugin?
If you like this plugin, give this plugin a Like or Make donation with PayPal.
My other plugins
Please check my other plugins.
Support
Please use GitHub Issues Page to report any issues with plugin.
Reviews should not be used for getting support, if you need support please use the Plugin support link.
Icon made by Darius Dan from www.flaticon.com.
This plugin is also included into the following bundle
Usage
After installation all CMS pages, Static pages, Posts, Categories will now display additional tabs with SEO and Open Graph fields.
To display meta information on frontend page you must only place single SEO component in theme layout head section.
[seoTags] == <!DOCTYPE html> <html> <head> {% component 'seoTags' %} </head>
October CMS Tailor
Plugin adds two mixins with Meta and Open Graph fields to Tailor. You just need to add them to your blueprint Entry
in fields
section like so:
_seo_meta_fields: type: mixin source: Renatio\SeoManager\MetaFields _seo_og_fields: type: mixin source: Renatio\SeoManager\OgFields
After that remember to save and migrate blueprint or run php artisan october:migrate
command.
Settings
Plugin ships with a settings page. Go to Settings and you will see a menu item SEO configuration listed under SEO bookmark.
Settings allow you to specify SEO Title prefix/suffix.
You can write common meta tags used in all pages e.g.
<meta name="author" content="Renatio"> <meta name="viewport" content="width=device-width, initial-scale=1">
You can enable/disable Open Graph tags output, specify Open Graph site name and Facebook Application ID.
You can edit robots.txt file and .htaccess file.
Editing .htaccess file may break your site if not set up properly, so proceed with caution. This can be restricted by setting user permission.
SEO fields
Available SEO fields:
SEO Title
Defines the title of a document. Title tags are often used on search engine results pages (SERPs) to display preview snippets for a given page, and are important both for SEO and social sharing. Read more.
SEO Description
Meta descriptions are HTML attributes that provide concise explanations of the contents of web pages. Meta descriptions are commonly used on search engine result pages (SERPs) to display preview snippets for a given page. Read more.
Meta Keywords
A series of keywords you deem relevant to the page in question.
Meta Robots
The robots meta tag is not the same as the file called robots.txt. You should use these two together. Both are used by the search engines like Yahoo and Google. Read more.
Canonical URL
Canonicalization for SEOs refers to normalizing (redirecting to a single dominant version) multiple URLs. Read more.
301 Redirect
Redirection is the process of forwarding one URL to a different URL. There are three main kinds of redirects: 301, 302, and meta refresh. Read more.
More fields can be added on request.
Open Graph fields
Available Open Graph fields:
OG Title
The title of your object as it should appear within the graph, e.g., "The Rock".
OG Description
A one to two sentence description of your object.
OG Type
The type of your object, e.g., "article".
Og Image
An image URL which should represent your object within the graph.
Read more about Open Graph Protocol.
More fields can be added on request.
Integration with models
SEO fields can be attached to any October CMS model with single line of code. You just need to implement SEO Behavior in your model class like so:
public $implement = ['@Renatio.SeoManager.Behaviors.SeoModel'];
After implementing this behavior to your model class, SEO Manager will extend it with SEO fields.
The next step is to add SEO columns to models table. This can be done by running following command. This command will scan all models that are implementing SeoModel behavior and add SEO columns to the database tables.
php artisan seo:migrate-tables
To allow SEO Manager Plugin to recognize page with specific model attached you must pass it to the page view. This is
most often done in component onRun()
method like so:
$this->page['album'] = Album::find($id); // pass album record to page view
Extending SEO fields
Plugin will fire seo.extendSeoFields
event to allow for extensibility. This can be used to modify or add more SEO
fields. You can listen for this event like so:
Event::listen('seo.extendSeoFields', function ($fields) { // modify or add more fields return $fields; // remember to return modified fields array });
Similar approach can be used to extend Open Graph fields with seo.extendOgFields
event.
Model fields are saved to database, so you must add columns to renatio_seomanager_seo_tags
table before you can use
them.
Access SEO Tag before rendered on page
Plugin will fire seo.beforeComponentRender
event to allow for extensibility. This can be used to access page with
associated SEO Tag. The assigned model should implement SeoModel behavior.
/* * Assign new seoTag for product page */ Event::listen('seo.beforeComponentRender', function ($component, $page) { if ($page->url == '/products/:slug') { $component->seoTag = $page->controller->vars['product']; } });
Console commands
Plugin will create three new artisan commands for working with console.
php artisan seo:migrate-tables command will migrate tables for all models implementing SEO behavior to add SEO
columns. There is additional option --table=
that can be used to specify the database table where you want to add SEO
columns.
php artisan seo:patch 3.0 command will migrate data from renatio_seomanager_seo_tags
to models that implement
SeoModel behavior.
php artisan seo:import-cms command will import SEO from CMS pages.
php artisan seo:import-static command will import SEO from RainLab Static pages.
php artisan seo:import-blog command will import SEO from RainLab Blog posts and categories.
-
Marco Inward
Found the plugin useful on 10 Feb, 2020
Great plugin. But what's going on with the plugin when adding blogs? It is duplicated and takes up the whole page, making it super difficult to scroll and write blogs. Please fix! ?
-
Renatio author
Replied on 10 Feb, 2020
Thank you for the review. Please update to version 1.3.3.
-
CodeForge SRL
Found the plugin useful on 5 Feb, 2020
Would recommend keeping it in your standard developer toolbelt for OctoberCMS sites.
-
bitcraft gmbh
Found the plugin useful on 25 Jan, 2020
Hi, is there a solution to have translation?
Currently commented:
/*
- Currently RainLab.Translate Plugin does not support relation fields, waiting for fix. */ //$this->model->translatable = array_merge($this->model->translatable, (new SeoTag)->translatable);
-
Cy Messenger
Found the plugin useful on 9 May, 2019
Awesome plugin! However, when I collapse the component to reveal the html markup, the plugin no longer works i.e. the component variables don't pull through any SEO data.
Any ideas on how to fix this?
I am running SEO Manager version 1.2.2 and October build 454.
Cheers,
-
Gergo Csoma
Found the plugin useful on 11 Apr, 2019
I love this plugin. But somehow in my front page, the seo title get a plus seo title, which comes from blog categories... How can i fix this?
-
Renatio author
Replied on 7 Feb, 2020
If you still have this problem, than please create an issue on GitHub.
https://github.com/mplodowski/seomanager-plugin-public/issues
-
Taï-nui
Found the plugin useful on 23 Dec, 2018
Great plugin, easy and intuitive to set up, congratulations !
However i wonder if this is an issue : why the fields which are translatable into StaticPages context are not translatable into blog post context ? Possible fix please ? :)
Best regards and happy Xmas
-
Max
Found the plugin useful on 29 Oct, 2018
This plugin is essential for most of my projects, however I do have my own SEO fields in most of cases in my plugin's models. Using Event::listen beforeComponentRender and injecting my own data to the component. Since almost all my projects are multilingual this is very useful and I'm in full control of my language fields. I also have to rewrite the components default.htm since og:image in a default version can only be taken from Media finder. By adding few IF ELSEs I can use images from any place now.
-
Gavin Foster
Found the plugin useful on 5 Oct, 2018
Amazing plugin. Works out of the box and this is how SEO should be in OcotberCMS! Just one tiny problem...
Meta Robots Index and Meta Robots Follow don't do anything when I change the values to no index and no follow on a static page.
<meta name="robots" content="{{ seoTag.robots }}">
outputs:
<meta name="robots" content="index, follow">
and I want it to say when I set no index and no follow on the SEO tab of a page:
<meta name="robots" content="noindex, nofollow">
Thank you in advance!
-
Renatio author
Replied on 17 Nov, 2018
This should be fixed in v1.2.2.
-
Donovan Avila Pardo
Found the plugin useful on 10 Aug, 2018
beautiful
-
Paul
Found the plugin useful on 25 Jul, 2018
It's like magic! But.. can you make the "SEO Title" and "Og Title" just copy/use the same as the "Post title"? The same for the description! It's kinda annoying to write the same thing 3 times.
Everything else is just wonderful!
Cheers!
-
Renatio author
Replied on 25 Jul, 2018
Thanks for the review!
It is not documented, but just leave SEO Title and Description empty. They will default to your post Title and Excerpt/Description. As for OG Title and Description, they will default to SEO Title and Description if left empty.
Cheers!
-
Mathieu Tanguay
Found the plugin useful on 30 Apr, 2018
I experienced a crash at installation because my meta_description from my blog was too long.
According to the version.yaml. This is what happens: In 1.0.1: Set meta_description to length of 160 In 1.0.2: Call the import default command which checks that the field does not go over 255 In 1.1.5: Increase the field length to 255
In my case, I had to remove the line with import_default_values.php, reinstall the plugin and then run manually the import command.
The call to import_default_values.php should be moved after 1.1.5 in version.yaml.
-
Renatio author
Replied on 12 Jul, 2018
Thanks for support!
This should be fixed from version 1.1.10.
-
Andrew Till
Found the plugin useful on 25 Aug, 2017
Absolutely brilliant. Very quick to install and I love the way it works with models.
-
Devin Green
Found the plugin useful on 11 Apr, 2017
Best SEO plugin. Would be even better if you extended it to JKShop
-
Renatio author
Replied on 12 Jul, 2018
Thanks for support!
Please contact JKShop and ask them to add support for my SEO plugin.
They will only need to add this line of code to models where SEO fields should be available:
public $implement = ['@Renatio.SeoManager.Behaviors.SeoModel'];
-
Alpen.Space
Found the plugin useful on 9 Apr, 2017
Thank you for this nice plugin. You don't need much time to set it up. Everything is self-explanatory.
It would be nice if the meta title and the description are translatable. Can you add this feature please?
-
Gerald Schandl
Found the plugin useful on 13 Sep, 2016
Great plugin! Helps a lot!!!
-
5.0.6 |
Make og image translatable. Allow to set default og image with component event. Sep 11, 2024 |
---|---|
5.0.5 |
Update SEO chars limit to latest recommendations. Nov 24, 2023 |
5.0.4 |
Fix extending SEO Tag. Jan 15, 2023 |
5.0.3 |
Add demo URL. Nov 12, 2022 |
5.0.2 |
Fix Tailor SEO blueprints. Nov 08, 2022 |
5.0.1 |
Improve default value for import CMS pages. Nov 08, 2022 |
5.0.0 |
Require October CMS 3.1. Add support for Multisite. Oct 15, 2022 |
4.0.2 |
Fix twitter media link. Jul 11, 2022 |
4.0.1 |
Composer config. Jun 17, 2022 |
4.0.0 |
Require October CMS 3.0. Add October CMS Tailor support. Jun 13, 2022 |
3.1.2 |
Fix error on migration Translate plugin. Feb 23, 2022 |
3.1.1 |
Add check for Translate plugin. Feb 23, 2022 |
3.1.0 |
Require October CMS 2.1. Jan 04, 2022 |
3.0.1 |
Fix issue with migration tables console command. Sep 21, 2021 |
3.0.0 |
Add support for translatable SEO fields for models. Sep 20, 2021 |
2.0.2 |
Update documentation. Sep 17, 2021 |
2.0.1 |
Add support for October v2.0. Drop support for October v1.0. Sep 17, 2021 |
1.3.4 |
Fix config for media path issues. Aug 05, 2021 |
1.3.3 |
Fix adding SEO fields twice error. Feb 10, 2020 |
1.3.2 |
Fix repeater field error on Static Pages. Feb 10, 2020 |
1.3.1 |
Fix link policy ignored in currentUrl. Thanks @petehalverson. Feb 07, 2020 |
1.3.0 |
Fix CMS pages translation. Feb 07, 2020 |
1.2.2 |
Fix issue with robots and 301 redirect properties. Nov 17, 2018 |
1.2.1 |
Fix issue with extending form fields for models. Nov 17, 2018 |
1.2.0 |
!!! Change event parameters for plugin extension. See upgrade guide. Nov 17, 2018 |
1.1.11 |
Add default value for meta robots tag. Jul 13, 2018 |
1.1.10 |
Fix installation and import issues. Jul 10, 2018 |
1.1.9 |
Fix adding SEO fields to pivot models (edge case). Feb 25, 2018 |
1.1.8 |
Ensure OG image dimensions are set. Feb 02, 2018 |
1.1.7 |
Fix adding SEO fields inside repeater fields. Feb 02, 2018 |
1.1.6 |
Make polymorphic fields nullable. Feb 02, 2018 |
1.1.5 |
Increase meta title and description fields length. Feb 02, 2018 |
1.1.4 |
Fix adding SEO fields for model with pivot Dec 02, 2017 |
1.1.3 |
Fix attaching morphOne relation to model. Nov 24, 2017 |
1.1.2 |
Fix attaching SEO fields to model with empty tab fields. Nov 24, 2017 |
1.1.1 |
Fix RainLab.Blog installation issue. Nov 24, 2017 |
1.1.0 |
!!! Update only for Laravel 5.5 LTS Aug 14, 2017 |
1.0.7 |
Fix showing Seo fields in repeater Apr 22, 2017 |
1.0.6 |
Fix repeater field error in RainLab.Pages plugin Mar 12, 2017 |
1.0.5 |
Fix spaces on prefix/suffix title Sep 01, 2016 |
1.0.4 |
Fix bug for PHP version < 5.6 Aug 31, 2016 |
1.0.3 |
Import SeoExtension Settings Aug 05, 2016 |
1.0.2 |
Import data Jul 30, 2016 |
1.0.1 |
First version of Seo Manager Jul 26, 2016 |
Upgrading To 1.1.0
Plugin requires October CMS build 420+ with Laravel 5.5 and PHP >=7.0.
Upgrading To 1.2.0
Parameters for seo.beforeComponentRender
event were changed. Now the first parameter is $component
itself. You can
access it seoTag
property as in example in README. The second parameter is the $page
variable.
Upgrading To 2.0.1
Plugin requires October CMS version 2.x with Laravel 6 and PHP >=7.2.9.
Drop support for October CMS version 1.x.
Upgrading To 3.0.0
Remove seo_tag relation for models implementing SEO model behavior
October CMS and RainLab.Translate does not fully support polymorphic relation for models.
To solve this problem and make integration with other models available you must add columns to model database table. There is new console command that will scan for all models that implement SeoModel behavior and migrate database tables to add required columns.
php artisan seo:migrate-tables
There is also new command that will migrate old data from renatio_seomanager_seo_tags
to models that implement
SeoModel behavior.
php artisan seo:patch 3.0
Access SEO Tag before rendered on page
Access SEO Tag before rendered on page changed. Now you just need to return the model, that will have SEO fields.
The seo_tag
relation on model is no longer supported. Read more in documentation.
/* * Before */ Event::listen('seo.beforeComponentRender', function ($component, $page) { if ($page->url == '/products/:slug') { $component->seoTag = $page->controller->vars['product']->seo_tag; } });
/* * Now */ Event::listen('seo.beforeComponentRender', function ($component, $page) { if ($page->url == '/products/:slug') { $component->seoTag = $page->controller->vars['product']; } });
Upgrading To 4.0.0
Plugin requires October CMS version 3.0 or higher, Laravel 9.0 or higher and PHP >=8.0.
Add October CMS Tailor support.
Drop support for October CMS version 2.x.
Upgrading To 5.0.0
Plugin requires October CMS version 3.1 or higher.
Add October CMS Multisite support for RainLab.Translate plugin v2.0