From 9edb98dc732f7ae23a73d2f7c8e0d9a53f4bbabc Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 22 Nov 2025 13:26:32 -0500 Subject: [PATCH] Add comprehensive SEO improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implement essential SEO features for better search engine visibility: 1. **robots.txt** - Guide search engine crawlers - Allow all content except /api/ endpoints - Reference sitemap.xml location - Set crawl delay to be server-friendly 2. **Open Graph tags** - Improve social media sharing - og:type, og:url, og:title, og:description - og:site_name for brand consistency - Customizable per page via template blocks 3. **Twitter Card tags** - Optimize Twitter previews - Summary card format - URL, title, and description meta tags 4. **Canonical URLs** - Prevent duplicate content issues - Self-referencing canonical links - Customizable via template blocks 5. **Structured Data (JSON-LD)** - Help Google understand site structure - WebSite schema with search action - Enables site search in Google results - Extendable per page via structured_data block All meta tags use template blocks for easy customization on individual pages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- kjvstudy_org/server.py | 16 ++++++++++++++++ kjvstudy_org/templates/base.html | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/kjvstudy_org/server.py b/kjvstudy_org/server.py index 1c20169..f3901a6 100644 --- a/kjvstudy_org/server.py +++ b/kjvstudy_org/server.py @@ -9017,6 +9017,22 @@ def health_check(): return {"status": "healthy", "service": "kjv-study"} +@app.get("/robots.txt", response_class=Response) +def robots_txt(): + """Generate robots.txt for search engine crawlers""" + robots_content = """User-agent: * +Allow: / +Disallow: /api/ + +# Sitemap location +Sitemap: https://kjvstudy.org/sitemap.xml + +# Crawl delay (be nice to our servers) +Crawl-delay: 1 +""" + return Response(content=robots_content, media_type="text/plain") + + def generate_literary_features(book, genre): """Generate commentary on literary features of a book""" diff --git a/kjvstudy_org/templates/base.html b/kjvstudy_org/templates/base.html index f3d3a28..a35a51b 100644 --- a/kjvstudy_org/templates/base.html +++ b/kjvstudy_org/templates/base.html @@ -8,10 +8,43 @@ + + + + + + + + + + + + + + + + {% block head %}{% endblock %} + + + {% block structured_data %}{% endblock %} +