Refactor SEO routing and page structure

- Replaced SeoProgrammaticPage with SeoRoutePage to handle dynamic routing for SEO pages.
- Updated App.tsx to use SeoRoutePage for dynamic routes.
- Consolidated SEO page logic into SeoPage component.
- Removed individual SEO programmatic routes and replaced them with a dynamic route structure.
- Added tests to ensure all routes are accounted for and dynamic SEO routes are present.
- Introduced new SeoRoutePage to manage locale and slug parameters for SEO pages.
This commit is contained in:
Your Name
2026-03-21 09:41:52 +02:00
parent e1585216e6
commit a8a7ec55a2
7 changed files with 425 additions and 363 deletions

View File

@@ -25,8 +25,7 @@ const BlogPage = lazy(() => import('@/pages/BlogPage'));
const BlogPostPage = lazy(() => import('@/pages/BlogPostPage'));
const DevelopersPage = lazy(() => import('@/pages/DevelopersPage'));
const InternalAdminPage = lazy(() => import('@/pages/InternalAdminPage'));
const SeoProgrammaticPage = lazy(() => import('@/pages/SeoProgrammaticPage'));
const SeoCollectionPage = lazy(() => import('@/pages/SeoCollectionPage'));
const SeoRoutePage = lazy(() => import('@/pages/SeoRoutePage'));
// Tool Pages
const PdfToWord = lazy(() => import('@/components/tools/PdfToWord'));
@@ -119,15 +118,8 @@ export default function App() {
<Route path="/blog/:slug" element={<BlogPostPage />} />
<Route path="/developers" element={<DevelopersPage />} />
<Route path="/internal/admin" element={<InternalAdminPage />} />
<Route path="/pdf-to-word" element={<SeoProgrammaticPage slug="pdf-to-word" />} />
<Route path="/word-to-pdf" element={<SeoProgrammaticPage slug="word-to-pdf" />} />
<Route path="/compress-pdf-online" element={<SeoProgrammaticPage slug="compress-pdf-online" />} />
<Route path="/convert-jpg-to-pdf" element={<SeoProgrammaticPage slug="convert-jpg-to-pdf" />} />
<Route path="/merge-pdf-files" element={<SeoProgrammaticPage slug="merge-pdf-files" />} />
<Route path="/remove-pdf-password" element={<SeoProgrammaticPage slug="remove-pdf-password" />} />
<Route path="/best-pdf-tools" element={<SeoCollectionPage slug="best-pdf-tools" />} />
<Route path="/free-pdf-tools-online" element={<SeoCollectionPage slug="free-pdf-tools-online" />} />
<Route path="/convert-files-online" element={<SeoCollectionPage slug="convert-files-online" />} />
<Route path="/ar/:slug" element={<SeoRoutePage />} />
<Route path="/:slug" element={<SeoRoutePage />} />
{/* PDF Tools */}
<Route path="/tools/pdf-to-word" element={<ToolLandingPage slug="pdf-to-word"><PdfToWord /></ToolLandingPage>} />