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

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

arnisjuraga/sitemap-php
=======================

Lightweight library for generating Google sitemap XML files

1.2.2(8mo ago)021↓91.7%MITPHPPHP &gt;=5.3.0

Since Apr 23Pushed 8mo agoCompare

[ Source](https://github.com/arnisjuraga/sitemap-php)[ Packagist](https://packagist.org/packages/arnisjuraga/sitemap-php)[ Docs](https://github.com/evert/sitemap-php/)[ RSS](/packages/arnisjuraga-sitemap-php/feed)WikiDiscussions master Synced today

READMEChangelog (2)DependenciesVersions (7)Used By (0)

Sitemap-php
===========

[](#sitemap-php)

Fast and lightweight class for generating Google sitemap XML files and index of sitemap files. Written on PHP and uses XMLWriter extension (wrapper for libxml xmlWriter API) for creating XML files. XMLWriter extension is enabled by default in PHP 5 &gt;= 5.1.2. If you having more than 50000 url, it splits items to seperated files. *(In benchmarks, 1.000.000 url was generating in 8 seconds)*

This is a slightly modified version of the original. The Sitemap class is now added to a 'SitemapPHP' namespace, and a composer document has been added.

Requirements
------------

[](#requirements)

- PHP 5.1.2 and above

Steps:
------

[](#steps)

- [Installation](#installation)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [License](#license)

### Installation

[](#installation)

**Composer**

Run the following command to include this package via Composer

```
composer require evert/sitemap-php
```

**Include**

Include Sitemap.php file to your PHP document and call Sitemap class with your base domain.

```
	include 'src/SitemapPHP/Sitemap.php';
```

### Usage

[](#usage)

```
   	use SitemapPHP\Sitemap;

	$sitemap = new Sitemap('http://example.com');
```

Now, we need to define path for saving XML files. This can be relative like `xmls` or absolute `/path/to/your/folder` and *must be a writable folder*. In default it uses same folder with your script.

```
	$sitemap->setPath('xmls/');
```

Generated XML file names defaulted to `sitemap-*.xml`, you can customize prefix of filenames with `setFilename` method.

```
	$sitemap->setFilename('customsitemap');
```

We'll add sitemap url's with `addItem` method. In this method, only first parameter (location) is required.

```
	$sitemap->addItem('/', '1.0', 'daily', 'Today');
	$sitemap->addItem('/about', '0.8', 'monthly', 'Jun 25');
	$sitemap->addItem('/contact', '0.6', 'yearly', '14-12-2009');
	$sitemap->addItem('/otherpage');
```

w/ method chaining.

```
	$sitemap->addItem('/projects', '0.8')->addItem('/somepage')->addItem('/hiddenpage', '0.4', 'yearly', '01-01-2011')->addItem('/rss');
```

from a sql result, or whatever.

```
	$query = Doctrine_Query::create()
					->select('p.created_at, p.slug')
					->from('Posts p')
					->orderBy('p.id DESC')
					->useResultCache(true);
	$posts =  $query->fetchArray(array(), Doctrine_Core::HYDRATE_ARRAY);
    	foreach ($posts as $post) {
        	$sitemap->addItem('/post/' . $post['slug'], '0.6', 'weekly', $post['created_at']);
    	}
```

If you need to change domain for sitemap instance, you can override it via `setDomain` method.

```
	$sitemap->setDomain('http://blog.example.com');
```

Finally we create index for sitemap files. This method also closes tags of latest generated xml file.

```
	$sitemap->createSitemapIndex('http://example.com/sitemap/', 'Today');
```

When you run your script, it generates and saves XML files to given path.

sitemap-0.xml

```

  http://example.com/
  1.0
  daily
  2011-04-07

  http://example.com/about
  0.8
  monthly
  2011-06-25

  http://example.com/contact
  0.6
  yearly
  2009-12-14

  http://example.com/otherpage
  0.5

```

sitemap-index.xml

```

  http://example.com/sitemap/sitemap-0.xml
  2011-04-07

```

You need to submit sitemap-index.xml to Google Sitemaps.

### Maintainers

[](#maintainers)

This package is maintained by [Evert Pot](https://github.com/evert), [David Oti](http://github.com/davmixcool), [Osman Ungur](https://github.com/o), [Mike Lay](https://github.com/mkly), [Userlond](https://github.com/userlond), [Philipp Scheit](https://github.com/pscheit), and you!

### License

[](#license)

This package is licensed under the [MIT license](https://github.com/evert/sitemap-php/blob/master/LICENSE).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance60

Regular maintenance activity

Popularity6

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~913 days

Recently: every ~1141 days

Total

6

Last Release

256d ago

Major Versions

0.0.1 → 1.0.02013-04-23

### Community

Maintainers

![](https://www.gravatar.com/avatar/866d1d12c105303e6f94aa2f2b3017135079bbeadf7caad477acb5a5284541e6?d=identicon)[copona](/maintainers/copona)

---

Top Contributors

[![o](https://avatars.githubusercontent.com/u/179912?v=4)](https://github.com/o "o (27 commits)")[![evert](https://avatars.githubusercontent.com/u/178960?v=4)](https://github.com/evert "evert (17 commits)")[![arnisjuraga](https://avatars.githubusercontent.com/u/2185289?v=4)](https://github.com/arnisjuraga "arnisjuraga (4 commits)")[![mkly](https://avatars.githubusercontent.com/u/965353?v=4)](https://github.com/mkly "mkly (3 commits)")[![davmixcool](https://avatars.githubusercontent.com/u/5640065?v=4)](https://github.com/davmixcool "davmixcool (2 commits)")[![pscheit](https://avatars.githubusercontent.com/u/488189?v=4)](https://github.com/pscheit "pscheit (1 commits)")[![userlond](https://avatars.githubusercontent.com/u/7788670?v=4)](https://github.com/userlond "userlond (1 commits)")

---

Tags

Sitemap

### Embed Badge

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

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

###  Alternatives

[samdark/sitemap

Sitemap and sitemap index builder

5401.4M44](/packages/samdark-sitemap)[tackk/cartographer

A PHP sitemap generation tool.

325493.4k3](/packages/tackk-cartographer)[nystudio107/craft-seomatic

SEOmatic facilitates modern SEO best practices &amp; implementation for Craft CMS 5. It is a turnkey SEO system that is comprehensive, powerful, and flexible.

1741.5M60](/packages/nystudio107-craft-seomatic)[novactive/ezseobundle

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

29259.4k3](/packages/novactive-ezseobundle)[rainlab/sitemap-plugin

Sitemap plugin for October CMS

2282.4k1](/packages/rainlab-sitemap-plugin)[fof/sitemap

Generate a sitemap

1899.7k2](/packages/fof-sitemap)

PHPackages © 2026

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