|
1 | 1 | # 📈 CivicDataSpace – SEO Setup |
2 | 2 |
|
3 | | -A minimal SEO implementation guide for CivicDataSpace to improve indexing, link previews, and structured data support. |
| 3 | +A comprehensive SEO planning and implementation guide for CivicDataSpace |
4 | 4 |
|
5 | 5 | --- |
6 | 6 |
|
7 | | -## ✅ PHASE 1: SITE-LEVEL SEO PLAN |
| 7 | +## SITE LEVEL SEO PLAN |
8 | 8 |
|
9 | | -- **Add `robots.txt`** |
10 | | - Configure search engine crawler access. |
| 9 | +### 1. Add `robots.txt` |
| 10 | +Configure search engine crawler access. |
11 | 11 |
|
12 | | -- **Add `sitemap.xml`** |
13 | | - Help search engines discover all important pages. |
| 12 | +--- |
| 13 | + |
| 14 | +### 2. Add `sitemap.xml` |
| 15 | +Helps search engines discover important pages. |
| 16 | + |
| 17 | +**Tool:** [`next-sitemap`](https://www.npmjs.com/package/next-sitemap) |
| 18 | + |
| 19 | +**Static Links to be Generated:** |
| 20 | +- Home Page |
| 21 | +- Dataset Listing Page |
| 22 | +- Usecase Listing Page |
| 23 | +- Publisher Listing Page |
| 24 | +- Sector Listing Page |
| 25 | +- About-us Page |
| 26 | +- Other Content Pages |
| 27 | + |
| 28 | + |
| 29 | +**Dynamic Links to be Generated:** |
| 30 | +- Dataset Details Page |
| 31 | +- Usecase Details Page |
| 32 | +- Publisher Details Page |
| 33 | +- Sector Details Page |
| 34 | +- Provider Dashboard Pages |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## PAGE-LEVEL SEO PLAN |
| 39 | + |
| 40 | + |
| 41 | +### ✅ SCHEMA MARKUP - Metadata |
| 42 | + |
| 43 | +| Prop | Purpose | |
| 44 | +|--------------|--------------------------------------------------------------| |
| 45 | +| `title` | Page title, shown in browser tab and Google result headline | |
| 46 | +| `description`| Short summary for search result snippet | |
| 47 | +| `url` | Absolute canonical URL of the page | |
| 48 | +| `image` | Preview image for OG and Twitter | |
| 49 | +| `type` | `website`, `article`, or `dataset` | |
| 50 | +| `canonical` | Prevents duplicate content issues | |
| 51 | +| `og:title` | Same as `<title>` | |
| 52 | +| `og:description` | Short summary | |
| 53 | +| `og:image` | 1200×630 preview image | |
| 54 | +| `og:url` | Canonical page URL | |
| 55 | +| `og:type` | Content type: `website`, `article`, `profile` or `blog` (needs exploration) | |
| 56 | +| `og:locale`| The locale meta tag defines the content language. The default is en_US. | |
| 57 | +|`og:site_name` | The site name meta tag defines the name of your website| |
| 58 | +| `twitter:card` | Use `summary_large_image` | |
| 59 | +| `twitter:title` | Same as `og:title` | |
| 60 | +| `twitter:description` | Same as `og:description` | |
| 61 | +| `twitter:image` | Same as `og:image` | |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## ✅ SCHEMA MARKUP – JSON-LD |
| 66 | + |
| 67 | +Used to structure content for rich results in Google.[Ref Link](https://json-ld.org/playground/) |
| 68 | + |
| 69 | +| Page | Fields to be included in json | |
| 70 | +|------------------|--------------------------------------------------------| |
| 71 | +| `Dataset Listing` | TBD | |
| 72 | +| `Dataset Details` | TBD | |
| 73 | +| `About-us` | TBD | |
| 74 | +| `Publisher Listing`| TBD | |
14 | 75 |
|
15 | 76 | --- |
16 | 77 |
|
17 | | -## ✅ PHASE 2: PAGE-LEVEL SEO PLAN |
| 78 | +## ✅ SEMANTIC HTML & ACCESSIBILITY |
18 | 79 |
|
19 | | -- **Add `<title>` and `<meta>` tags** |
20 | | - Set dynamic titles and descriptions for each page. |
| 80 | +Make sure to use these semantic tags instead of div's |
21 | 81 |
|
22 | | -- **Add Social Metadata (OG + Twitter Tags)** |
23 | | - Enhance previews when links are shared on social media platforms. |
| 82 | +| Tag | Purpose/Role | |
| 83 | +| ----------- | ---------------------------------------------------------------------- | |
| 84 | +| `<header>` | Defines introductory content or navigational links for a page or section| |
| 85 | +| `<nav>` | Contains major navigation blocks/links | |
| 86 | +| `<main>` | The main content unique to the page | |
| 87 | +| `<article>` | Encapsulates self-contained, reusable content (blog post, news item) | |
| 88 | +| `<section>` | Thematically groups related content (can include headers) | |
| 89 | +| `<aside>` | Holds content tangentially related to the main content (sidebars) | |
| 90 | +| `<footer>` | Contains content at the end of page/section (copyright, links) | |
| 91 | +| `<figure>` | Groups media elements, typically with `<figcaption>` | |
| 92 | +| `<details>` | For user-revealed additional info | |
| 93 | +| `<table>` | Presents tabular data | |
24 | 94 |
|
25 | | -- **Schema Markup (JSON-LD for Datasets)** |
26 | | - Enable rich results in Google using [schema.org/Dataset](https://schema.org/Dataset). |
27 | 95 |
|
28 | | -- **Semantic HTML & Accessibility** |
29 | | - Use proper semantic elements and provide descriptive `alt` text for all images. |
|
0 commit comments