Introduction

A Smart SEO module is created to solve the issues of the common SEO tasks of EE. With its help, the user can add unlimited SEO fields according to the requirements. This addon helps to bind SEO data in the channel entry and category, edit the robot.txt file, and fetch the data of its previous version. The user can use the customized SEO data which is called FLY SEO. The social media connectivity for this addon is very easy. This addon gives the benefits of Google Analytics and Google Tag Manager without having to worry about writing codes for them. Redirect settings have never been easier. The user can also link SEO data with custom fields of categories and channels.

Compatibility

EE Compatible Version: EE4, EE5, EE6.

Features

General Settings

Add multiple custom fields for SEO data which will automatically get reflected in all the SEO data forms like channel entry, category SEO, fly SEO, and custom connectivity fields.

This is the setting to Enable/Disable Breadcrumbs on-site. You can make basic changes in Breadcrumbs according to your requirement.

Webmaster tools

This feature will add a verification meta tag on the website’s home page. Follow the links to the different Webmaster Tools and look for instructions for the meta tag verification method to get the verification code.

Outdated Content

This option will enable the users to show the list of all the entries which have not been updated from the last six month.

This feature requires a Page URL which is used for the XML sitemap. According to this feature requirement, we need to count links from the Content section, hence, we need to set the Content field for each Channel and Page URL for each entry, only then this feature will work and fetch the exact data.

Custom Seo fields

Add multiple custom fields for SEO data which will automatically get reflected in all the SEO data forms like channel entry, category SEO, fly SEO, and custom connectivity fields.

Social connectivity for schema

Add the social media pages’ URLs which will automatically generate schema javascript code and incorporate them in the pages.

Robot.txt (Edit and revert feature)

This feature allows for editing robot.txt from the Smart SEO control panel. The user has to make sure this file has read-write permission. It also makes it easier to fetch the previous content of the robot.txt file.

Htaccess (Edit and revert feature)

Just like Robot.txt file saves the htaccess files revision list, this setting will allow the users to view the revision list of htaccess files and manage them. Users can also restore the old changes back to the htaccess file.

Redirects

With the help of this feature, you can set redirects with different conditions and bind them with a start date and end date.

Category SEO

This feature is useful when the user wants to bind SEO data with a specific category. Select the category from the Smart SEO control panel and add SEO data.

With the help of this feature, the user can bind SEO data fields with custom fields of the channels and categories.

Schema

The tags or words used by online marketing agencies can be used to communicate with the search engines as it helps to provide better results. Schema.org offers a list of “shared code vocabularies” in a simple format known as Microdata and JSON-LD. These categories have their own codes/tags.

Readability Analysis

The readability study examines your content to ensure that it is simple to read, increasing the likelihood that readers will grasp it quickly. You’re also slaying two birds with one stone by creating well-structured and well-written content.

FLY SEO

It is a very useful feature of Smart SEO. With its help, the user can create custom SEO data and bind them with pages by specifying fly_id or fly_url_title.

Import/Export Settings

Option to import Metadata into entries and Category entry by selecting and mapping fields. For that, users need to set one unique field for matching entries and add mapped content. The users can import CSV files and XML files.

Installation

Follow below steps to install Smart SEO version:

EE4, EE5 and EE6:

  1. Download and Extract ZIP file of the module. (We recommend to use the latest version.)
  2. Copy Smart_Seo > system > user > addons > smart_seo folder to “Your Site > system > user > addons” Folder.
  3. Copy Smart_Seo > themes > user > smart_seo folder to “Your Site > themes > user” Folder.
  4. Login to backend panel with Super admin credentials.
  5. Go to “Developer > Add-Ons” and Install Smart SEO module.

Note: If you purchased the addon from Devot:ee then you can get the license key from the licenses tab in your profile.

General Settings

This form lets the user fill the fields of the general settings and save them. Some of these fields are prefilled. This addon will provide the best results when the user will fill all the fields carefully.

General setting form (Default view)

