--- sidebar_position: 10 --- # SEO Optimization Guide This guide explains the SEO improvements implemented for Open Navigator and provides recommendations for ongoing optimization. ## ✅ Implemented Improvements ### 1. Table of Contents Enhancement **Changed:** Increased TOC depth from H2 to H2-H4 ```typescript // website/docusaurus.config.ts tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4, // Now shows h2, h3, and h4 headings } ``` **Impact:** Better page navigation and improved user experience, which helps with SEO rankings. ### 2. Google Analytics Enabled **Changed:** Enabled Google Analytics tracking ```typescript gtag: { trackingID: 'G-5EQV815915', anonymizeIP: true, } ``` **Impact:** - Track user behavior and page performance - Measure bounce rates and engagement - Essential data for Search Console integration ### 3. Robots.txt Created **File:** `website/static/robots.txt` ```txt User-agent: * Allow: / Sitemap: https://www.communityone.com/sitemap.xml Crawl-delay: 1 ``` **Impact:** - Tells search engines to crawl all pages - Points to sitemap for efficient indexing - Polite crawl delay prevents server overload ### 4. Sitemap Configuration **Added:** Automated sitemap generation ```typescript sitemap: { changefreq: 'weekly', priority: 0.5, ignorePatterns: ['/tags/**'], filename: 'sitemap.xml', } ``` **Impact:** - Auto-generated at `https://www.communityone.com/sitemap.xml` - Helps search engines discover all pages - Updates weekly to reflect new content ### 5. Enhanced Meta Tags (React App) **File:** `frontend/index.html` **Added:** - Primary meta tags (title, description, keywords, author) - Robots directives (index, follow) - Language and revisit-after tags - Canonical URL for duplicate content prevention **Impact:** Better search engine understanding of page content. ### 6. Open Graph Tags **Added:** Social sharing metadata ```html ``` **Impact:** - Better appearance when shared on Facebook, LinkedIn - Increased click-through rates from social media - Professional brand presentation ### 7. Twitter Card Tags **Added:** Twitter-specific metadata ```html ``` **Impact:** - Rich previews when shared on Twitter/X - Larger image display - Better engagement from social traffic ### 8. Structured Data (JSON-LD) **Added:** Schema.org WebApplication structured data ```json { "@context": "https://schema.org", "@type": "WebApplication", "name": "Open Navigator", "featureList": [...], "audience": {...} } ``` **Impact:** - Rich snippets in Google search results - Better understanding by search engines - Potential for enhanced search appearance - Voice search optimization ### 9. Docusaurus SEO Metadata **Added:** Global metadata for documentation site ```typescript metadata: [ {name: 'keywords', content: '...'}, {property: 'og:type', content: 'website'}, {name: 'twitter:card', content: 'summary_large_image'}, ] ``` **Impact:** Consistent SEO across all documentation pages. ### 10. Google Search Console Verification File **Added:** HTML verification file for domain ownership **Locations:** - `frontend/public/google6934fc6e3618949f.html` - `website/static/google6934fc6e3618949f.html` **Impact:** - Enables Google Search Console setup - Allows monitoring of search performance - Required for sitemap submission - Tracks indexing status and errors ## 🔍 Additional SEO Recommendations ### Content Optimization 1. **Improve Page Headings** - Use clear H1 tags on every page (one per page) - Create hierarchical heading structure (H1 → H2 → H3 → H4) - Include target keywords in headings naturally 2. **Add Alt Text to Images** ```markdown ![Clear description of image for accessibility and SEO](image.png) ``` 3. **Internal Linking** - Link related documentation pages together - Use descriptive anchor text (not "click here") - Create a logical site structure 4. **Content Length** - Aim for 1000+ words on key pages - Comprehensive guides rank better - Answer user questions thoroughly ### Technical SEO 5. **Create a Social Card Image** - Design a 1200x630px image for `og:image` - Place in `website/static/img/` or `frontend/public/` - Update meta tags to use it: ```html ``` 6. **Add Breadcrumbs** - Docusaurus supports breadcrumbs by default - Enable in docs frontmatter: ```yaml --- hide_breadcrumbs: false --- ``` 7. **Improve URL Structure** - Use kebab-case filenames - Keep URLs short and descriptive - Include target keywords 8. **Page Speed Optimization** - Test with [Google PageSpeed Insights](https://pagespeed.web.dev/) - Optimize images (WebP format) - Enable compression - Minimize JavaScript bundles - Use lazy loading for images 9. **Mobile Responsiveness** - Already configured with viewport meta tag - Test on multiple devices - Use Chrome DevTools mobile emulation ### Search Console Integration 10. **Submit Sitemap to Google** 1. Go to [Google Search Console](https://search.google.com/search-console) 2. Add property: `https://www.communityone.com` 3. Verify ownership (HTML file verification already deployed): - Verification file: `google6934fc6e3618949f.html` - Located in: `frontend/public/` and `website/static/` - Accessible at: `https://www.communityone.com/google6934fc6e3618949f.html` 4. Submit sitemap: `https://www.communityone.com/sitemap.xml` 5. Monitor indexing status 11. **Submit to Bing Webmaster Tools** 1. Visit [Bing Webmaster Tools](https://www.bing.com/webmasters) 2. Add site and verify ownership 3. Submit sitemap ### Content Strategy 12. **Blog Regularly** - Use the blog at `website/blog/` - Target long-tail keywords - Share updates about features, case studies - Example topics: - "How to Track Your City Council Meetings" - "Understanding Nonprofit Financial Data" - "Case Study: Using Open Navigator for Advocacy" 13. **Create FAQ Pages** - Answer common questions - Use schema.org FAQPage structured data - Target "question" keywords 14. **Add Testimonials/Case Studies** - Social proof improves conversions - Can use Review schema markup - Showcase real-world usage ### Documentation SEO 15. **Optimize Frontmatter** - Add `description` to every doc page: ```yaml --- sidebar_position: 1 description: "Learn how to install and configure Open Navigator for tracking municipal meetings and policy opportunities." --- ``` 16. **Use Admonitions** - Already using `:::tip` blocks - Also use `:::info`, `:::warning`, `:::danger` - Makes content more scannable 17. **Add Last Updated Dates** - Shows content is fresh - Enable in Docusaurus: ```typescript docs: { showLastUpdateTime: true, showLastUpdateAuthor: true, } ``` ## 📊 Monitoring SEO Performance ### Key Metrics to Track 1. **Google Search Console** - Total clicks and impressions - Average position for keywords - Click-through rate (CTR) - Pages with indexing issues 2. **Google Analytics** - Organic search traffic - Bounce rate by page - Average session duration - Top landing pages 3. **Page Speed** - Core Web Vitals (LCP, FID, CLS) - Mobile vs. Desktop performance - Page load times ### Tools to Use - **[Google Search Console](https://search.google.com/search-console)** - Monitor search performance - **[Google PageSpeed Insights](https://pagespeed.web.dev/)** - Test page speed - **[Ahrefs](https://ahrefs.com/)** or **[SEMrush](https://www.semrush.com/)** - Keyword research - **[Schema.org Validator](https://validator.schema.org/)** - Test structured data - **[Facebook Sharing Debugger](https://developers.facebook.com/tools/debug/)** - Test Open Graph tags - **[Twitter Card Validator](https://cards-dev.twitter.com/validator)** - Test Twitter cards ## 🎯 Quick Wins (Do These First) 1. **Submit sitemap to Google Search Console** (5 minutes) - Add property: `https://www.communityone.com` - Submit sitemap: `https://www.communityone.com/sitemap.xml` 2. **Create social card image** (30 minutes) 3. **Add alt text to all images** (1 hour) 4. **Add description frontmatter to top 10 pages** (1 hour) 5. **Write first blog post** (2 hours) 6. **Set up Google Search Console alerts** (10 minutes) ## 🚀 Long-Term SEO Strategy ### Month 1-2: Foundation - Set up monitoring tools - Fix technical SEO issues - Optimize existing content - Submit sitemaps ### Month 3-4: Content Expansion - Publish 2-4 blog posts per month - Create comprehensive guides - Add case studies - Build internal linking ### Month 5-6: Authority Building - Get backlinks from civic tech sites - Guest post on related blogs - Engage with community - Share on social media ### Month 7-12: Refinement - Analyze top-performing content - Update old content - Target competitive keywords - Expand feature documentation ## 📝 Content Checklist Template Use this for every new documentation page: - [ ] Clear H1 heading with target keyword - [ ] Meta description in frontmatter (150-160 chars) - [ ] Hierarchical heading structure (H1 → H2 → H3) - [ ] Alt text on all images - [ ] Internal links to related pages (3-5 minimum) - [ ] External authoritative references - [ ] Code examples with syntax highlighting - [ ] Call-to-action or next steps - [ ] Minimum 500 words (1000+ for guides) - [ ] Proofread and spell-checked ## 🔧 Testing Your Changes After deploying SEO improvements: 1. **Validate Structured Data** ```bash # Test locally npm run build npm run serve # Then visit: https://validator.schema.org/ ``` 2. **Test Social Sharing** - Use Facebook Sharing Debugger - Use Twitter Card Validator - Share internally to verify appearance 3. **Check Mobile Friendliness** - Google Mobile-Friendly Test - Test on real devices 4. **Monitor Search Console** - Check for crawl errors weekly - Track keyword rankings - Monitor click-through rates ## 📚 Resources - [Google SEO Starter Guide](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) - [Docusaurus SEO](https://docusaurus.io/docs/seo) - [Schema.org Documentation](https://schema.org/) - [Open Graph Protocol](https://ogp.me/) - [Moz Beginner's Guide to SEO](https://moz.com/beginners-guide-to-seo) --- **Last Updated:** May 1, 2026 For questions about SEO implementation, visit the [Developer Documentation](/docs/for-developers) or open an issue on GitHub.