feat: intégration plugin Kirby SEO
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
- Ajout de tobimori/kirby-seo via Composer
- snippet('seo/head') dans header.php (remplace les meta manuels)
- snippet('seo/schemas') dans footer.php pour JSON-LD
- Onglet SEO ajouté dans site.yml et tous les blueprints de pages
- Configuration SEO dans config.php (sitemap, robots, canonicalBase TODO)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
baab2fb3a1
commit
58c31ea391
133 changed files with 9201 additions and 253 deletions
56
site/plugins/kirby-seo/docs/1_features/02_indexnow.md
Normal file
56
site/plugins/kirby-seo/docs/1_features/02_indexnow.md
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: IndexNow
|
||||
intro: Notify search engines when your content changes
|
||||
---
|
||||
|
||||
Normally, search engines discover changes to your site on their own schedule, which can take days or weeks. [IndexNow](https://www.indexnow.org/) lets you skip the wait: whenever you save, publish, or move a page in Kirby, Kirby SEO notifies search engines so they can re-crawl right away.
|
||||
|
||||
IndexNow is supported by Bing, Yandex, Seznam, and others. Kirby SEO sends a single request to `api.indexnow.org`, which propagates to all participating search engines. Google does not support IndexNow but is not affected by it.
|
||||
|
||||
## How it works
|
||||
|
||||
IndexNow is triggered on three events:
|
||||
|
||||
- A page is saved
|
||||
- A page changes status (e.g. draft to listed)
|
||||
- A page's slug changes
|
||||
|
||||
Only pages that are listed and not marked as `noindex` are submitted. On local environments (localhost), no requests are sent.
|
||||
|
||||
## API key
|
||||
|
||||
IndexNow requires an API key to verify that you own the domain. Kirby SEO generates one automatically and caches it permanently. Search engines can verify it at `https://example.com/indexnow-{key}.txt`, which Kirby SEO serves as a route. You don't need to manage this yourself.
|
||||
|
||||
## Related URLs
|
||||
|
||||
By default, only the changed page itself is submitted. But when a page changes, other pages might be affected too: a blog post's parent archive shows a different excerpt, or sibling pages have updated navigation.
|
||||
|
||||
You can configure rules to submit related URLs along with the changed page:
|
||||
|
||||
```php
|
||||
// site/config/config.php
|
||||
return [
|
||||
'tobimori.seo' => [
|
||||
'indexnow' => [
|
||||
'rules' => [
|
||||
// when a blog post changes, also re-index its parent
|
||||
'/blog/*' => ['parent' => true],
|
||||
|
||||
// when an article changes, re-index two levels of parents and specific URLs
|
||||
'article' => ['parent' => 2, 'urls' => ['/blog', '/']],
|
||||
|
||||
// when a product changes, re-index siblings and all category pages
|
||||
'product' => ['parent' => true, 'siblings' => true, 'templates' => ['category']],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
```
|
||||
|
||||
Rules match either by URL pattern (`/blog/*`) or by template name (`article`). Each rule can use any combination of:
|
||||
|
||||
- `parent`: `true` for the direct parent, or a number for how many levels up
|
||||
- `children`: `true` for all descendants, or a number to limit depth
|
||||
- `siblings`: `true` to include all pages at the same level
|
||||
- `urls`: an array of specific URLs to submit
|
||||
- `templates`: an array of template names, all pages with those templates will be submitted
|
||||
Loading…
Add table
Add a link
Reference in a new issue