There are multiple fields that can be changed as per your requirements. Details about those fields are given below::

  1. Site name:
    This field automatically fills with installation but the user can edit it.
  2. Logo:
    You can add a logo of your site. This field has “No Image” as a default.This logo image will be used in schema javascript code if the user does not set any image then no image will be set in schema code.
  3. Environment:
    There are two option for this field

    • Production
    • Staging

    Production – select this radio button when the site is live with real traffic.

    Staging – select this field when this is a copy of a live site and used for staging purpose only.

  4. Add trailing slash in Canonical URL:
    Set or unset trailing slash in canonical url.
  5. Canonical URL with pagination links? (i.e., P10, P20) :Set or unset Canonical URL with pagination links.
  6. Smart SEO Template:
    This is a prefilled field with installation with default tag data.
    This tag data will be used when user render the SEO data with

     {exp:smart_seo:render entry_id="100"}
  7. Default keywords:
    Users can set default keywords.
    These keywords will be used while users have not set any keywords at any channel entry, category and not mapped any entry or category.
  8. Default description:
    Users can set a default description.
    This description will be used while users have not set any description at any channel entry, category and not mapped any entry or category.
  9. Default Title Postfix:
    This is a prefilled field with installation with default tag data.
    user can set any title postfix from the given options.
    Examples :

    title | sitename
    title - sitename
    title ~ sitename
  10. Enable XML settings on/off:
    Enable the XML sitemaps that Smart SEO generates. A good XML sitemap acts as a roadmap of your website that leads Google to all your important pages.
  11. Google Analytics Code:
    Only enter the ID, e.g.: UA-XXXXXX-XX, not the entire script code.read more
  12. Google Tag Manager Code:
    Only enter the ID, e.g.: GTM-XXXXXX, not the entire script code.read more

Breadcrumbs Settings

This is the Settings of make Enable/Disable Breadcrumbs on site also you can make basic changes in Breadcrumbs.

Breadcrumbs settings form

Enable Breadcrumbs –
Option to enable/disable the Breadcrumb settings from the admin panel of the website.

The setting will allow users to select and chose the following parameters:

  1. Separator between breadcrumbs.
  2. Breadcrumb Start Tag.
  3. Breadcrumb End Tag.
  4. Item Start Tag.
  5. Item End Tag.
  6. Anchor text for the Homepage.
  7. Prefix for the breadcrumb path.
  8. Bold the last page – Last Page title makes bold font.
  9. The Breadcrumbs setting will come with a template code that the users can embed in their code and save the settings.

Webmaster Tools

This is the Settings of webmaster tools verification.

Webmaster tools form

Webmaster Tools verification:
The tool is used if the website content is not verified by different platforms.

This feature will add a verification meta tag on the website home page. Follow the links to the different Webmaster Tools and look for instructions for the meta tag verification method to get the verification code.

Users can get the verification code for the following platforms:

  1. Baidu verification code
  2. Bing verification code
  3. Google verification code
  4. Yandex verification code

Outdated Content

This is the Settings of Outdated Content.

Outdated Content form

Outdated Content verification:
Option to enable/disable the outdated content.

This option will enable the users to show the list of all entries which have not updated from the last six month.

Text link Counter

This is the Settings of Text link counter.

Text link counter form

Text link counter verification:
Option to enable/disable the counter of the internal text links present in the post. The counter will count the number of internal links in your post and the number of links to your post. The text link counter helps you improve your site structure.

This feature also requires a Page URL which is used for XML sitemap. According to this feature requirement we need to count links from the Content section hence we need to set the Content field for each Channel and Page URL for each entry, only then this feature will work and fetch the exact data.

Custom SEO

SEO is very vast. Sometimes users need to add many different fields other than default fields.
But Smart SEO takes care of it nicely, by adding more necessary SEO fields.

Custom SEO Fields

Multiple fields can be changed as per your requirements. Details about those fields are given below:

