PHPackages                             vinicius73/seotools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. vinicius73/seotools

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

vinicius73/seotools
===================

A package containing SEO helpers.

v1.5.beta(9y ago)245.2k↓100%8[2 issues](https://github.com/vinicius73/SeoTools/issues)MITPHPPHP &gt;=5.3.0

Since Jul 28Pushed 9y ago4 watchersCompare

[ Source](https://github.com/vinicius73/SeoTools)[ Packagist](https://packagist.org/packages/vinicius73/seotools)[ RSS](/packages/vinicius73-seotools/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (6)Used By (0)

Vinicius73 / SEOTools
=====================

[](#vinicius73--seotools)

[![Total Downloads](https://camo.githubusercontent.com/a21b5da27ee8d246df5786a39aa88b85e2612418b7116ca7de1d05343afc88c5/68747470733a2f2f706f7365722e707567782e6f72672f76696e696369757337332f73656f746f6f6c732f646f776e6c6f6164732e706e67)](https://packagist.org/packages/vinicius73/seotools)

> **Warning!** This package still needs to have its optimized test.

---

> This package is a fork of

SEOTools is a package for **Laravel 4** that provides helpers for some common SEO techniques.

> \##For **Laravel 5** use [artesaos/seotools](https://github.com/artesaos/seotools)

Features
--------

[](#features)

- Ease of set titles and meta tags
- friendly interface
- Easy setup and custumização
- Support OpenGraph
- Support SiteMaps and SiteMaps Index
- Support images in SiteMap

Installation
------------

[](#installation)

### Composer / Packagist

[](#composer--packagist)

Require the package in your `composer.json`.

```
"vinicius73/seotools": "dev-master"

```

Run composer install or update to download the package.

```
$ composer update
```

### Providers

[](#providers)

Just register the service provider and the facades in `app/config/app.php` and you are good to go.

```
// Service provider
'Vinicius73\SEO\Providers\SEOServiceProvider',

// Facades (can customize if preferred)
'SEOMeta'     => 'Vinicius73\SEO\Facades\Meta',
'SEOSitemap'  => 'Vinicius73\SEO\Facades\Sitemap',
'OpenGraph'   => 'Vinicius73\SEO\Facades\OpenGraphHelper',
```

Configuration
-------------

[](#configuration)

Run your terminal: `php artisan config:publish "vinicius73/seotools"`
The configuration files are available from: `app/config/packages/vinicius73/seotools`

Using
-----

[](#using)

Using SEOTools is very easy and friendly.
Recommend using the `barryvdh / laravel-ide-helper` that make it much easier to develop if you use an IDE like NetBeans or PhpStorm

### MetaGenerator e OpenGraph

[](#metagenerator-e-opengraph)

```
class CommomController extends BaseController
{

	/**
	 * @return \Illuminate\View\View
	 */
	public function index()
	{
		SEOMeta::setTitle('Home');
        SEOMeta::setDescription('Isto é a minha descrição de página'); // is automatically limited to 160 characters
        OpenGraph::addImage('full-url-to-image-1.png');
        OpenGraph::addImage('full-url-to-image-2.png');

		$posts = Post::all();

        return View::make('myindex', compact('posts'));
	}

    /**
     * @return \Illuminate\View\View
	 */
    publicc function show($id)
    {
        $post = Post::find($id);

        SEOMeta::setTitle($post->title);
        SEOMeta::setDescription($post->resume);
        SEOMeta::addMeta('article:published_time', $post->published_date->toW3CString(), 'property');
        SEOMeta::addMeta('article:section', $post->category, 'property');
        // Vinicius73\SEO\Generators\MetaGenerator::addMeta($meta, $value, $name);
        SEOMeta::setKeywords($post->tags);
        // Vinicius73\SEO\Generators\MetaGenerator::setKeywords(['key1','key2','key3']);
        // Vinicius73\SEO\Generators\MetaGenerator::setKeywords('key1, key2, key3');
        OpenGraph::addImage($post->thumbnail_url);

        return View::make('myshow', compact('post'));
    }
}
```

### SiteMapGenerator

[](#sitemapgenerator)

By default SiteMapGenerator [controller uses a model](https://github.com/vinicius73/SeoTools/blob/master/src/Vinicius73/SEO/SitemapRun.php) that aims to facilitate the creation of sitemaps.
Its use is not mandatory and may be used freely quelquer route or controller, you can disable it in the configuration file.

#### Criando controller para SiteMap

[](#criando-controller-para-sitemap)

Change `classrun` in `app/config/packages/vinicius73/seotools` -&gt; `'classrun'  => 'SitemapRun',`
You can map any class yours.

> Remember to map the additional sitemaps you create by `routes.php`

```
class SitemapRun
{

    /**
	 * @var \Vinicius73\SEO\Generators\SitemapGenerator
	 */
	public $generator;

	public function __construct($generator)
	{
		$this->generator = $generator;
	}

	/**
	 * Run generator commands
	 */
	public function run()
	{
    	return $this->index();
	}

    public function index()
    {
        $this->generator->addRaw(
    		array(
				  'location'         => '/sitemap-posts.xml',
				  'last_modified'    => '2013-12-28',
				  'change_frequency' => 'weekly',
				  'priority'         => '0.95'
			)
		);

        return $this->response($this->generator->generate());
    }

    public function posts()
    {
        $posts = Post::all();

        foreach($posts as $post)
        {
            $images = $post->images;

            $element = array(
        			  'location'         => route('route.to.post.show', $post->id),
    				  'last_modified'    => $post->published_date->toW3CString(),
    				  'change_frequency' => 'weekly',
    				  'priority'         => '0.90'
    			);

            if ($images):
    			$element['images'] = array();
				foreach ($images as $image):
					$element['images'][] = $image->url();
				endforeach;
			endif;

            $this->generator->addRaw($element);
        }

        return $this->response($this->generator->generate());
    }

    /**
     * @param $sitemap
	 *
	 * @return \Illuminate\Http\Response
	 */
	private function response($sitemap)
	{
		return Response::make($sitemap, 200, array('Content-Type' => 'text/xml'));
	}
}
```

### In Your View

[](#in-your-view)

```

	{{SEOMeta::generate()}}
	{{OpenGraph::generate()}}

```

```

	Title | SubTitle

```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 55.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~290 days

Total

5

Last Release

3505d ago

Major Versions

v0.0.3 → 1.0.beta2013-12-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/87433b0d6b98d16ec1d0bc99dfd4efb7c00ed1e05ed1fc503a36ff89b9e82905?d=identicon)[vinicius73](/maintainers/vinicius73)

---

Top Contributors

[![bryantebeek](https://avatars.githubusercontent.com/u/2136273?v=4)](https://github.com/bryantebeek "bryantebeek (45 commits)")[![vinicius73](https://avatars.githubusercontent.com/u/1561347?v=4)](https://github.com/vinicius73 "vinicius73 (35 commits)")[![KeitelDOG](https://avatars.githubusercontent.com/u/14042152?v=4)](https://github.com/KeitelDOG "KeitelDOG (1 commits)")

---

Tags

laravelSitemapseometaopengraph

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/vinicius73-seotools/health.svg)

```
[![Health](https://phpackages.com/badges/vinicius73-seotools/health.svg)](https://phpackages.com/packages/vinicius73-seotools)
```

###  Alternatives

[artesaos/seotools

SEO Tools for Laravel and Lumen

3.3k5.1M60](/packages/artesaos-seotools)[arcanedev/seo-helper

SEO Helper is a framework agnostic package that provides tools &amp; helpers for SEO (Laravel supported).

332467.0k4](/packages/arcanedev-seo-helper)[calotype/seo

A package containing SEO helpers.

722.6k](/packages/calotype-seo)[honeystone/laravel-seo

SEO metadata and JSON-LD package for Laravel.

34744.1k](/packages/honeystone-laravel-seo)[fomvasss/laravel-meta-tags

A package to manage SEO (meta-tags, xml-fields, etc.)

3028.9k](/packages/fomvasss-laravel-meta-tags)[lionix/seo-manager

SEO Manager for Laravel Framework

2165.4k](/packages/lionix-seo-manager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
