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
// 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
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
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
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
<meta property="og:type" content="website" />
<meta property="og:title" content="Open Navigator - AI-Powered Civic Engagement Platform" />
<meta property="og:description" content="..." />
<meta property="og:image" content="..." />
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
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="..." />
<meta name="twitter:image" content="..." />
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
{
"@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
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.htmlwebsite/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
-
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
-
Add Alt Text to Images
 -
Internal Linking
- Link related documentation pages together
- Use descriptive anchor text (not "click here")
- Create a logical site structure
-
Content Length
- Aim for 1000+ words on key pages
- Comprehensive guides rank better
- Answer user questions thoroughly
Technical SEO
-
Create a Social Card Image
- Design a 1200x630px image for
og:image - Place in
website/static/img/orfrontend/public/ - Update meta tags to use it:
<meta property="og:image" content="https://www.communityone.com/social-card.png" /> - Design a 1200x630px image for
-
Add Breadcrumbs
- Docusaurus supports breadcrumbs by default
- Enable in docs frontmatter:
---hide_breadcrumbs: false--- -
Improve URL Structure
- Use kebab-case filenames
- Keep URLs short and descriptive
- Include target keywords
-
Page Speed Optimization
- Test with Google PageSpeed Insights
- Optimize images (WebP format)
- Enable compression
- Minimize JavaScript bundles
- Use lazy loading for images
-
Mobile Responsiveness
- Already configured with viewport meta tag
- Test on multiple devices
- Use Chrome DevTools mobile emulation
Search Console Integration
-
Submit Sitemap to Google
- Go to Google Search Console
- Add property:
https://www.communityone.com - Verify ownership (HTML file verification already deployed):
- Verification file:
google6934fc6e3618949f.html - Located in:
frontend/public/andwebsite/static/ - Accessible at:
https://www.communityone.com/google6934fc6e3618949f.html
- Verification file:
- Submit sitemap:
https://www.communityone.com/sitemap.xml - Monitor indexing status
-
Submit to Bing Webmaster Tools
- Visit Bing Webmaster Tools
- Add site and verify ownership
- Submit sitemap
Content Strategy
-
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"
- Use the blog at
-
Create FAQ Pages
- Answer common questions
- Use schema.org FAQPage structured data
- Target "question" keywords
-
Add Testimonials/Case Studies
- Social proof improves conversions
- Can use Review schema markup
- Showcase real-world usage
Documentation SEO
-
Optimize Frontmatter
- Add
descriptionto every doc page:
---sidebar_position: 1description: "Learn how to install and configure Open Navigator for tracking municipal meetings and policy opportunities."--- - Add
-
Use Admonitions
- Already using
:::tipblocks - Also use
:::info,:::warning,:::danger - Makes content more scannable
- Already using
-
Add Last Updated Dates
- Shows content is fresh
- Enable in Docusaurus:
docs: {showLastUpdateTime: true,showLastUpdateAuthor: true,}
📊 Monitoring SEO Performance
Key Metrics to Track
-
Google Search Console
- Total clicks and impressions
- Average position for keywords
- Click-through rate (CTR)
- Pages with indexing issues
-
Google Analytics
- Organic search traffic
- Bounce rate by page
- Average session duration
- Top landing pages
-
Page Speed
- Core Web Vitals (LCP, FID, CLS)
- Mobile vs. Desktop performance
- Page load times
Tools to Use
- Google Search Console - Monitor search performance
- Google PageSpeed Insights - Test page speed
- Ahrefs or SEMrush - Keyword research
- Schema.org Validator - Test structured data
- Facebook Sharing Debugger - Test Open Graph tags
- Twitter Card Validator - Test Twitter cards
🎯 Quick Wins (Do These First)
- Submit sitemap to Google Search Console (5 minutes)
- Add property:
https://www.communityone.com - Submit sitemap:
https://www.communityone.com/sitemap.xml
- Add property:
- Create social card image (30 minutes)
- Add alt text to all images (1 hour)
- Add description frontmatter to top 10 pages (1 hour)
- Write first blog post (2 hours)
- 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:
-
Validate Structured Data
# Test locallynpm run buildnpm run serve# Then visit: https://validator.schema.org/ -
Test Social Sharing
- Use Facebook Sharing Debugger
- Use Twitter Card Validator
- Share internally to verify appearance
-
Check Mobile Friendliness
- Google Mobile-Friendly Test
- Test on real devices
-
Monitor Search Console
- Check for crawl errors weekly
- Track keyword rankings
- Monitor click-through rates
📚 Resources
- Google SEO Starter Guide
- Docusaurus SEO
- Schema.org Documentation
- Open Graph Protocol
- Moz Beginner's Guide to SEO
Last Updated: May 1, 2026
For questions about SEO implementation, visit the Developer Documentation or open an issue on GitHub.