Skip to content

Add Academy and Handbook sitemap submissions#305

Merged
glenn-jocher merged 5 commits into
mainfrom
add-academy-handbook-sitemaps
May 2, 2026
Merged

Add Academy and Handbook sitemap submissions#305
glenn-jocher merged 5 commits into
mainfrom
add-academy-handbook-sitemaps

Conversation

@glenn-jocher
Copy link
Copy Markdown
Member

@glenn-jocher glenn-jocher commented May 2, 2026

Summary

  • add Academy, Handbook, and Platform root sitemap URLs to Google Search Console submission
  • submit the new subdomain sitemaps through the verified sc-domain:ultralytics.com Search Console property
  • keep IndexNow submissions scoped to docs URLs because Academy and Handbook do not currently serve the IndexNow key file
  • fail the Google sitemap step if Search Console rejects any sitemap, so missing property access is visible

Validation

  • actionlint .github/workflows/sitemaps.yml
  • python3 embedded workflow Python compile check
  • git diff --check
  • manual Submit Sitemaps workflow run 25250597720: GSC submissions for Academy, Handbook, and Platform passed

Remaining blocker

  • IndexNow key files still return 404 on Academy and Handbook, so this PR remains draft until those hosts serve the key file or we decide to ship GSC first and add IndexNow later.

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Improves the sitemap submission workflow to support more Ultralytics sites, better detect failures, and make URL indexing updates more reliable 🚀

📊 Key Changes

  • Added sitemap submission support for more Ultralytics domains, including academy.ultralytics.com, handbook.ultralytics.com, and platform.ultralytics.com 🌐
  • Refactored sitemap handling into a domain-to-path mapping, making the workflow easier to extend and maintain 🛠️
  • Updated Google sitemap submission logic to return success or failure for each sitemap and collect failed submissions ✅❌
  • Added a hard failure if any sitemap submission fails, instead of silently continuing, improving visibility into indexing issues 🚨
  • Used the sc-domain:ultralytics.com property for select subdomains when submitting to Google Search Console, aligning with domain-level verification 🔍
  • Fixed environment variable writing by safely quoting $GITHUB_ENV, improving shell robustness 🧩
  • Updated the IndexNow URL filtering helper to accept the host explicitly, making the logic cleaner and more reusable 🔄
  • Kept IndexNow submissions focused on changed pages for docs.ultralytics.com, while leaving room to submit all URLs when needed 📄

🎯 Purpose & Impact

  • Ensures more Ultralytics web properties are included in search engine discovery and indexing, not just the main docs and website 📈
  • Makes CI failures easier to catch and act on, helping prevent missed sitemap submissions from going unnoticed 🛡️
  • Improves maintainability of the workflow, so adding or updating domains/languages is simpler in the future ✨
  • Reduces the chance of indexing delays by clearly reporting failed sitemap submissions and stopping on errors ⏱️
  • Keeps IndexNow updates efficient by submitting only recently changed docs pages by default, which can reduce unnecessary indexing requests 🎯
  • Overall, this PR strengthens search indexing automation and makes site update handling more dependable for users and maintainers alike 🤝

@vercel
Copy link
Copy Markdown

vercel Bot commented May 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment May 2, 2026 11:25am

Request Review

@UltralyticsAssistant UltralyticsAssistant added devops GitHub Devops or MLops documentation Improvements or additions to documentation enhancement New feature or request labels May 2, 2026
@UltralyticsAssistant
Copy link
Copy Markdown
Member

👋 Hello @glenn-jocher, thank you for submitting a ultralytics/docs 🚀 PR! This is an automated message to help with review readiness—an engineer will assist you shortly. Please review the checklist below for a smooth merge ✨

  • Define a Purpose: Clearly explain the purpose of your fix or feature in your PR description, and link to any relevant issues. Ensure your commit messages are clear, concise, and adhere to the project's conventions.
  • Synchronize with Source: Confirm your PR is synchronized with the ultralytics/docs main branch. If it's behind, update it by clicking the 'Update branch' button or by running git pull and git merge main locally.
  • Ensure CI Checks Pass: Verify all Ultralytics Continuous Integration (CI) checks are passing. If any checks fail, please address the issues.
  • Update Documentation: Update the relevant documentation for any new or modified features.
  • Add Tests: If applicable, include or update tests to cover your changes, and confirm that all tests are passing.
  • Sign the CLA: Please ensure you have signed our Contributor License Agreement if this is your first Ultralytics PR by writing "I have read the CLA Document and I sign the CLA" in a new message.
  • Minimize Changes: Limit your changes to the minimum necessary for your bug fix or feature addition. "It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is." — Bruce Lee