The added field from here will be displayed at all the pages where the user can set the SEO data.

  1. Type:
    Users can select any of the given types.
  2. Name:
    Name of the field.
  3. Instructions:
    Fill in the instructions that appear in the publish forms.
  4. Require field:
    Set field required or not by the toggle.
  5. Key name:
    The key name for the SEO field.
    Ex.

    <meta property="og:type" content="website">
  6. Value name:The value name for the SEO field.
    Ex.

    <meta property="og:type" content="website">
  7. Maximum characters:
    Users can set the maximum character limit for the field data.
  8. Text formatting:
    Users can set text formatting
  9. Allow override?:
    Users can allow or disallow field data.
  10. Text direction:
    Users can set text direction.
  11. Allowed content:
    User restricts the data input type and selects any one option from given options.
  12. Field tools:
    Users can allow showing the file chooser.

Social Connectivity

It allows the user to add his social media URLs of the Facebook page, Instagram, Twitter, MySpace, Youtube, Linkedin, and Google+. These links will be reflected in javascript schema code.

There are multiple social url input fields. Users can add any of the fields which will be inserted in the javascript schema code.

 <script type="application/ld+json">
                {
                    "@context":"https:\/\/schema.org",
                    "@type":"Organization",
                    "url":"your-site-url/",
                    "sameAs":
                        ["your-facebook-page-url","your-twitter-page-url","your-instagram-page-url","your-linkedin-page-url","your-myspace-page-url","your-pinterest-page-url","your-youtube-page-url","your-plus-google-page-url"],
                    "@id":"your-site-url/#organization",
                    "name":"your-site-name",
                    "logo":""
                }
            </script>

Robot.txt

This functionality allows the user to edit the robot.txt file. The user must ensure that the robot.txt file has the necessary read-write permission.

Revision list allows the user to check the previous data of the robot.txt which is modified and updated by the user. It helps to revert the data of the robot.txt file when required.

Robot.txt file edit form

Robot.txt revision list

Htaccess File Code

The option will enable the users to change the htaccess file from the admin panel.

Note: Anything you can do with a .htaccess file you can do with the server main configuration file better! So, Please take backup or sure about the code before adding in this option.

Htaccess File Code Edit Page:

Htaccess Revision list:

Htaccess File Code:
Just like Robot.txt file saves htaccess files revision list, the setting will allow the users to view the revision list of htaccess files and be able to manage them. Users can also restore the old changes to htaccess file.

Redirects

The user can add the multiple URL redirects with the help of Create Redirects form. The user can create a temporary redirect using this feature and can bind it with a start date and end date. The user can also set redirect methods like 301-moved permanently, 302- found, 307 – temporary redirect, 410 – content deleted, and 451 – unavailable for a legal reason.

With the help of Redirects, the user can set internal or external links as well. The user can bind this redirect with start date and end date. If both these fields are left blank, then there will be no binding of any sort. If the user mentions only the start date, it will begin with the start date. But if only the end date is mentioned, it will start with the current date and end with the mentioned date.

Redirect setting form (Default view)

Multiple fields can be changed as per your requirements. Details about those fields are given below:

  1. Original URL:
    Users must have to add the original URL.
  2. Redirect URL:
    Users must have to add a redirect URL (internal or external).
  3. Redirect Method:
    Users must choose any one of the given redirect methods.
  4. Start Date:
    Users can insert start date, from this date redirect will be started.
  5. End Date:
    Users can insert an end date, from this date redirect will be paused.

Category SEO

It is helpful to set SEO data for a specific category. If the user wants to set SEO data for a category, select that category from the smart SEO control panel and set the SEO data.

Category Group List

Category List

Category Group SEO edit form

Link Custom Fields

This feature allows the user to link the channel fields and category fields with SEO fields. It is very simple to use. The user has to select the appropriate field that he wants to link with the desired SEO field.

Smart SEO – Link Custom Fields (channel and category)

Step 1 :
Select the channel or Category option to link ( Here I select channel ).

Smart SEO – List of Fields

Step 2 :
Select a channel or category group to link.

