IndexNow Rotating Push #1390
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: IndexNow Rotating Push | |
| on: | |
| # Daily at 9 AM UTC — rotates through 10 URLs at a time (full cycle every ~9 days) | |
| schedule: | |
| - cron: '0 9 * * *' | |
| # On deploy — sends ALL URLs (content actually changed) | |
| push: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| jobs: | |
| indexnow-push: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Submit URLs to IndexNow | |
| run: | | |
| KEY="3a879a2ef23c46a39d3b0926392655e1" | |
| # === MASTER URL LIST — ALL 88 PUBLIC PAGES === | |
| # Ordered by priority. 10 per group, 9 groups total. | |
| # Every page gets pushed every ~54 hours on the 6-hour schedule. | |
| ALL_URLS=( | |
| # --- Group 0: Money pages (highest priority) --- | |
| "https://justlegalsolutions.org/" | |
| "https://justlegalsolutions.org/tulsa-process-server" | |
| "https://justlegalsolutions.org/services" | |
| "https://justlegalsolutions.org/pricing" | |
| "https://justlegalsolutions.org/contact" | |
| "https://justlegalsolutions.org/law-firm-services" | |
| "https://justlegalsolutions.org/weekend-emergency" | |
| "https://justlegalsolutions.org/urgent-process-server" | |
| "https://justlegalsolutions.org/notary" | |
| "https://justlegalsolutions.org/mobile-notary" | |
| "https://justlegalsolutions.org/remote-online-notary" | |
| "https://justlegalsolutions.org/apostille" | |
| "https://justlegalsolutions.org/hospital-notary" | |
| "https://justlegalsolutions.org/real-estate-notary" | |
| "https://justlegalsolutions.org/wedding-officiant" | |
| "https://justlegalsolutions.org/mobile-notary-vs-bank" | |
| "https://justlegalsolutions.org/what-to-bring" | |
| "https://justlegalsolutions.org/notary/joseph" | |
| "https://justlegalsolutions.org/notary/tulsa-county" | |
| "https://justlegalsolutions.org/notary/creek-county" | |
| "https://justlegalsolutions.org/notary-faqs" | |
| "https://justlegalsolutions.org/notary-laws" | |
| "https://justlegalsolutions.org/about" | |
| "https://justlegalsolutions.org/ultimate-guide-process-serving-oklahoma" | |
| # --- Group 1: Core pages + review funnels --- | |
| "https://justlegalsolutions.org/why-choose-us" | |
| "https://justlegalsolutions.org/affidavit-of-service" | |
| "https://justlegalsolutions.org/field-sheet" | |
| "https://justlegalsolutions.org/courier-services-tulsa" | |
| "https://justlegalsolutions.org/virtual-assistant-services" | |
| "https://justlegalsolutions.org/payments" | |
| "https://justlegalsolutions.org/leave-review" | |
| "https://justlegalsolutions.org/reviews/phone" | |
| "https://justlegalsolutions.org/reviews/survey" | |
| "https://justlegalsolutions.org/reviews/text" | |
| "https://justlegalsolutions.org/resources" | |
| # --- Group 2: Utility + top service areas --- | |
| "https://justlegalsolutions.org/security-policy" | |
| "https://justlegalsolutions.org/sitemap" | |
| "https://justlegalsolutions.org/service-areas" | |
| "https://justlegalsolutions.org/service-areas/broken-arrow" | |
| "https://justlegalsolutions.org/service-areas/owasso" | |
| "https://justlegalsolutions.org/service-areas/jenks" | |
| "https://justlegalsolutions.org/service-areas/bixby" | |
| "https://justlegalsolutions.org/service-areas/sand-springs" | |
| "https://justlegalsolutions.org/service-areas/sapulpa" | |
| "https://justlegalsolutions.org/service-areas/claremore" | |
| # --- Group 3: More service area cities --- | |
| "https://justlegalsolutions.org/service-areas/bartlesville" | |
| "https://justlegalsolutions.org/service-areas/catoosa" | |
| "https://justlegalsolutions.org/service-areas/collinsville" | |
| "https://justlegalsolutions.org/service-areas/coweta" | |
| "https://justlegalsolutions.org/service-areas/glenpool" | |
| "https://justlegalsolutions.org/service-areas/skiatook" | |
| "https://justlegalsolutions.org/service-areas/wagoner" | |
| "https://justlegalsolutions.org/service-areas/bristow" | |
| "https://justlegalsolutions.org/service-areas/kellyville" | |
| "https://justlegalsolutions.org/service-areas/pawhuska" | |
| # --- Group 4: Last city + all counties --- | |
| "https://justlegalsolutions.org/service-areas/pryor" | |
| "https://justlegalsolutions.org/counties" | |
| "https://justlegalsolutions.org/counties/tulsa-county" | |
| "https://justlegalsolutions.org/counties/rogers-county" | |
| "https://justlegalsolutions.org/counties/wagoner-county" | |
| "https://justlegalsolutions.org/counties/washington-county" | |
| "https://justlegalsolutions.org/counties/creek-county" | |
| "https://justlegalsolutions.org/counties/osage-county" | |
| "https://justlegalsolutions.org/counties/okmulgee-county" | |
| "https://justlegalsolutions.org/counties/mayes-county" | |
| # --- Group 5: Last county + authority guides --- | |
| "https://justlegalsolutions.org/counties/nowata-county" | |
| "https://justlegalsolutions.org/ultimate-guide-process-serving-oklahoma" | |
| "https://justlegalsolutions.org/process-server-tulsa-guide" | |
| "https://justlegalsolutions.org/oklahoma-process-server-laws" | |
| "https://justlegalsolutions.org/oklahoma-process-server-pricing" | |
| "https://justlegalsolutions.org/oklahoma-process-server-authority" | |
| "https://justlegalsolutions.org/oklahoma-process-server-laws" | |
| "https://justlegalsolutions.org/oklahoma-process-server-technology" | |
| "https://justlegalsolutions.org/oklahoma-case-law-service-process" | |
| "https://justlegalsolutions.org/oklahoma-electronic-service-guide" | |
| # --- Group 6: More guides + 2026 editions --- | |
| "https://justlegalsolutions.org/oklahoma-legal-service-areas" | |
| "https://justlegalsolutions.org/oklahoma-process-serving-costs-comparison" | |
| "https://justlegalsolutions.org/family-law-service-guide-tulsa" | |
| "https://justlegalsolutions.org/high-profile-service-protocols-tulsa" | |
| "https://justlegalsolutions.org/ai-skip-tracing-guide-oklahoma" | |
| "https://justlegalsolutions.org/process-serving-mistakes-guide" | |
| "https://justlegalsolutions.org/serving-legal-papers-on-tribal-land" | |
| "https://justlegalsolutions.org/oklahoma-process-server-faq-2026" | |
| "https://justlegalsolutions.org/oklahoma-process-server-best-practices-checklist-2026" | |
| "https://justlegalsolutions.org/oklahoma-process-server-pricing-2026" | |
| # --- Group 7: SEO content + 2025 guides (part 1) --- | |
| "https://justlegalsolutions.org/seo/eviction-notice-process-server" | |
| "https://justlegalsolutions.org/seo/legal-posting-process-server" | |
| "https://justlegalsolutions.org/seo/process-server-nowata" | |
| "https://justlegalsolutions.org/service-areas/vinita" | |
| "https://justlegalsolutions.org/seo/what-is-a-process-server" | |
| "https://justlegalsolutions.org/ai-skip-tracing-guide-oklahoma-2025" | |
| "https://justlegalsolutions.org/family-law-service-guide-tulsa" | |
| "https://justlegalsolutions.org/high-profile-service-protocols-tulsa-2025" | |
| "https://justlegalsolutions.org/oklahoma-case-law-service-process-2025" | |
| "https://justlegalsolutions.org/oklahoma-electronic-service-guide" | |
| # --- Group 8: 2025 guides (part 2) --- | |
| "https://justlegalsolutions.org/oklahoma-legal-service-areas-2025" | |
| "https://justlegalsolutions.org/oklahoma-process-server-best-practices-checklist-2026" | |
| "https://justlegalsolutions.org/oklahoma-process-server-faq-2025" | |
| "https://justlegalsolutions.org/oklahoma-process-server-pricing-2025" | |
| "https://justlegalsolutions.org/oklahoma-process-server-technology-2025" | |
| "https://justlegalsolutions.org/oklahoma-process-serving-costs-comparison-2025" | |
| "https://justlegalsolutions.org/process-serving-mistakes-guide-2025" | |
| ) | |
| TOTAL=${#ALL_URLS[@]} | |
| BATCH_SIZE=10 | |
| NUM_GROUPS=$(( (TOTAL + BATCH_SIZE - 1) / BATCH_SIZE )) | |
| # On deploy: send ALL URLs (content actually changed) | |
| # On schedule: rotate through groups of 10 | |
| EVENT="${{ github.event_name }}" | |
| if [ "$EVENT" = "push" ]; then | |
| echo "=== DEPLOY: Submitting all $TOTAL URLs ===" | |
| BATCH=("${ALL_URLS[@]}") | |
| else | |
| # Rotation: use day-of-year to cycle through groups of 10 | |
| DAY=$(date -u +%j) | |
| GROUP=$(( DAY % NUM_GROUPS )) | |
| START=$(( GROUP * BATCH_SIZE )) | |
| BATCH=("${ALL_URLS[@]:$START:$BATCH_SIZE}") | |
| echo "=== SCHEDULED: Group $GROUP of $((NUM_GROUPS - 1)) — ${#BATCH[@]} URLs (starting at index $START) ===" | |
| echo "URLs in this batch:" | |
| for u in "${BATCH[@]}"; do echo " $u"; done | |
| fi | |
| # Build JSON array | |
| URL_JSON="" | |
| for url in "${BATCH[@]}"; do | |
| [ -n "$URL_JSON" ] && URL_JSON="$URL_JSON," | |
| URL_JSON="$URL_JSON\"$url\"" | |
| done | |
| # Submit to IndexNow | |
| HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "https://api.indexnow.org/indexnow" \ | |
| -H "Content-Type: application/json" \ | |
| -d "{\"host\":\"justlegalsolutions.org\",\"key\":\"$KEY\",\"keyLocation\":\"https://justlegalsolutions.org/$KEY.txt\",\"urlList\":[$URL_JSON]}") | |
| echo "IndexNow response: HTTP $HTTP_CODE (${#BATCH[@]} URLs submitted)" | |
| if [ "$HTTP_CODE" -ge 400 ]; then | |
| echo "WARNING: IndexNow returned error $HTTP_CODE" | |
| fi | |
| # Sitemap pings (lightweight, always do these) | |
| curl -s "https://www.google.com/ping?sitemap=https://justlegalsolutions.org/sitemap-index.xml" > /dev/null || true | |
| curl -s "https://www.bing.com/ping?sitemap=https://justlegalsolutions.org/sitemap-index.xml" > /dev/null || true | |
| echo "Done — sitemap pings sent to Google and Bing (via sitemap-index.xml)" |