-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Fixes #5231: Implement comprehensive SEO improvements for Google indexing #5272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,129 @@ | ||
| # SEO Improvements for Roo Code Website | ||
|
|
||
| This document outlines the SEO improvements implemented to help index the Roo Code website in Google search results. | ||
|
|
||
| ## Changes Made | ||
|
|
||
| ### 1. robots.txt File | ||
|
|
||
| - **Location**: `public/robots.txt` | ||
| - **Purpose**: Guides search engine crawlers on how to index the site | ||
| - **Features**: | ||
| - Allows all major search engines (Google, Bing, Yahoo, DuckDuckGo) | ||
| - Points to sitemap location | ||
| - Sets crawl delay for polite crawling | ||
| - Blocks unnecessary paths like `/api/`, `/_next/`, etc. | ||
|
|
||
| ### 2. Dynamic Sitemap | ||
|
|
||
| - **Location**: `src/app/sitemap.ts` (replaces static `sitemap.xml`) | ||
| - **Purpose**: Provides search engines with a complete list of all pages | ||
| - **Features**: | ||
| - Automatically generates sitemap with all pages | ||
| - Includes proper priority and change frequency settings | ||
| - Updates automatically when new pages are added | ||
|
|
||
| ### 3. Enhanced Metadata | ||
|
|
||
| - **Location**: `src/app/layout.tsx` | ||
| - **Improvements**: | ||
| - Added comprehensive keywords for AI coding, VS Code, development tools | ||
| - Enhanced Open Graph and Twitter Card metadata | ||
| - Added proper robots meta tags for better crawling | ||
| - Added Google verification placeholder (needs actual verification code) | ||
| - Improved title templates for consistent branding | ||
|
|
||
| ### 4. Structured Data (Schema.org) | ||
|
|
||
| - **Location**: `src/app/layout.tsx` | ||
| - **Added Schema Types**: | ||
| - **Organization**: Company information, contact details, address | ||
| - **WebSite**: Site information with search action | ||
| - **SoftwareApplication**: Product details for the VS Code extension | ||
|
|
||
| ### 5. Page-Specific Metadata | ||
|
|
||
| - **Enterprise Page**: Added comprehensive metadata with proper titles and descriptions | ||
|
|
||
| ## Next Steps for Complete Google Indexing | ||
|
|
||
| ### 1. Google Search Console Setup (REQUIRED) | ||
|
|
||
| 1. Go to [Google Search Console](https://search.google.com/search-console/) | ||
| 2. Add property for `https://roocode.com` | ||
| 3. Verify ownership using one of these methods: | ||
| - **HTML file upload** (recommended) | ||
| - **HTML tag** (replace placeholder in layout.tsx) | ||
| - **DNS record** | ||
| - **Google Analytics** | ||
| - **Google Tag Manager** | ||
|
|
||
| ### 2. Submit Sitemap | ||
|
|
||
| After Search Console verification: | ||
|
|
||
| 1. Go to "Sitemaps" section | ||
| 2. Submit: `https://roocode.com/sitemap.xml` | ||
|
|
||
| ### 3. Request Indexing | ||
|
|
||
| 1. Use "URL Inspection" tool in Search Console | ||
| 2. Request indexing for key pages: | ||
| - `https://roocode.com/` | ||
| - `https://roocode.com/enterprise` | ||
| - `https://roocode.com/evals` | ||
|
|
||
| ### 4. Monitor Performance | ||
|
|
||
| - Check "Coverage" report for indexing issues | ||
| - Monitor "Performance" for search appearance | ||
| - Review "Enhancements" for structured data validation | ||
|
|
||
| ## Additional Recommendations | ||
|
|
||
| ### 1. Content Optimization | ||
|
|
||
| - Ensure all pages have unique, descriptive titles | ||
| - Add more content to pages that are content-light | ||
| - Include relevant keywords naturally in content | ||
|
|
||
| ### 2. Technical SEO | ||
|
|
||
| - Ensure fast loading times | ||
| - Optimize images with alt text | ||
| - Implement proper heading hierarchy (H1, H2, H3) | ||
|
|
||
| ### 3. Link Building | ||
|
|
||
| - Add internal links between related pages | ||
| - Consider getting backlinks from relevant tech blogs/sites | ||
| - Submit to relevant directories (GitHub, VS Code marketplace, etc.) | ||
|
|
||
| ### 4. Social Signals | ||
|
|
||
| - Share content on social media | ||
| - Encourage community engagement | ||
| - Consider creating blog content about AI development | ||
|
|
||
| ## Verification | ||
|
|
||
| To verify the improvements are working: | ||
|
|
||
| 1. **Test robots.txt**: Visit `https://roocode.com/robots.txt` | ||
| 2. **Test sitemap**: Visit `https://roocode.com/sitemap.xml` | ||
| 3. **Validate structured data**: Use [Google's Rich Results Test](https://search.google.com/test/rich-results) | ||
| 4. **Check meta tags**: Use browser dev tools or online SEO checkers | ||
|
|
||
| ## Expected Timeline | ||
|
|
||
| - **Immediate**: Technical improvements are live | ||
| - **1-2 weeks**: Google discovers and starts crawling | ||
| - **2-4 weeks**: Pages begin appearing in search results | ||
| - **1-3 months**: Full indexing and ranking improvements | ||
|
|
||
| ## Notes | ||
|
|
||
| - The Google verification meta tag in `layout.tsx` contains a placeholder | ||
| - Replace `"google-site-verification-placeholder"` with actual verification code from Search Console | ||
| - Monitor Search Console regularly for any crawling issues | ||
| - Consider implementing Google Analytics for additional insights |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| User-agent: * | ||
| Allow: / | ||
|
|
||
| # Sitemap | ||
| Sitemap: https://roocode.com/sitemap.xml | ||
|
|
||
| # Crawl-delay for polite crawling | ||
| Crawl-delay: 1 | ||
|
|
||
| # Allow all major search engines | ||
| User-agent: Googlebot | ||
| Allow: / | ||
|
|
||
| User-agent: Bingbot | ||
| Allow: / | ||
|
|
||
| User-agent: Slurp | ||
| Allow: / | ||
|
|
||
| User-agent: DuckDuckBot | ||
| Allow: / | ||
|
|
||
| # Block common bot paths that aren't needed | ||
| Disallow: /api/ | ||
| Disallow: /_next/ | ||
| Disallow: /admin/ | ||
| Disallow: *.json$ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,12 +11,60 @@ import "./globals.css" | |
| const inter = Inter({ subsets: ["latin"] }) | ||
|
|
||
| export const metadata: Metadata = { | ||
| title: "Roo Code β Your AI-Powered Dev Team in VS Code", | ||
| title: { | ||
| default: "Roo Code β Your AI-Powered Dev Team in VS Code", | ||
| template: "%s | Roo Code", | ||
| }, | ||
| description: | ||
| "Roo Code puts an entire AI dev team right in your editor, outpacing closed tools with deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.", | ||
| keywords: [ | ||
| "AI coding assistant", | ||
| "VS Code extension", | ||
| "AI development tools", | ||
| "code completion", | ||
| "AI pair programming", | ||
| "developer productivity", | ||
| "coding AI", | ||
| "software development", | ||
| "AI code generation", | ||
| "intelligent code editor", | ||
| ], | ||
| authors: [{ name: "Roo Code, Inc." }], | ||
| creator: "Roo Code, Inc.", | ||
| publisher: "Roo Code, Inc.", | ||
| alternates: { | ||
| canonical: "https://roocode.com", | ||
| }, | ||
| openGraph: { | ||
| type: "website", | ||
| locale: "en_US", | ||
| url: "https://roocode.com", | ||
| siteName: "Roo Code", | ||
| title: "Roo Code β Your AI-Powered Dev Team in VS Code", | ||
| description: | ||
| "Roo Code puts an entire AI dev team right in your editor, outpacing closed tools with deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.", | ||
| }, | ||
| twitter: { | ||
| card: "summary_large_image", | ||
| title: "Roo Code β Your AI-Powered Dev Team in VS Code", | ||
| description: | ||
| "Roo Code puts an entire AI dev team right in your editor, outpacing closed tools with deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.", | ||
| creator: "@RooCodeInc", | ||
| }, | ||
| robots: { | ||
| index: true, | ||
| follow: true, | ||
| googleBot: { | ||
| index: true, | ||
| follow: true, | ||
| "max-video-preview": -1, | ||
| "max-image-preview": "large", | ||
| "max-snippet": -1, | ||
| }, | ||
| }, | ||
| verification: { | ||
| google: "google-site-verification-placeholder", // This should be replaced with actual verification code | ||
| }, | ||
| icons: { | ||
| icon: [ | ||
| { url: "/favicon.ico" }, | ||
|
|
@@ -52,6 +100,89 @@ export default function RootLayout({ children }: { children: React.ReactNode }) | |
| /> | ||
| </head> | ||
| <body className={inter.className}> | ||
| <script | ||
| type="application/ld+json" | ||
| dangerouslySetInnerHTML={{ | ||
| __html: JSON.stringify({ | ||
| "@context": "https://schema.org", | ||
| "@type": "Organization", | ||
| name: "Roo Code, Inc.", | ||
| alternateName: "Roo Code", | ||
| url: "https://roocode.com", | ||
| logo: "https://roocode.com/Roo-Code-Logo-Horiz-blk.svg", | ||
| description: | ||
| "Roo Code puts an entire AI dev team right in your editor, outpacing closed tools with deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.", | ||
| foundingDate: "2024", | ||
| industry: "Software Development", | ||
| sameAs: [ | ||
| "https://github.com/RooCodeInc/Roo-Code", | ||
| "https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline", | ||
| ], | ||
| contactPoint: { | ||
| "@type": "ContactPoint", | ||
| contactType: "customer service", | ||
| email: "[email protected]", | ||
| }, | ||
| address: { | ||
| "@type": "PostalAddress", | ||
| streetAddress: "98 Graceland Dr", | ||
| addressLocality: "San Rafael", | ||
| addressRegion: "CA", | ||
| postalCode: "94901", | ||
| addressCountry: "US", | ||
| }, | ||
| }), | ||
| }} | ||
| /> | ||
| <script | ||
| type="application/ld+json" | ||
| dangerouslySetInnerHTML={{ | ||
| __html: JSON.stringify({ | ||
| "@context": "https://schema.org", | ||
| "@type": "WebSite", | ||
| name: "Roo Code", | ||
| url: "https://roocode.com", | ||
| description: | ||
| "Your AI-Powered Dev Team in VS Code. Deep project-wide context, multi-step agentic coding, and unmatched developer-centric flexibility.", | ||
| publisher: { | ||
| "@type": "Organization", | ||
| name: "Roo Code, Inc.", | ||
| }, | ||
| potentialAction: { | ||
| "@type": "SearchAction", | ||
| target: "https://roocode.com/search?q={search_term_string}", | ||
| "query-input": "required name=search_term_string", | ||
| }, | ||
| }), | ||
| }} | ||
| /> | ||
| <script | ||
| type="application/ld+json" | ||
| dangerouslySetInnerHTML={{ | ||
| __html: JSON.stringify({ | ||
| "@context": "https://schema.org", | ||
| "@type": "SoftwareApplication", | ||
| name: "Roo Code", | ||
| applicationCategory: "DeveloperApplication", | ||
| operatingSystem: "VS Code", | ||
| description: | ||
| "AI-powered development assistant that puts an entire dev team right in your VS Code editor.", | ||
| url: "https://roocode.com", | ||
| downloadUrl: | ||
| "https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline", | ||
| author: { | ||
| "@type": "Organization", | ||
| name: "Roo Code, Inc.", | ||
| }, | ||
| offers: { | ||
| "@type": "Offer", | ||
| price: "0", | ||
| priceCurrency: "USD", | ||
| availability: "https://schema.org/InStock", | ||
| }, | ||
| }), | ||
| }} | ||
| /> | ||
| <div itemScope itemType="https://schema.org/WebSite"> | ||
| <link itemProp="url" href="https://roocode.com" /> | ||
| <meta itemProp="name" content="Roo Code" /> | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| import { MetadataRoute } from "next" | ||
|
|
||
| export default function sitemap(): MetadataRoute.Sitemap { | ||
| const baseUrl = "https://roocode.com" | ||
|
|
||
| return [ | ||
| { | ||
| url: baseUrl, | ||
| lastModified: new Date(), | ||
| changeFrequency: "weekly", | ||
| priority: 1, | ||
| }, | ||
| { | ||
| url: `${baseUrl}/enterprise`, | ||
| lastModified: new Date(), | ||
| changeFrequency: "monthly", | ||
| priority: 0.8, | ||
| }, | ||
| { | ||
| url: `${baseUrl}/evals`, | ||
| lastModified: new Date(), | ||
| changeFrequency: "weekly", | ||
| priority: 0.7, | ||
| }, | ||
| { | ||
| url: `${baseUrl}/privacy`, | ||
| lastModified: new Date(), | ||
| changeFrequency: "yearly", | ||
| priority: 0.3, | ||
| }, | ||
| { | ||
| url: `${baseUrl}/terms`, | ||
| lastModified: new Date(), | ||
| changeFrequency: "yearly", | ||
| priority: 0.3, | ||
| }, | ||
| ] | ||
| } |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.