Smart SEO – Mapping Form

Step 3 :
Map the SEO field with the appropriate channel/category group field.

Schema

The tags or words used by online marketing agencies can be used to communicate with the search engines as it helps to provide better results. Schema.org offers a list of “shared code vocabularies” in a simple format known as Microdata and JSON-LD. These categories have their own codes/tags.

We offer the following Schemas that can be created by the admin side. You can publish the schemas in front of different entries and channels.

  • Article Schema
  • Person Schema
  • Service Schema
  • Local Business Schema

Create New Schema – Users can create various schemas based on different types of schemas. You can create a new schema by adding the schema name and type according to your content. You can select the channel for which schema is being created.

After that, you can type and select a channel. Press the Save button and select another screen to map the content field with predefined schema parameters.

After the Mapping is done, the schema generation process will be carried out. You can add the schema to your website frontend in the Head section. You can add one shortcode in your website head tag as follows:

{exp:smart_seo:render_schemadata channel_title='{layout:p_url}' url_title='{layout:entry_url_title}' schema_title='my_article' }

Where {layout:p_url} is Channel Title and {layout:entry_url_title} is URL title of the current entry. It can be automatically fetched at the time of rendering. The last one ‘my_article’ is the Schema Title that you have created in the add-on schema list.

You can add all schema in the same way. If you want to add a local business schema, we offer a separate setting as it will be a global schema for the website. You can add your website details in the schema as shown below:

Article Schema: Magazines

An article, such as a news article or piece of an investigative report. Newspapers and magazines have different types of articles and this is intended to cover them all. For Schema structure, we follow – https://schema.org/Article, and based on that, we add the required fields in our structure.

Person Schema: It helps you to inform the search engines that you’re talking about a person, an event, a product, a new job position, or something else. As stated above, we follow the person schema structure from https://schema.org/Person.

Service Schema: Service schema enhances service business SERP rankings while local business schema boosts local search results via Google My Business. It’s a service provided by an organization, e.g. delivery service, print services, web service, etc. Here is a different parameter for schema – https://schema.org/Service but we add what is required for our standard service schema.

Local Business Schema: A local business schema is a form of structured data markup code that you may use on your website to help search engines figure out what kind of business you are into and what you do. As a primary ranking factor, this is a good technique to assist optimize your website for local SEO. We follow schema structure from https://schema.org/LocalBusiness site.

For Local Business schema, we have created a separate Shortcode because it’s rendering common information of the site on the header.

{exp:smart_seo:render_local_business_schema}

Just put the above code in the header file and it automatically fetches data from our add-on Local business setting page.

So, A schema is a cognitive framework or concept that helps organize and interpret information. Schemas can be useful because they allow us to take shortcuts in interpreting the vast amount of information that is available in our environment.

Readability Analysis

The readability study examines your content to ensure that it is simple to read, increasing the likelihood that readers will grasp it quickly. You’re also slaying two birds with one stone by creating well-structured and well-written content.

There is different evaluation of readability measurement as below:

  • Average sentence length
  • Syllable count
  • Percentage of multi-syllable words
  • Average word length
  • Familiarity with words
  • The complexity of sentences

So based on that we used an algorithm to measure your content readability and share a score out of 100. By checking that score, you can change your page or blog content and achieve a good score and it is good for your site visitors and readers of your blogs.

For Readability, we follow the Flesch-Kincaid readability score. It was developed by Rudolf Flesch and J. Peter Kincaid and it is the most widely used measure of readability.

The first number, Flesch-Kincaid reading ease, is based on a 0-100 scale, with a higher score indicating stronger reading ability. Low ratings imply that the text is difficult to comprehend.

Flesch-Kincaid reading ease formula: 206.835 – 1.015 x (words/sentences) – 84.6 x (syllables/words).

The second number, Flesch-Kincaid grade level, indicates which American school grade you would need to understand the information on the page.

Flesch-Kincaid grade level formula: 0.39 x (words/sentences) + 11.8 x (syllables/words) – 15.59.

