> ## Documentation Index
> Fetch the complete documentation index at: https://docs.filarank.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XML sitemap

> Generate /filarank-sitemap.xml from scanned models, skip noindex records, and optionally ping search engines.

Enable the sitemap in **SEO Settings**. While it's off, the route returns 404 rather than an empty document. Entries are built from your [scanned models](/configuration#scanned-models), skipping records flagged `noindex` or without a public URL.

Implement `getSeoUrl()` on each model so the sitemap emits real paths:

```php theme={null}
public function getSeoUrl(): ?string
{
    return route('posts.show', $this, absolute: false);
}
```

## Config

```php theme={null}
'sitemap' => [
    'enabled' => true,
    'path' => 'filarank-sitemap.xml',
    'changefreq' => 'weekly',
    'priority' => 0.5,
    'cache_seconds' => 3600,

    'ping' => false,
    'ping_endpoints' => [
        'https://www.bing.com/ping?sitemap={sitemap}',
    ],
],
```

With pinging enabled, endpoints are called after a record is saved. Requests are deferred until after the response, so a slow or dead endpoint never delays a content save. `{sitemap}` is replaced with the URL-encoded sitemap URL.

<Note>
  Google retired its ping endpoint in 2023, so the list is deliberately easy to repoint. `sitemap.ping` (and the Settings toggle) is the single switch — `sitemap.ping_on_save` was removed in v2.
</Note>
