|
8 | 8 | type Integration, |
9 | 9 | POPULAR_WORKFLOWS, |
10 | 10 | } from '@/lib/integrations' |
| 11 | +import { withFilteredNoindex } from '@/lib/landing/seo' |
11 | 12 | import { JsonLd } from '@/app/(landing)/components/json-ld' |
12 | 13 | import { LandingFAQ } from '@/app/(landing)/components/landing-faq' |
13 | 14 | import { IntegrationCard } from '@/app/(landing)/integrations/components/integration-card' |
@@ -92,32 +93,34 @@ export async function generateMetadata({ |
92 | 93 | const { q, category } = await integrationsSearchParamsCache.parse(searchParams) |
93 | 94 | const isFiltered = Boolean(q || category) |
94 | 95 |
|
95 | | - return { |
96 | | - title: 'Integrations', |
97 | | - description: `Connect ${INTEGRATION_COUNT}+ apps and services in Sim's AI workspace. Build agents that automate real work with ${TOP_NAMES.join(', ')}, and more.`, |
98 | | - keywords: [ |
99 | | - 'AI workspace integrations', |
100 | | - 'AI agent integrations', |
101 | | - 'AI agent builder integrations', |
102 | | - ...TOP_NAMES.flatMap((n) => [`${n} integration`, `${n} automation`]), |
103 | | - ...allIntegrations.slice(0, 20).map((i) => `${i.name} automation`), |
104 | | - ], |
105 | | - // og:image/twitter:image come from the sibling opengraph-image.tsx - |
106 | | - // Next serves it at a hash-suffixed URL, so hardcoding it here 404s. |
107 | | - openGraph: { |
108 | | - title: 'Integrations | Sim AI Workspace', |
109 | | - description: `Connect ${INTEGRATION_COUNT}+ apps in Sim's AI workspace. Build agents that link ${TOP_NAMES.join(', ')}, and every tool your team uses.`, |
110 | | - url: `${baseUrl}/integrations`, |
111 | | - type: 'website', |
112 | | - }, |
113 | | - twitter: { |
114 | | - card: 'summary_large_image', |
115 | | - title: 'Integrations | Sim', |
116 | | - description: `Connect ${INTEGRATION_COUNT}+ apps in Sim's AI workspace.`, |
| 96 | + return withFilteredNoindex( |
| 97 | + { |
| 98 | + title: 'Integrations', |
| 99 | + description: `Connect ${INTEGRATION_COUNT}+ apps and services in Sim's AI workspace. Build agents that automate real work with ${TOP_NAMES.join(', ')}, and more.`, |
| 100 | + keywords: [ |
| 101 | + 'AI workspace integrations', |
| 102 | + 'AI agent integrations', |
| 103 | + 'AI agent builder integrations', |
| 104 | + ...TOP_NAMES.flatMap((n) => [`${n} integration`, `${n} automation`]), |
| 105 | + ...allIntegrations.slice(0, 20).map((i) => `${i.name} automation`), |
| 106 | + ], |
| 107 | + // og:image/twitter:image come from the sibling opengraph-image.tsx - |
| 108 | + // Next serves it at a hash-suffixed URL, so hardcoding it here 404s. |
| 109 | + openGraph: { |
| 110 | + title: 'Integrations | Sim AI Workspace', |
| 111 | + description: `Connect ${INTEGRATION_COUNT}+ apps in Sim's AI workspace. Build agents that link ${TOP_NAMES.join(', ')}, and every tool your team uses.`, |
| 112 | + url: `${baseUrl}/integrations`, |
| 113 | + type: 'website', |
| 114 | + }, |
| 115 | + twitter: { |
| 116 | + card: 'summary_large_image', |
| 117 | + title: 'Integrations | Sim', |
| 118 | + description: `Connect ${INTEGRATION_COUNT}+ apps in Sim's AI workspace.`, |
| 119 | + }, |
| 120 | + alternates: { canonical: `${baseUrl}/integrations` }, |
117 | 121 | }, |
118 | | - alternates: { canonical: `${baseUrl}/integrations` }, |
119 | | - ...(isFiltered && { robots: { index: false, follow: true } }), |
120 | | - } |
| 122 | + isFiltered |
| 123 | + ) |
121 | 124 | } |
122 | 125 |
|
123 | 126 | export default async function IntegrationsPage({ |
|
0 commit comments