It’s showing on the admin side as below:

In addition to this we cover some more analysis scores as below:

Transition word: (30% of the sentences in your text contain a transition word, the bullet will be green.)
Subheading distribution: (after Every 350 words need one Heading Tag)
Total Sentence: ( It has no defined limit but if it’s behave based on total words)
Sentence Length: (20 words limit)
Total Words: (Regular post or page needs greater than 300 words and if Cornerstone content page needs greater than 900 words)
Paragraph Length: (150 words limit)

So, all the above criteria have some predefined limits, and based on that analysis works for the content of your article and Page.

FLY SEO

Fly SEO is an advanced feature of the Smart SEO module which allows the user to set SEO on the fly.

When the user wants a specific SEO data other than the default data present in the category and channel SEO fields, the fly SEO data comes into the picture.

Fly SEO accesses the fly SEO data by passing fly_id and fly_title in the tag.

FLY SEO list

 

FLY SEO Form

Multiple fields can be changed as per your requirements. Details about those fields are given below:

  1. Title:
    Users must have to add a title for FLY SEO entry.
  2. URL Title:
    Users must have to add a URL title for FLY SEO entry.
  3. Status:
    Users must have to add the status of FLY SEO.
  4. SEO Title:
    Users can add an SEO title for FLY.
    if you do not specify anything the entry title will be used. Remember that most search-engines use a maximum of 60 characters for the title.
  5. SEO Meta Keywords:
    Users can add SEO keywords for FLY.
    A comma-separated list of keywords.
  6. SEO Meta Description:
    Users can add an SEO description for FLY.
    Write a short sentence or two that sums up the entry (many search engines will display this in the search results).

Import/Export Settings

This is the Setting for Import/Export of SEO Metadata..

Import/Export Settings:
Option to import Metadata into entries and Category entry by selecting and mapping fields. For that, users need to set one unique field for each matching entry and add mapped content. The users can import CSV files and XML files.

Note: Import/Export Setting works on the unique value that is the URL title of each entry that will be matched with the CSV/XML record to Site Channel entries.
The export option will export all the entered data of SEO along with the URL title. The import option will map the SEO field with its URL Title and import data in the same URL title entry.

Import Meta:
Using this option, users can import mapped data via imported CSV and XML files and set a file path or URL. The users will be able to view the list of import files with their related fields.

Create new Import From here:

Mapping imported fields:

List of created Imports:

Export Meta:
Using this option admin can use the below features:

  1. Users will be able to name the export file.
  2. An option to access the Export URL without login.
  3. Option to select the export type as private or public.
  4. Users can export all Meta for each Channel and Category in CSV & XML format.
  5. Users can view the export list with related fields.

List of created Export:

Create new Export fields:

Custom Sidebar

We provide one “customSidebar” function in the MCP file. You can add more menus in the sidebar of the add-on using this function.

/* To get dynamic menu in the add-on */    
   function customSidebar(){
       $sidebar = ee('CP/Sidebar')->make();
       $this->navSettings  = $sidebar->addHeader('Test Link', '');
   }

Render

Smart SEO module consists of rich features that make it easier for the user to perform search engine optimization tasks with efficiency.
You can fetch the SEO data of the specific channel, category, fly SEO entry by adding the appropriate parameters. Details for the same are shared below.
Smart SEO has the advanced tag which makes the task flexible for the user.

Render Tag

There is only one tag is used to fetch the SEO data from any particular:
There are 2 ways to get the SEO data with the render tag.

  1. Way 1
    If the user passes tag and not the tag data like below
    Then Smart SEO will generate all the tags mentioned in the default template tag of general settings.Example:

     {exp:smart_seo:render entry_id="{entry_id}"}
  2. Way 2
    If the user pass enclosed tag and not the tag data.Example:

     {exp:smart_seo:render parameter="value"} Content data {/exp:smart_seo:render}

    Parameters:

    1. default_title
    2. entry_id
    3. url_title
    4. category_id
    5. category_url_title
    6. fly_id
    7. fly_url_title

    Variables:

    1. custom_fields
    2. ss_postfix
    3. ss_site_name
    4. environment
    5. ss_canonical_url
    6. social_connectivity
    7. google_analytics
    8. google_tag_manager

