SEOstats
SEOstats is a powerful open source PHP library to request a bunch of SEO relevant metrics.
Install / Use
/learn @eyecatchup/SEOstatsREADME
SEOstats: SEO metrics library for PHP
SEOstats is the open source PHP library to get SEO-relevant website metrics.
SEOstats is used to gather metrics such as detailed searchindex & backlink data, keyword & traffic statistics, website trends, page authority, social visibility, Google Pagerank, Alexa Trafficrank and more.
It offers over 50 different methods to fetch data from sources like Alexa, Google, Mozscape (by Moz - f.k.a. Seomoz), SEMRush, Open-Site-Explorer, Sistrix, Facebook or Twitter.
A variety of (private as well as enterprise) SEO tools have been built using SEOstats.
Dependencies
SEOstats requires PHP version 5.3 or greater and the PHP5-CURL and PHP5-JSON extensions.
Installation
The recommended way to install SEOstats is through composer.
To install SEOstats, just create the following composer.json file
{
"require": {
"seostats/seostats": "dev-master"
}
}
and run the php composer.phar install (Windows: composer install) command in path of the composer.json.
Step-by-step example:
If you haven't installed composer yet, here's the easiest way to do so:
# Download the composer installer and execute it with PHP:
user@host:~/> curl -sS https://getcomposer.org/installer | php
# Copy composer.phar to where your local executables live:
user@host:~/> mv /path/given/by/composer-installer/composer.phar /usr/local/bin/composer.phar
# Alternatively: For ease of use, you can add an alias to your bash profile:
# (Note, you need to re-login your terminal for the change to take effect.)
user@host:~/> echo 'alias composer="php /usr/local/bin/composer.phar"' >> ~/.profile
<hr>
If you have installed composer, follow these steps to install SEOstats:
```
# Create a new directory and cd into it:
user@host:~/> mkdir /path/to/seostats && cd /path/to/seostats
Create the composer.json for SEOstats:
user@host:/path/to/seostats> echo '{"require":{"seostats/seostats":"dev-master"}}' > composer.json
Run the install command:
user@host:/path/to/seostats> composer install Loading composer repositories with package information Installing dependencies (including require-dev)
- Installing seostats/seostats (dev-master 4c192e4) Cloning 4c192e43256c95741cf85d23ea2a0d59a77b7a9a
Writing lock file Generating autoload files
You're done. For a quick start, you can now
copy the example files to the install directory:
user@host:/path/to/seostats> cp ./vendor/seostats/seostats/example/*.php ./
Your SEOstats install directory should look like this now:
user@host:/path/to/seostats> ls -1 composer.json composer.lock get-alexa-graphs.php get-alexa-metrics.php get-google-pagerank.php get-google-pagespeed-analysis.php get-google-serps.php get-opensiteexplorer-metrics.php get-semrush-graphs.php get-semrush-metrics.php get-sistrix-visibilityindex.php get-social-metrics.php vendor
<hr>
#### Use SEOstats without composer
If composer is no option for you, you can still just download the [`SEOstats.zip`](https://github.com/eyecatchup/SEOstats/archive/master.zip) file of the current master branch (version 2.5.2) and extract it. However, currently [there is an issues with autoloading](https://github.com/eyecatchup/SEOstats/issues/49) and you need to follow the instructions in the comments in the example files in order to use SEOstats (or download zip for the development version of SEOstats (2.5.3) [here](https://github.com/eyecatchup/SEOstats/archive/dev-253.zip)).
## Usage
### TOC
* <a href='#configuration'>Configuration</a>
* <a href='#brief-example-of-use'>Brief Example of Use</a>
* <a href='#seostats-alexa-methods'>Alexa Methods</a>
* <a href='#alexa-traffic-metrics'>Alexa Traffic Metrics</a>
* <a href='#alexa-traffic-graphs'>Alexa Traffic Graphs</a>
* <a href='#seostats-google-methods'>Google Methods</a>
* <a href='#google-toolbar-pagerank'>Toolbar Pagerank</a>
* <a href='#google-pagespeed-service'>Pagespeed Service</a>
* <a href='#google-websearch-index'>Websearch Index</a>
* <a href='#google-serp-details'>SERP Details</a>
* <a href='#seostats-mozscape-methods'>Mozscape Methods</a>
* <a href='#seostats-open-site-explorer-methods'>Open Site Explorer Methods</a>
* <a href='#seostats-semrush-methods'>SEMRush Methods</a>
* <a href='#semrush-domain-reports'>Domain Reports</a>
* <a href='#semrush-graphs'>Graphs</a>
* <a href='#seostats-sistrix-methods'>Sistrix Methods</a>
* <a href='#sistrix-visibility-index'>Visibility Index</a>
* <a href='#seostats-social-media-methods'>Social Media Methods</a>
<hr>
### Configuration
There're two configuration files to note:
<ol>
<li>`./SEOstats/Config/ApiKeys.php`<br>
<em>Client API Keys (currently only required for Mozscape, Google's Pagespeed Service and Sistrix).</em>
</li>
<li>`./SEOstats/Config/DefaultSettings.php`<br>
<em>Some default settings for querying data (mainly locale related stuff).</em>
</li>
</ol>
<hr>
### Brief Example of Use
To use the SEOstats methods, you must include one of the Autoloader classes first (For composer installs: `./vendor/autoload.php`; for zip download: `./SEOstats/bootstrap.php`).
Now, you can create a new SEOstats instance an bind any URL to the instance for further use with any child class.
```php
<?php
// Depending on how you installed SEOstats
#require_once __DIR__ . DIRECTORY_SEPARATOR . 'SEOstats' . DIRECTORY_SEPARATOR . 'bootstrap.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
use \SEOstats\Services as SEOstats;
try {
$url = 'http://www.google.com/';
// Create a new SEOstats instance.
$seostats = new \SEOstats\SEOstats;
// Bind the URL to the current SEOstats instance.
if ($seostats->setUrl($url)) {
echo SEOstats\Alexa::getGlobalRank();
echo SEOstats\Google::getPageRank();
}
}
catch (SEOstatsException $e) {
die($e->getMessage());
}
Alternatively, you can call all methods statically passing the URL to the methods directly.
<?php
// Depending on how you installed SEOstats
#require_once __DIR__ . DIRECTORY_SEPARATOR . 'SEOstats' . DIRECTORY_SEPARATOR . 'bootstrap.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
try {
$url = 'http://www.google.com/';
// Get the Google Toolbar Pagerank for the given URL.
echo \SEOstats\Services\Google::getPageRank($url);
}
catch (SEOstatsException $e) {
die($e->getMessage());
}
More detailed examples can be found in the ./example directory.
SEOstats Alexa Methods
Alexa Traffic Metrics
<?php
// Returns the global Alexa Traffic Rank (last 3 months).
print Alexa::getGlobalRank();
// Returns the global Traffic Rank for the last month.
print Alexa::getMonthlyRank();
// Returns the global Traffic Rank for the last week.
print Alexa::getWeeklyRank();
// Returns the global Traffic Rank for yesterday.
print Alexa::getDailyRank();
// Returns the country-specific Alexa Traffic Rank.
print_r( Alexa::getCountryRank() );
// Returns Alexa's backlink count for the given domain.
print Alexa::getBacklinkCount();
// Returns Alexa's page load time info for the given domain.
print Alexa::getPageLoadTime();
Alexa Traffic Graphs
<?php
// Returns HTML code for the 'daily traffic trend'-graph.
print Alexa::getTrafficGraph(1);
// Returns HTML code for the 'daily pageviews (percent)'-graph.
print Alexa::getTrafficGraph(2);
// Returns HTML code for the 'daily pageviews per user'-graph.
print Alexa::getTrafficGraph(3);
// Returns HTML code for the 'time on site (in minutes)'-graph.
print Alexa::getTrafficGraph(4);
// Returns HTML code for the 'bounce rate (percent)'-graph.
print Alexa::getTrafficGraph(5);
// Returns HTML code for the 'search visits'-graph, using specific graph dimensions of 320*240 px.
print Alexa::getTrafficGraph(6, 0, 320, 240);
<hr>
SEOstats Google Methods
Google Toolbar PageRank
<?php
// Returns the Google PageRank for the given URL.
print Google::getPageRank();
Google Pagespeed Service
<?php
// Returns the Google Pagespeed analysis' metrics for the given URL.
print_r( Google::getPagespeedAnalysis() );
// Returns the Google Pagespeed analysis' total score.
print Google::getPagespeedScore();
Google Websearch Index
<?php
// Returns the total amount of results for a Google site-search for the object URL.
print Google::getSiteindexTotal();
// Returns the total amount of results for a Google link


