IndexNow Bash Script Documentation

This script allows you to quickly submit URLs to search engines that support IndexNow for faster indexing.

How It Works

The script performs the following steps:

Usage

Save the following script as indexnow.sh and give it execution permission:

chmod +x indexnow.sh

Then, execute the script:

./indexnow.sh

Full Bash Script


#!/bin/bash

HOST="www.miralishahidi.ir"
KEY="0d59d4f90fa74f82a85458135948b174"
KEY_LOCATION="https://$HOST/$KEY.txt"

# List of URLs
URL_LIST=(
    "https://www.miralishahidi.ir/ai-cloud-store-fraud-alibaba-china.html"
    "https://www.miralishahidi.ir/cyber-justice.html"
    "https://www.miralishahidi.ir/cyber-justice-fa.html"
    "https://www.miralishahidi.ir/comprehensive-enterprise-it-infrastructure-deployment-and-security-checklist.html"
    "https://www.miralishahidi.ir/pig-butchering-scam.html"
    "https://www.miralishahidi.ir/osint-and-forensics-techniques-tools-methodologies-for-digital-investigations.html"
    "https://www.miralishahidi.ir/alibaba-group-aliyun-alisoft-alicloud-taobao-tmall-juhuasuan-alimama-alipay-lazada-dingding-yunos-1688-aireport.html"
    "https://www.miralishahidi.ir/report-dns-servers-alibaba-aliyun-taobao-tmall.html"
    "https://www.miralishahidi.ir/alibaba-network-analysis-mall-online-store-fraud-report-en.html"
    "https://www.miralishahidi.ir/comprehensive-analysis-report-fraud-suspected-systems-investigation-police-legal-enforcement-judicial-review-final-fa.html"
    "https://www.miralishahidi.ir/comprehensive-analysis-report-fraud-suspected-systems-investigation-police-legal-enforcement-judicial-review-final-en.html"
    "https://www.miralishahidi.ir/analysis-cdn-database-decentralized-synchronize.html"
)

# Create JSON format for request
URL_JSON=$(printf '"%s",' "${URL_LIST[@]}")
URL_JSON="[${URL_JSON%,}]"

DATA=$(cat <<EOF
{
    "host": "$HOST",
    "key": "$KEY",
    "keyLocation": "$KEY_LOCATION",
    "urlList": $URL_JSON
}
EOF
)

# List of search engines supporting IndexNow
SEARCH_ENGINES=(
    "https://api.indexnow.org/indexnow"
    "https://www.bing.com/indexnow"
    "https://searchadvisor.naver.com/indexnow"
    "https://search.seznam.cz/indexnow"
    "https://yandex.com/indexnow"
    "https://indexnow.yep.com/indexnow"
)

# Send request to search engines
for engine in "${SEARCH_ENGINES[@]}"; do
    response=$(curl -s -o /dev/null -w "%{http_code}" -X POST -H "Content-Type: application/json; charset=utf-8" -d "$DATA" "$engine")
    echo "Request to $engine - Status Code: $response"
done
    

Expected Output

When executed successfully, the script will return status codes from search engines:

Request to https://api.indexnow.org/indexnow - Status Code: 200
Request to https://www.bing.com/indexnow - Status Code: 200
...

Troubleshooting