Above Parameters can be used like below in Smart SEO

    1. default_title

The user can define the desired title with this parameter. This tag is useful when there is no entry in the category field of a specific page.

Example:

default_title = "Contact Us"

Note:- if you use this parameter then you can get only title no other SEO while you render the SEO data in the template.
Also if you use this parameter then another parameter entry_id, fly_id will be skipped.

    1. entry_id

You can fetch SEO data that you have entered in the Smart SEO tab of the entry page.

Example:

entry_id = "{entry_id}"
    1. url_title

You can fetch SEO data that you have entered in the Smart SEO tab of the entry page.

Example:

url_title = "{url_title}"
    1. category_id

You can fetch SEO data that you have entered in category SEO from by selecting the desired category.

Example:

category_id = "{category_id}"
    1. category_url_title

You can fetch SEO data that you have entered in category SEO from by selecting the desired category.

Example:

category_url_title = "{category_url_title}"
    1. category_url_title

You can fetch SEO data that you have entered in category SEO from by selecting the desired category.

Example:

category_url_title = "{category_url_title}"
    1. fly_id

You can fetch SEO data that you have entered in Fly SEO with fly_id.
Example:

fly_id = "1"
    1. fly_url_title

You can fetch SEO data that you have entered in Fly SEO with fly_url_title.

Example:

fly_url_title = "test_fly"

Above Variables can be used like below in Smart SEO

    1. custom_fields

You must use these variables in the render tag while you want to customize the tag data..

Example:

{custom_fields prefix="field"}
        {if field:name == "title"}
            
        {if:else}
            {if environment == "staging" && field:name == "robots"}
                
            {if:else}
                {if field:value}{/if}
            {/if}
        {/if}
    {/custom_fields}
    1. environment

This variable returns the environment type which you have selected in the general setting.

Example:

{environment}
    1. ss_canonical_url

You can fetch the canonical URL of the current page.

Example:

{ss_canonical_url}
    1. social_connectivity

You can social URLs with the variables which you have entered in the social connectivity page in the Smart SEO control panel.

Example:

{social_connectivity}
    1. google_analytics

This variable returns you a google analytics javascript code if you have entered google analytics code in the general setting page.

Example:

{google_analytics}
    1. google_tag_manager

This variable returns you a google analytics javascript code if you have entered google tag manager code in the general setting page.

Example:

{google_tag_manager}
    1. ss_site_name

You can fetch the site name which you have entered in Fly SEO with fly_id.

Example:

{ss_site_name}
    1. ss_postfix

You can fetch smart SEO data that you have entered in Fly SEO with fly_url_title.

Example:

{ss_postfix}

Full detailed template tags code

{exp:smart_seo:render entry_id="1611"}
    
        {if no_results}
            No result
        {/if}
        {custom_fields prefix="field"}
            {if field:name == "title"}
                <title>{field:value} {ss_postfix} {ss_site_name}</title>
            {if:else}
                {if environment == "staging" && field:name == "robots"}
                    <meta name="robots" content="noindex, nofollow" />
                {if:else}
                    {if field:value}<meta {field:property}="{field:name}" {field:content}="{field:value}"/>{/if}
                {/if}
            {/if}
        {/custom_fields}
    
        <meta property="canocinal" content="{ss_canonical_url}" />
        
        
        {social_connectivity}
    
        {google_analytics}
        {google_tag_manager}
    {/exp:smart_seo:render}

Changelog

V1.0.0

  • Initial Version

V2.0.0

  • Updated the license verification process and setup so please update the license in your add-on.

V3.0.3

  • EE6 Compatibility

V4.0.0

  • Schema generator
  • Readability functionality in channel entry page