PHPackages                             artofwifi/statamic-indexnow - 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. [Search &amp; Filtering](/categories/search)
4. /
5. artofwifi/statamic-indexnow

ActiveStatamic-addon[Search &amp; Filtering](/categories/search)

artofwifi/statamic-indexnow
===========================

Submit URLs to IndexNow from the Statamic Control Panel for faster search engine indexing.

1.1.0(1w ago)18↓100%MITPHP

Since Mar 9Pushed 1w agoCompare

[ Source](https://github.com/Art-of-WiFi/statamic-indexnow)[ Packagist](https://packagist.org/packages/artofwifi/statamic-indexnow)[ RSS](/packages/artofwifi-statamic-indexnow/feed)WikiDiscussions main Synced today

READMEChangelog (3)Dependencies (3)Versions (4)Used By (0)

IndexNow for Statamic
=====================

[](#indexnow-for-statamic)

Submit URLs to [IndexNow](https://www.indexnow.org/) directly from your Statamic Control Panel for faster search engine indexing.

What is IndexNow?
-----------------

[](#what-is-indexnow)

[IndexNow](https://www.indexnow.org/) is an open protocol that allows websites to instantly notify search engines about content changes. Instead of waiting for search engines to discover updates through crawling, IndexNow enables real-time notifications resulting in faster indexing and more current search results.

When you submit to any one participating search engine, the submission is automatically shared with all others:

- **Bing**
- **Yandex**
- **Seznam**
- **Naver**

> **Note:** Google does not participate in IndexNow. Use [Google Search Console](https://search.google.com/search-console) for Google indexing.

Features
--------

[](#features)

- **CP Utility** — browse all published entries and submit selected URLs with one click
- **Submission tracking** — see which entries have been submitted and whether they've been modified since
- **Auto-submit on publish** — optionally submit URLs automatically when entries are saved
- **Bulk actions** — quickly select all unsubmitted or modified entries
- **Collection filtering** — filter entries by collection and search by title
- **Sortable columns** — sort by title, collection, status, last modified, or last submitted
- **Batch support** — large submissions are automatically chunked per IndexNow's 10,000 URL limit
- **History cleanup** — artisan command to prune old submission records

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

[](#requirements)

- Statamic 5
- Laravel 11 or 12

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

[](#installation)

```
composer require artofwifi/statamic-indexnow
```

No database required. Submission history is stored as a JSON file in `storage/statamic-indexnow/`.

Setup
-----

[](#setup)

### 1. Generate an IndexNow key

[](#1-generate-an-indexnow-key)

Your API key must be 8-128 characters long, using alphanumeric characters and hyphens. You can generate one at [indexnow.org/genkey](https://www.indexnow.org/genkey) or use OpenSSL:

```
openssl rand -hex 32
```

### 2. Add the key to your `.env`

[](#2-add-the-key-to-your-env)

```
INDEXNOW_KEY=your-key-here
```

### 3. Host the verification key file

[](#3-host-the-verification-key-file)

IndexNow requires a verification file at your domain root to prove ownership. Create a text file named `{your-key}.txt` containing just the key:

```
https://yourdomain.com/your-key-here.txt

```

The file must be publicly accessible and return only the key as plain text.

That's it! Head to **CP &gt; Utilities &gt; IndexNow** and start submitting.

Configuration
-------------

[](#configuration)

Publish the config file if you need to customize settings:

```
php artisan vendor:publish --tag=statamic-indexnow-config
```

This will create `config/statamic-indexnow.php` with the following options:

```
return [
    // Your IndexNow API key
    'key' => env('INDEXNOW_KEY'),

    // IndexNow endpoint (any participating engine shares with all others)
    'endpoint' => env('INDEXNOW_ENDPOINT', 'https://api.indexnow.org/indexnow'),

    // Base URL for submitted entries (useful when submitting from a dev environment)
    'production_url' => env('INDEXNOW_PRODUCTION_URL', env('APP_URL')),

    // Automatically submit URLs when entries are published or updated
    'auto_submit' => env('INDEXNOW_AUTO_SUBMIT', false),

    // Collection handles to exclude from the utility and auto-submission
    'exclude_collections' => [],

    // Max URLs per API request (IndexNow protocol limit is 10,000)
    'batch_size' => 10000,
];
```

### Production URL

[](#production-url)

If you manage your site from a development or staging environment, set `INDEXNOW_PRODUCTION_URL` to ensure production URLs are submitted regardless of which environment the CP runs in:

```
INDEXNOW_PRODUCTION_URL=https://yourdomain.com
```

### Excluding collections

[](#excluding-collections)

Add collection handles to `exclude_collections` to hide them from the utility and skip them during auto-submission:

```
'exclude_collections' => ['internal', 'drafts'],
```

Usage
-----

[](#usage)

### CP Utility

[](#cp-utility)

Navigate to **Utilities &gt; IndexNow** in the Control Panel. You'll see all published entries with their submission status:

StatusMeaning**Never** (gray)Entry has never been submitted to IndexNow**Modified** (amber)Entry was modified after the last submission**Submitted** (green)Entry hasn't changed since last submissionSelect entries and click **Submit Selected to IndexNow**. Use the quick-select buttons to select all unsubmitted or modified entries.

The table supports sorting by title, collection, status, last modified, and last submitted date. Filter by collection or search by title using the controls above the table.

### Auto-submit on publish

[](#auto-submit-on-publish)

Enable automatic submission whenever entries are saved:

```
INDEXNOW_AUTO_SUBMIT=true
```

When enabled, each published entry triggers a submission to IndexNow. Entries in excluded collections and unpublished entries are skipped.

### Cleaning up old records

[](#cleaning-up-old-records)

Submission history accumulates over time. Use the artisan command to prune old records:

```
# Delete records older than 90 days (default)
php artisan indexnow:prune

# Delete records older than 30 days
php artisan indexnow:prune --days=30
```

To run this automatically, add it to your schedule in `routes/console.php` or `app/Console/Kernel.php`:

```
$schedule->command('indexnow:prune')->monthly();
```

License
-------

[](#license)

MIT License. See [LICENSE.md](LICENSE.md) for details.

###  Health Score

38

—

LowBetter than 86% of packages

Maintenance98

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

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

Total

3

Last Release

13d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f740c53c0c9ee6e07ce38e282bc5a579b915739fedeb24214562382bd6228f55?d=identicon)[art-of-wifi](/maintainers/art-of-wifi)

---

Top Contributors

[![malle-pietje](https://avatars.githubusercontent.com/u/12016131?v=4)](https://github.com/malle-pietje "malle-pietje (11 commits)")

---

Tags

searchseoyandexstatamicbingindexnow

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/artofwifi-statamic-indexnow/health.svg)

```
[![Health](https://phpackages.com/badges/artofwifi-statamic-indexnow/health.svg)](https://phpackages.com/packages/artofwifi-statamic-indexnow)
```

###  Alternatives

[ymigval/laravel-indexnow

Laravel Service Library for notifying search engines about the latest content changes on their URLs using IndexNow.

348.9k](/packages/ymigval-laravel-indexnow)[arcanedev/seo-helper

SEO Helper is a framework agnostic package that provides tools &amp; helpers for SEO (Laravel supported).

333465.7k3](/packages/arcanedev-seo-helper)[statamic-rad-pack/meilisearch

meilisearch search driver for Statamic

1656.9k](/packages/statamic-rad-pack-meilisearch)[marcorieser/statamic-live-search

A Statamic Live Search realized with Laravel Livewire.

219.5k](/packages/marcorieser-statamic-live-search)[quinninteractive/silverstripe-seo

An all-in-one SEO module for SilverStripe

3328.1k](/packages/quinninteractive-silverstripe-seo)[mediamonks/crawler

Crawl your own website with various clients for SEO and indexing purposes.

211.1k1](/packages/mediamonks-crawler)

PHPackages © 2026

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