bingo: ping IndexNow when the card changes
A newly recorded incident only showed up in search once a crawler happened to come back. IndexNow lets Bing, Yandex and the other participating engines know about changed URLs right away. Bingo::IndexNow posts the card URLs plus the affected datacenter pages to api.indexnow.org, in a background thread so admin saves don't wait. Incidents ping their datacenter. Edits ping the datacenter, or every page when positions move (create, delete, reorder, sort). A deleted datacenter's pages are included so the engines see the 404. BingoWeb serves the key at /<key>.txt. The key comes from the INDEXNOW Forgejo secret, written to .env as INDEXNOW_KEY. With no key set this does nothing. Assisted-by: Claude:opus-5
This commit is contained in:
parent
ca48f4292b
commit
26e862ff04
6 changed files with 106 additions and 2 deletions
|
|
@ -188,6 +188,13 @@ class BingoWeb < Sinatra::Base
|
|||
erb :dc
|
||||
end
|
||||
|
||||
# IndexNow key file: proves to the engines that pings come from us.
|
||||
get %r{/([A-Za-z0-9-]{8,128})\.txt} do |name|
|
||||
halt 404 unless name == Bingo::IndexNow.key
|
||||
content_type 'text/plain'
|
||||
name
|
||||
end
|
||||
|
||||
# Icons from assets/bingo/ (public/ is asxp.io's). Search engines want
|
||||
# a crawlable favicon URL; a data: URI doesn't count.
|
||||
ICONS = { 'favicon.svg' => 'image/svg+xml', 'favicon.ico' => 'image/x-icon',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue