PHPackages                             alkree/sitemap - 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. alkree/sitemap

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

alkree/sitemap
==============

Sitemap and sitemap index builder

2.2.3(6y ago)02.4k↓40%BSD-3-ClausePHPPHP &gt;=5.3.0

Since Jun 29Pushed 6y agoCompare

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

READMEChangelog (2)Dependencies (1)Versions (18)Used By (0)

Sitemap
=======

[](#sitemap)

Sitemap and sitemap index builder.

[![](https://camo.githubusercontent.com/d34b2f09bcd615ca3d858f9562cffa213f1496eb1eb809a038932f76eed78556/68747470733a2f2f7472617669732d63692e6f72672f73616d6461726b2f736974656d61702e737667)](https://camo.githubusercontent.com/d34b2f09bcd615ca3d858f9562cffa213f1496eb1eb809a038932f76eed78556/68747470733a2f2f7472617669732d63692e6f72672f73616d6461726b2f736974656d61702e737667)

Features
--------

[](#features)

- Create sitemap files: either regular or gzipped.
- Create multi-language sitemap files.
- Create sitemap index files.
- Automatically creates new file if either URL limit or file size limit is reached.
- Fast and memory efficient.

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

[](#installation)

Installation via Composer is very simple:

```
composer require alkree/sitemap

```

After that, make sure your application autoloads Composer classes by including `vendor/autoload.php`.

How to use it
-------------

[](#how-to-use-it)

```
use alkree\sitemap\Sitemap;
use alkree\sitemap\Index;

// create sitemap
$sitemap = new Sitemap(__DIR__ . '/sitemap.xml');

// add some URLs
$sitemap->addItem('http://example.com/mylink1');
$sitemap->addItem('http://example.com/mylink2', time());
$sitemap->addItem('http://example.com/mylink3', time(), Sitemap::HOURLY);
$sitemap->addItem('http://example.com/mylink4', time(), Sitemap::DAILY, 0.3);

// write it
$sitemap->write();

// get URLs of sitemaps written
$sitemapFileUrls = $sitemap->getSitemapUrls('http://example.com/');

// create sitemap for static files
$staticSitemap = new Sitemap(__DIR__ . '/sitemap_static.xml');

// add some URLs
$staticSitemap->addItem('http://example.com/about');
$staticSitemap->addItem('http://example.com/tos');
$staticSitemap->addItem('http://example.com/jobs');

// write it
$staticSitemap->write();

// get URLs of sitemaps written
$staticSitemapUrls = $staticSitemap->getSitemapUrls('http://example.com/');

// create sitemap index file
$index = new Index(__DIR__ . '/sitemap_index.xml');

// add URLs
foreach ($sitemapFileUrls as $sitemapUrl) {
    $index->addSitemap($sitemapUrl);
}

// add more URLs
foreach ($staticSitemapUrls as $sitemapUrl) {
    $index->addSitemap($sitemapUrl);
}

// write it
$index->write();
```

Multi-language sitemap
----------------------

[](#multi-language-sitemap)

```
use alkree\sitemap\Sitemap;

// create sitemap
// be sure to pass `true` as second parameter to specify XHTML namespace
$sitemap = new Sitemap(__DIR__ . '/sitemap_multi_language.xml', true);

// Set URL limit to fit in default limit of 50000 (default limit / number of languages)
$sitemap->setMaxUrls(25000);

// add some URLs
$sitemap->addItem('http://example.com/mylink1');

$sitemap->addItem([
    'ru' => 'http://example.com/ru/mylink2',
    'en' => 'http://example.com/en/mylink2',
], time());

$sitemap->addItem([
    'ru' => 'http://example.com/ru/mylink3',
    'en' => 'http://example.com/en/mylink3',
], time(), Sitemap::HOURLY);

$sitemap->addItem([
    'ru' => 'http://example.com/ru/mylink4',
    'en' => 'http://example.com/en/mylink4',
], time(), Sitemap::DAILY, 0.3);

// write it
$sitemap->write();
```

Options
-------

[](#options)

There are methods to configure `Sitemap` instance:

- `setMaxUrls($number)`. Sets maximum number of URLs to write in a single file. Default is 50000 which is the limit according to specification and most of existing implementations.
- `setMaxBytes($number)`. Sets maximum size of a single site map file. Default is 10MiB which should be compatible with most current search engines.
- `setBufferSize($number)`. Sets number of URLs to be kept in memory before writing it to file. Default is 10. Bigger values give marginal benefits. On the other hand when the file size limit is hit, the complete buffer must be written to the next file.
- `setUseIndent($bool)`. Sets if XML should be indented. Default is true.
- `setUseGzip($bool)`. Sets whether the resulting sitemap files will be gzipped or not. Default is `false`. `zlib` extension must be enabled to use this feature.

There is a method to configure `Index` instance:

- `setUseGzip($bool)`. Sets whether the resulting index file will be gzipped or not. Default is `false`. `zlib` extension must be enabled to use this feature.

Running tests
-------------

[](#running-tests)

In order to run tests perform the following commands:

```
composer install
./vendor/bin/phpunit

```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 51.7% 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 ~110 days

Recently: every ~178 days

Total

16

Last Release

2313d ago

Major Versions

1.0.0 → 2.0.02015-07-03

2.2.0 → 3.0.0.x-dev2018-07-10

PHP version history (3 changes)1.0.0PHP &gt;=5.4.0

2.0.4PHP &gt;=5.3.0

3.0.0.x-devPHP &gt;=7.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/e8e01a299b5dd7c0e0abaa7874656d24b753be231863d40583e7792db7ab3306?d=identicon)[alkree](/maintainers/alkree)

---

Top Contributors

[![samdark](https://avatars.githubusercontent.com/u/47294?v=4)](https://github.com/samdark "samdark (30 commits)")[![alkree](https://avatars.githubusercontent.com/u/716902?v=4)](https://github.com/alkree "alkree (12 commits)")[![terales](https://avatars.githubusercontent.com/u/1920639?v=4)](https://github.com/terales "terales (3 commits)")[![WinterSilence](https://avatars.githubusercontent.com/u/3521094?v=4)](https://github.com/WinterSilence "WinterSilence (3 commits)")[![atailouloute](https://avatars.githubusercontent.com/u/11352491?v=4)](https://github.com/atailouloute "atailouloute (2 commits)")[![rdeanar](https://avatars.githubusercontent.com/u/1760493?v=4)](https://github.com/rdeanar "rdeanar (1 commits)")[![theluk](https://avatars.githubusercontent.com/u/580946?v=4)](https://github.com/theluk "theluk (1 commits)")[![wawan93](https://avatars.githubusercontent.com/u/1741716?v=4)](https://github.com/wawan93 "wawan93 (1 commits)")[![zinovyev](https://avatars.githubusercontent.com/u/1627048?v=4)](https://github.com/zinovyev "zinovyev (1 commits)")[![bodograumann](https://avatars.githubusercontent.com/u/1223583?v=4)](https://github.com/bodograumann "bodograumann (1 commits)")[![fr05t1k](https://avatars.githubusercontent.com/u/2131624?v=4)](https://github.com/fr05t1k "fr05t1k (1 commits)")[![jakubskrz](https://avatars.githubusercontent.com/u/6973533?v=4)](https://github.com/jakubskrz "jakubskrz (1 commits)")[![raulr](https://avatars.githubusercontent.com/u/682507?v=4)](https://github.com/raulr "raulr (1 commits)")

---

Tags

Sitemap

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alkree-sitemap/health.svg)

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

###  Alternatives

[samdark/sitemap

Sitemap and sitemap index builder

5491.4M37](/packages/samdark-sitemap)[novactive/ezseobundle

Novactive eZ SEO Bundle is an Ibexa Platform bundle for SEO simplications. metas, sitemaps, robots.txt, etc.

26252.0k2](/packages/novactive-ezseobundle)[zhelyabuzhsky/yii2-sitemap

A Yii2 tool to generate sitemap.xml.

3439.7k](/packages/zhelyabuzhsky-yii2-sitemap)[fof/sitemap

Generate a sitemap

1988.7k2](/packages/fof-sitemap)[kphoen/sitemap-bundle

Provides a way to create/generate a sitemap using Doctrine, etc.

2444.8k](/packages/kphoen-sitemap-bundle)[fomvasss/laravel-meta-tags

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

3028.9k](/packages/fomvasss-laravel-meta-tags)

PHPackages © 2026

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