mirror of
https://github.com/vinta/awesome-python.git
synced 2026-05-07 14:17:36 -05:00
[PR #3103] [MERGED] Improve SEO/AEO discovery surface for awesome-python.com #16038
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/3103
Author: @vinta
Created: 5/1/2026
Status: ✅ Merged
Merged: 5/1/2026
Merged by: @vinta
Base:
master← Head:feature/better-seo📝 Commits (6)
f99b8baupdate gitignore2e79365feat: tighten homepage metadata1b962cbfix: trim generated HTML whitespace545f460feat(website): add discovery files and markdown alternatef8cde59feat(website): add sitemap lastmodd988f63feat(seo): add Content-Signal directive to robots.txt📊 Changes
5 files changed (+259 additions, -26 deletions)
View changed files
📝
.gitignore(+6 -6)📝
README.md(+1 -1)📝
website/build.py(+67 -2)📝
website/templates/base.html(+18 -17)📝
website/tests/test_build.py(+167 -0)📄 Description
Summary
Adds the SEO/AEO foundation for
awesome-python.comso the site is easier for traditional search engines and AI answer engines to discover, crawl, and represent accurately. All artifacts are generated bywebsite/build.pyso nothing inwebsite/output/is hand-edited.website/templates/base.html,website/build.py): single intent-rich<title>, generated meta description with category/entry counts, canonical URL, aligned Open Graph + Twitter tags,summary_large_imagecard.website/build.py): generatedrobots.txtandsitemap.xml.sitemap.xmlis valid XML with absolute canonical URLs and a<lastmod>date that reflects each build.website/build.py,website/templates/base.html): generated/index.mdand/llms.txt(README-derived, with the top-level Sponsors section stripped) plus a<link rel=\"alternate\" type=\"text/markdown\">on the homepage.index.mdis intentionally not added to the sitemap because it is an alternate representation, not a separate canonical page.website/build.py):robots.txtnow includesContent-Signal: search=yes, ai-input=yes, ai-train=yesinside theUser-agent: *group. Open policy that allows search indexing, AI grounding/RAG, and model training, consistent with the existing MIT/CC license posture.README.md; ignoredocs/and.agents/planning artifacts.Output verified locally:
Test plan
make buildsucceedsuv run pytest website/tests/test_build.py -v(39 passed)website/output/robots.txt,sitemap.xml,index.html,index.md,llms.txtcurl -I https://awesome-python.com/robots.txt,.../sitemap.xml,.../llms.txtreturn 200 with expected content types🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.