Goal: Close the gap with quran.com and establish tech-lead in Quranic SEO.
- Requirement: Rename route directory from
src/app/pages/tosrc/app/page/. - Action: Update file paths,
generateStaticParams, andsitemap.xmlgeneration logic.
- Requirement: Metadata must describe specific content, not just "Page X".
- Implementation:
- Pull first
uthmani_textfrom localpublic/api/static/pages/${number}.json. - Pull Surah metadata (Meccan/Medinan, Order, Meaning) from
surahs.json. - Snippet Template: "Read Surah [Name] ([Meaning]). Revealed in [Place]. [Verse 1 Snippet]..."
- Pull first
- Requirement: Add
rel="prev"andrel="next"to the<head>. - Why: Quran.com doesn't have this. It helps crawlers map the sequence of the 604 pages as a single cohesive book.
- Requirement: Implement
BreadcrumbListJSON-LD. - Structure:
Home > Surah [Name]orHome > Page [Number]. - Goal: Enable "Hierarchy snippets" in Google search (e.g.,
quran.mr3od.dev › 2 › al-baqarah).
- Requirement: Support URLs like
/al-baqarahin addition to/2. - Task: Create a slug mapping and ensure that visits to numerical routes (e.g.,
/2) set their<link rel="canonical">to the slug-based version.
- Requirement: Replace static
icon.pngin social shares. - Task: Define a strategy for on-the-fly image generation (e.g., Vercel OG or similar) to render Surah Name and Verse Number onto the preview image.
- Requirement: Clearly distinguish English UI from Arabic Content in JSON-LD.
- Task: Add
inLanguage: "ar"property specifically to the Quranic text nodes within our schema output.
- Accessibility: All metadata must be present in the initial HTML source (view-source).
- Accuracy: Surah Al-Fatihah metadata must not leak into Surah Al-Baqarah pages.
- Performance: Fetching static JSON for metadata must not significantly slow down build/export time.
- Validation: Run
npm run validate-seoand check for green statuses on all 604 pages.