Component and module to manage unique seo title, description, keywords and unique text associated with a page

Installs: 1 102

Dependents: 0

Suggesters: 0

Stars: 18

Watchers: 4

Forks: 6

Open Issues: 3


dev-master 2015-04-09 14:16 UTC


If you need set unique seo title, description associated with a page this is your extension, you can also add a html text using a wysiwis tool to add bold and links and improve your SEO in page with a unique content.

Set this fields using a module to manage all this functionality.

Use internally a md5 hash to made a unique id with (Host + Path) to identify pages and yii cache system and tag dependency to improve speed


The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist jpunanua/yii2-seotools "*"

or add

"jpunanua/yii2-seotools": "*"

to the require section of your composer.json file.


Run the following command in Terminal for database migration:


yii migrate/up --migrationPath=@vendor/jpunanua/yii2-seotools/migrations


yii.bat migrate/up --migrationPath=@vendor/jpunanua/yii2-seotools/migrations


A simple exmple of turning on seotool component.

'components' => [
        'seotools' => [
            'class' => 'jpunanua\seotools\Component',

Turning on the seotools Module:

Simple example:

    'modules' => [
        'seotools' => [
            'class' => 'jpunanua\seotools\Module',
            'roles' => ['@'], // For setting access levels to the seotools interface.


Once the extension is installed, simply use it in your code by :

 // @param bool $setCanonical true, try to create a canonical url and og url, action needs to have params
 // @param bool $checkDb try to get from DB params, true: try to get info from DB if it doesn't find save a new field
 // associated to current host + '/' + path, false: it just set the params give in the call. The db params has priority
 // over the call function params. It does a merge
$setCanonical = false;
$checkDb = true;
Yii::$app->seotools->setMeta(['title' => \Yii::t('title','A good title for this page')], $setCanonical, $checkDb);

You can invalidate the cache save records calling

\yii\caching\TagDependency::invalidate(Yii::$app->cache, jpunanua\seotools\Component::CACHE_TAG);


URLs for the seotools manage module: