feat: enhance SEO by updating robots.txt, adding sitemap.xml, and imp…#43
feat: enhance SEO by updating robots.txt, adding sitemap.xml, and imp…#43
Conversation
…roving meta tags across routes
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull Request Overview
This PR enhances SEO for the Remote MCP platform by implementing comprehensive meta tags, adding robots.txt directives, creating a sitemap, and optimizing performance through lazy loading and resource hints.
Key Changes:
- Added SEO meta tags (title, description, robots) and canonical URLs across 5 routes (login, settings, runs, chat, root)
- Updated robots.txt to allow homepage crawling while blocking authenticated routes and API endpoints
- Created sitemap.xml with homepage entry
- Implemented performance optimizations (lazy loading images, preload/preconnect hints, will-change CSS properties)
- Improved semantic HTML (h3 → p tag in video overlay)
Reviewed Changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| vite.config.ts | Added compatibilityDate configuration for TanStack Start |
| src/routes/__root.tsx | Enhanced default meta tags with comprehensive description, robots directive, theme color, favicon, and canonical URL |
| src/routes/login.tsx | Added page-specific SEO meta tags with noindex/nofollow for auth page |
| src/routes/_authed/settings.tsx | Added SEO meta tags with noindex/nofollow for user settings |
| src/routes/_authed/runs.tsx | Added SEO meta tags with noindex/nofollow for execution logs |
| src/routes/_authed/chat.tsx | Added SEO meta tags with noindex/nofollow for chat interface |
| src/routes/index.tsx | Added resource hints (preload for logo, preconnect for GitHub) |
| src/components/landing/HeroSection.tsx | Added will-change CSS hints, preload metadata for video, and fixed semantic HTML (h3→p) |
| src/components/landing/AvailableAppsSection.tsx | Added viewport margin for earlier animation triggers and will-change hint |
| src/components/AppLogo.tsx | Added lazy loading, async decoding, and explicit dimensions for images |
| public/sitemap.xml | Created XML sitemap with homepage entry |
| public/robots.txt | Updated to allow homepage, block authenticated routes, and reference sitemap |
| public/firecrawl-logo.png | Added new logo asset (binary file) |
| delay: categoryIndex * 0.1 + appIndex * 0.05, | ||
| }} | ||
| viewport={{ once: true }} | ||
| viewport={{ once: true, margin: "100px" }} |
There was a problem hiding this comment.
[nitpick] The margin: "100px" viewport option causes animations to trigger 100px before elements enter the viewport. While this creates a smoother user experience, it may cause performance issues on pages with many animated elements, as animations will start rendering off-screen. Consider reducing this value (e.g., "50px") or measuring the performance impact on lower-end devices.
| viewport={{ once: true, margin: "100px" }} | |
| viewport={{ once: true, margin: "50px" }} |
| { | ||
| rel: "preconnect", | ||
| href: "https://github.com", | ||
| }, |
There was a problem hiding this comment.
[nitpick] Preconnecting to https://github.com without a crossorigin attribute may not be effective if GitHub resources are served from a different subdomain or require CORS. Consider adding the crossorigin attribute if this is intended for loading resources from GitHub's CDN or API endpoints. Additionally, verify that GitHub resources are actually loaded on the homepage to justify this preconnect hint.
| { | |
| rel: "preconnect", | |
| href: "https://github.com", | |
| }, |
| width="40" | ||
| height="40" |
There was a problem hiding this comment.
The hardcoded width="40" and height="40" attributes may not match all use cases of the AppLogo component. If the component is used with different sizes via the className prop, these fixed dimensions could cause aspect ratio issues or conflict with CSS sizing. Consider making these dimensions configurable via props or ensuring they match the default CSS dimensions defined in className.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…roving meta tags across routes