PHPackages                             isaactopo/xmlsitemap - 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. isaactopo/xmlsitemap

ActiveKirby-plugin[Utility &amp; Helpers](/categories/utility)

isaactopo/xmlsitemap
====================

Kirby 3 Multilanguage XML Sitemap

0.2.2(3y ago)147.2k↑41.7%2[4 issues](https://github.com/isaactopo/xmlsitemap/issues)[1 PRs](https://github.com/isaactopo/xmlsitemap/pulls)MITPHP

Since Mar 17Pushed 3y ago1 watchersCompare

[ Source](https://github.com/isaactopo/xmlsitemap)[ Packagist](https://packagist.org/packages/isaactopo/xmlsitemap)[ RSS](/packages/isaactopo-xmlsitemap/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

Kirby 3 Multilanguage XML Sitemap Plugin
========================================

[](#kirby-3-multilanguage-xml-sitemap-plugin)

Is a powerful tool for managing and generating sitemaps that is designed to work with [Kirby 3](https://getkirby.com). This plugin provides a straightforward approach for creating XML Sitemaps, especially for sites with multiple languages. The multilingual support allows you to create separate URLs for each language, increasing the SEO performance of your website. The plugin creates one XML file with URLs to your website pages and images, automagically ✨ assigning their priority and last modification date which can be later easily readed by search engines.

If the website has only one language, a sitemap is generated in `/sitemap.xml`. With this new version (0.2.0), if the site has two or more languages, a `` is generated in `sitemap.xml` and all sub-sitemaps for each language with the following scheme: `sitemap_en.xml`, `sitemap_es.xml`, etc

---

How to install
--------------

[](#how-to-install)

### Download

[](#download)

[Download and copy this repository](https://github.com/isaactopo/xmlsitemap/archive/main.zip) to /site/plugins/xmlsitemap

### As a Git Submodule

[](#as-a-git-submodule)

`git submodule add https://github.com/isaactopo/xmlsitemap.git site/plugins/xmlsitemap`

### With Composer

[](#with-composer)

`composer require isaactopo/xmlsitemap`

Setup
-----

[](#setup)

The plugin works from the start, outputting all the listed pages from your website on `yoursite/sitemap.xml` and redirecting `yoursite/sitemap` to `yoursite/sitemap.xml`

Options and configuration
-------------------------

[](#options-and-configuration)

The plugin has 3 config options that you can tweak from your `site/config.php` file:

### 🙈 Ignore Pages

[](#-ignore-pages)

By default not listed pages are Ignored, but sometimes you will want to ignore specific pages. You are able to do it with:

```
'isaactopo.xmlsitemap.ignore' => ['error', 'legal'],
```

### 🎆 Include Images

[](#-include-images)

You can inlude images with:

```
'isaactopo.xmlsitemap.includeImages' => true,
```

### 🧾 Include Specific Pages

[](#-include-specific-pages)

If you have some factory-generated pages from your Routes or another page that you want to force-include you can do it with:

```
'isaactopo.xmlsitemap.addCollection' => function () {
    $professionals = kirby()->users()->filterBy('publish', true);
    $profiles = [];
    foreach($professionals as $professional){
        $profiles[] = Page::factory([
            'slug' => 'team/'.$professional,
            'template' => 'profile',
            'content' => [
                'author' => $professional,
                ]
            ]);
        }
    return $profiles;
},
```

### 🛗 Change Page Priority

[](#-change-page-priority)

The plugin generates an automatic priority according to the depth of each page (Thanks Bastian). But you may want to change the priority of some pages by hand. If so, you can do it by creating a new field in the blueprint of the page you want to include:

```
sitemapPriority:
    label: Sitemap Priority
    type:  number
    width: 1/2
    max:   1
    min:   0
    step:  0.1
```

[![priority panel field](panel-field.png)](panel-field.png)

This way the plugin will prioritise the input from the Panel.

Credits
-------

[](#credits)

- Isaac Bordons  —
- Thanks to [Bastian Allgeier](https://github.com/bastianallgeier) for [his article on the Cookbook](https://getkirby.com/docs/cookbook/content/sitemap) and [Pedro Borges](https://github.com/pedroborges) for his [K2 XML Sitemap plugin](https://github.com/pedroborges/kirby-xml-sitemap)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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 ~2 days

Total

3

Last Release

1154d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/04a2137b7b226fae4a429980ead547bd79f21f183b04ba9c2caa70d8acac713c?d=identicon)[isaactopo](/maintainers/isaactopo)

---

Top Contributors

[![isaactopo](https://avatars.githubusercontent.com/u/4568596?v=4)](https://github.com/isaactopo "isaactopo (21 commits)")

### Embed Badge

![Health badge](/badges/isaactopo-xmlsitemap/health.svg)

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

###  Alternatives

[distantnative/retour-for-kirby

Manage redirects and track 404s right from the Kirby CMS Panel

14689.4k1](/packages/distantnative-retour-for-kirby)[mzur/kirby-uniform

A versatile Kirby plugin to handle web form actions.

26068.3k13](/packages/mzur-kirby-uniform)[arnoson/kirby-vite

Vite helper for Kirby CMS

9759.2k3](/packages/arnoson-kirby-vite)[thathoff/kirby-git-content

Plugin to track changes to content in a git repository.

15343.7k](/packages/thathoff-kirby-git-content)[sylvainjule/locator

A map &amp; geolocation field, built on top of open-source services / Mapbox

11237.3k1](/packages/sylvainjule-locator)[tobimori/kirby-seo

The default choice for SEO on Kirby: Implement technical SEO &amp; Meta best practices with ease and provide an easy-to-use editor experience

10039.7k1](/packages/tobimori-kirby-seo)

PHPackages © 2026

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