For more guidance, please refer to our Contributing Guide. Don't hesitate to leave a comment if you have any questions. Thank you for contributing to Ultralytics! 🚀

Copy link
Copy Markdown
Member

@UltralyticsAssistant UltralyticsAssistant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 PR Review

Made with ❤️ by Ultralytics Actions

The workflow refactor looks solid overall, and the GITHUB_ENV quoting fix plus shared sitemap mapping improve maintainability. One functional concern remains: Academy and Handbook are included in the IndexNow loop, but their normal changed-file submission path is disabled, so they won't actually send incremental updates unless a full submission is forced.

💬 Posted 1 inline comment

Comment thread .github/workflows/sitemaps.yml
@glenn-jocher glenn-jocher marked this pull request as draft May 2, 2026 11:08
@glenn-jocher
Copy link
Copy Markdown
Member Author

Status: leaving this PR in draft for now.

Current validation:

  • PR checks are green on the branch, but the live manual sitemap submission test is not green.
  • Manual workflow run 25250527373 on add-academy-handbook-sitemaps submitted existing www.ultralytics.com and docs.ultralytics.com sitemaps successfully.
  • The same run failed the new GSC submissions with 403 insufficient permission for both:
    • https://academy.ultralytics.com/sitemap.xml
    • https://handbook.ultralytics.com/sitemap.xml
  • IndexNow key verification is also not ready for the new hosts: the current key path returns 404 on both Academy and Handbook.

What needs to happen before this PR is ready:

  1. GSC: grant the service account from GOOGLE_SEARCH_CONSOLE_API_JSON access to the exact URL-prefix properties:
    • https://academy.ultralytics.com/
    • https://handbook.ultralytics.com/
      Full user or owner access should be sufficient for sitemap submission.
  2. IndexNow: serve the current IndexNow key file on both hosts at the root key path:
    • https://academy.ultralytics.com/1d4e5b23180545f89544dbeddb09bc2c.txt
    • https://handbook.ultralytics.com/1d4e5b23180545f89544dbeddb09bc2c.txt
      The file content should be exactly 1d4e5b23180545f89544dbeddb09bc2c.
  3. After both are enabled, rerun Submit Sitemaps on this branch. If GSC passes and the key files return 200, update this PR to include Academy/Handbook in the IndexNow loop and rerun validation.

The current PR intentionally keeps IndexNow scoped to docs.ultralytics.com until the new hosts serve the key file, and it now fails visibly if GSC rejects any sitemap instead of hiding the failure in a successful workflow run.

@glenn-jocher
Copy link
Copy Markdown
Member Author

Update after testing the base-domain Search Console property:

  • I changed this PR to submit the new Academy and Handbook sitemaps through sc-domain:ultralytics.com, while leaving the existing www and docs URL-prefix submissions unchanged.
  • Manual workflow run 25250573836 now passes GSC submission for both new sitemaps:
    • https://academy.ultralytics.com/sitemap.xml
    • https://handbook.ultralytics.com/sitemap.xml
  • IndexNow is still not ready for the new hosts. The current key path still returns 404 on both:
    • https://academy.ultralytics.com/1d4e5b23180545f89544dbeddb09bc2c.txt
    • https://handbook.ultralytics.com/1d4e5b23180545f89544dbeddb09bc2c.txt

Current state: GSC is working with the Domain property; IndexNow remains docs-only until Academy and Handbook serve the key file. Keeping this PR in draft for now.

@glenn-jocher glenn-jocher marked this pull request as ready for review May 2, 2026 11:25
@glenn-jocher glenn-jocher merged commit 78fd310 into main May 2, 2026
6 checks passed
@glenn-jocher glenn-jocher deleted the add-academy-handbook-sitemaps branch May 2, 2026 11:26
@UltralyticsAssistant
Copy link
Copy Markdown
Member

Merged — fantastic improvement, @glenn-jocher! 🚀

“Success is the sum of small efforts, repeated day in and day out.” — Robert Collier

This update is a great example of that idea in action: stronger sitemap coverage, clearer failure handling, and more reliable indexing automation across Ultralytics properties all add up to a big win for maintainability and discoverability. Thanks for pushing this forward and making the workflow more robust for the whole ecosystem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops GitHub Devops or MLops documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants