Web Page Data Specification

Business Web Page Data Documentation

This specification defines the metadata, content structure, local-business information, SEO signals, image requirements and PWA information used to generate a production-quality public business website.

Specification: Web Page Data Contract v1.0
Public URL pattern: https://w.pointit.org/{business-slug}

Important: This document defines the target data contract. The rendering engine should generate page metadata, canonical URLs, structured data, PWA manifests and other technical head information from this contract. Business page authors should therefore focus on accurate business information and useful visible content.

1. Quick Start

1. Identify

Choose a stable business name and a permanent public slug.

2. Describe

Provide a clear business description, location, contact information and services.

3. Illustrate

Add authentic business images with meaningful alternative text.

4. Validate

Test structured data, live rendering, canonical URL, crawlability and PWA assets before publication.

2. Requirement Legend

* Required

Required by this platform's data contract or required to create a reliable local-business page.

Recommended Recommended

Strongly recommended because it improves completeness, user trust, discoverability or structured data quality.

Optional Optional

Use when the information genuinely exists and can be maintained accurately.

Do not invent information. Never create fictional phone numbers, coordinates, prices, opening hours, ratings, reviews, business attributes or social profiles simply to populate fields.

3. Core Business Data Contract

Put the machine-readable business metadata in one hidden element: #business-data. The rendering engine reads these values and generates the public page, SEO metadata, LocalBusiness structured data and PWA resources.

Required base structure
<div
  id="business-data"
  hidden

  data-name="Business Name"
  data-short_name="Business"

  data-description="A concise, accurate description of the business."

  data-phone="+8801XXXXXXXXX"
  data-whatsapp="+8801XXXXXXXXX"
  data-email="hello@example.com"

  data-address="Full street address"
  data-city="City"
  data-region="Region"
  data-country="BD"
  data-postal_code="0000"

  data-category="LocalBusiness"

  data-latitude="00.00000"
  data-longitude="00.00000"

  data-theme="#C0202A"
  data-background="#FAFAFA"

  data-seo_title="Business Name | Primary Service | City"
  data-pwa="true"
  data-lang="bn"
></div>

3.1 Required Data Fields

Field Required Purpose Rules Example
data-name * Official business name Use the real public-facing name. Keep spelling consistent with the business's real-world identity. PointIT
data-short_name * PWA short name Keep it compact enough for installed-app UI. Do not use a misleading abbreviation. PointIT
data-description * Business summary Describe what the business actually does, ideally including its primary service and locality naturally. Computer and PTE training center in Moulvibazar.
data-address * Physical street address Must identify the actual physical location. 2nd floor, TC Market, Court Rd
data-city * Locality / city Use the locality users would normally use when searching for the business. Moulvibazar
data-country * Country Prefer a standard country code. BD
data-category * Schema.org business type Use the most accurate LocalBusiness subtype when one genuinely applies. Otherwise use LocalBusiness. LocalBusiness
data-latitude * Physical latitude Use real coordinates. Keep at least 5 decimal places. 24.49212
data-longitude * Physical longitude Use real coordinates. Keep at least 5 decimal places. 91.77446
data-theme * Brand/UI theme color Valid CSS color. Prefer a stable brand color. #C0202A
data-background * PWA background color Valid CSS color. Should work well as a launch/splash background. #FAFAFA
data-seo_title * Preferred SEO title Unique, descriptive and concise. Do not stuff locations or keywords. PointIT | Computer Training Center | Moulvibazar
data-pwa * Enable PWA generation Use true for an installable business web application. true
data-lang * Primary page language Use a valid language code. bn

3.2 Strongly Recommended Fields

Field Status Why it matters
data-phone Recommended Primary customer contact number. Use international format where possible.
data-whatsapp Recommended Direct messaging contact for customer conversion.
data-email Recommended Primary business email.
data-region Recommended State / division / province equivalent where applicable.
data-postal_code Recommended Postal or ZIP code when the business has one.
Local SEO rule: Location information should describe the actual physical business location. Do not use a fake location merely because it contains a more desirable keyword.

4. Image Specification

Images should represent the business or the content they are attached to. Use sharp, high-quality files and place images near relevant text. Meaningful alt text should describe the image in context.

Hero / primary image

Demo placeholder for a primary business hero image

First meaningful business image on the page. This image is also suitable for the generated social preview and primary business structured-data image.

Location image

Demo placeholder showing a business storefront or location

Exterior, entrance, building, signboard or other genuine location evidence.

Service image

Demo placeholder showing a business service or activity

Show the real service, product, facility or customer-facing experience.

4.1 Image rules

* Use real, relevant images rather than generic stock imagery whenever possible.
* Use descriptive alt attributes.
* Ensure image URLs are publicly accessible without authentication.
Keep image context close to relevant visible text.
Avoid inserting keyword lists into image alt text.
For important business images, prepare square, landscape and wide variants where practical.

5. SEO Data Contract

Canonical identity

The public URL should be the canonical URL of the business page:

Canonical pattern
https://w.pointit.org/{business-slug}

The renderer should generate the canonical link automatically from the public route instead of requiring authors to paste canonical HTML into the content.

SEO title

Recommended format:

{Business Name} | {Primary Service} | {City}

Keep it readable and unique. Avoid repetitive city names or keyword chains.

Description

Write a natural summary that tells a potential visitor what the business provides and where it operates.

{Business} provides {primary services}
in {city}, serving {audience}.

5.1 Additional SEO principles

* Every page should have a unique, descriptive title.
* The visible page content should clearly explain what the business does.
* Important business information should exist in actual HTML content, not only inside metadata.
* Links should use real <a href="..."> elements.
Use descriptive anchor text instead of vague labels such as “click here”.
Do not create duplicate pages with substantially identical business content.

6. LocalBusiness Structured Data

Core rule: Every public business page should be represented as a real-world local business. The generated structured data should use the most specific accurate LocalBusiness subtype that actually applies. Never choose a subtype purely for SEO.

6.1 Minimum semantic identity

Generated JSON-LD concept
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Business Name",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Full street address",
    "addressLocality": "City",
    "addressRegion": "Region",
    "postalCode": "Postal code",
    "addressCountry": "BD"
  }
}

6.2 Preferred complete local-business representation

Target generated JSON-LD
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "@id": "https://w.pointit.org/business-slug#business",

  "name": "Business Name",
  "url": "https://w.pointit.org/business-slug",

  "description": "Accurate business description.",

  "image": [
    "https://imgur.com/XXX",
    "https://imgur.com/XXX",
    "https://imgur.com/XXX"
  ],

  "telephone": "+8801XXXXXXXXX",

  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Full street address",
    "addressLocality": "City",
    "addressRegion": "Region",
    "postalCode": "0000",
    "addressCountry": "BD"
  },

  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 24.49212,
    "longitude": 91.77446
  },

  "sameAs": [
    "https://www.facebook.com/example",
    "https://www.instagram.com/example"
  ]
}

6.3 LocalBusiness fields

Structured-data property Status Source Notes
name * data-name Official business name.
address * Address fields Physical business location. Include as many accurate address components as available.
geo Recommended Latitude + longitude Use real geographic coordinates. Keep at least five decimal places.
telephone Recommended data-phone Primary customer contact number.
url Recommended Generated public route The canonical business page URL.
image Recommended Business images Images should represent the business.
openingHoursSpecification Recommended Business hours Use only when the hours are accurate and maintained.
priceRange Optional Business information Use only when meaningful for the business.
sameAs Recommended Verified social / identity URLs Only include official profiles that unambiguously represent the business.

7. Location Data

Required location identity

data-address="Full street address"
data-city="City"
data-country="BD"

Recommended full location

data-address="Full street address"
data-city="City"
data-region="Region"
data-postal_code="0000"
data-country="BD"

data-latitude="24.49212"
data-longitude="91.77446"
Coordinate accuracy: Coordinates should describe the real business location and should not be rounded to an unnecessarily coarse precision.

7.1 Location image

Demo placeholder for a real storefront and business location

Recommended: storefront, entrance, building frontage, signboard or another authentic visual cue that helps people identify the real-world location.

8. Contact Data

Field Status Example
data-phone Recommended +8801887799196
data-whatsapp Recommended +8801887799196
data-email Recommended hello@example.com

The visible page should also contain usable contact links:

Example contact markup
<a href="tel:+8801887799196">
  Call the business
</a>

<a href="https://wa.me/8801887799196">
  WhatsApp
</a>

<a href="mailto:hello@example.com">
  Email
</a>

9. Opening Hours

Opening hours should be published only when they are maintained accurately. For future renderer support, use a structured internal representation rather than placing free-form hours inside unrelated text.

Recommended target representation
data-opening_hours='[
  {
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "09:00",
    "closes": "18:00"
  },
  {
    "dayOfWeek": ["Saturday"],
    "opens": "10:00",
    "closes": "16:00"
  }
]'

This field is part of the target platform contract and may require renderer support in the next index.js revision.

10. Official Identity & Social Profiles

Future renderer versions should support a structured list of official identity URLs. Only include profiles that genuinely represent the same business.

Recommended target representation
data-same_as='[
  "https://www.facebook.com/example",
  "https://www.instagram.com/example",
  "https://www.linkedin.com/company/example"
]'

11. Visible Page Content Structure

Metadata alone does not create a useful business page. The visible page should clearly explain the business to people first.

Recommended sections

Business overview
Primary services
Products / courses / offerings
Why customers choose the business
Location
Opening hours
Contact
Genuine photos
Frequently asked questions when useful

Do not build pages around

Keyword repetition
Fake reviews
Fake ratings
Fake locations
Hidden keyword lists
Copied city/service text
Automatically generated low-value paragraphs

12. PWA Specification

Every business page marked with data-pwa="true" should receive a business-specific web app manifest, icons and application metadata.

12.1 Required PWA identity

Data Status Manifest destination
data-name * name
data-short_name * short_name
data-background * background_color
data-theme * theme_color
data-pwa * Feature switch
Business slug * id / start_url
192×192 icon * icons[]
512×512 icon * icons[]

12.2 Target generated manifest

manifest.webmanifest
{
  "id": "/business-slug",
  "name": "Business Name",
  "short_name": "Business",
  "description": "Accurate business description.",
  "start_url": "/business-slug",
  "scope": "/business-slug/",
  "display": "standalone",
  "background_color": "#FAFAFA",
  "theme_color": "#C0202A",

  "icons": [
    {
      "src": "/business-slug/icon-192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/business-slug/icon-512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}
PWA identity rule: The manifest identity must remain stable. Do not randomly change the manifest id or start_url after installation.

12.3 PWA icon requirements

192 × 192

Demo placeholder for 192 by 192 PWA icon

Square PNG. Keep the important logo/mark inside the safe area.

512 × 512

Demo placeholder for 512 by 512 PWA icon

High-resolution square PNG for installation and larger contexts.

12.4 Service worker

The service worker should be lightweight and should never block primary page rendering. Its purpose is to provide appropriate application resilience, controlled caching and offline behavior where implemented.

Expected route
/business-slug/sw.js

13. Technical HTML Rules

* Use valid semantic HTML.
* Use a single main page heading for the primary page subject.
* Use real hyperlinks for navigation.
* Keep important information in server-delivered HTML whenever possible.
* Do not require JavaScript to reveal essential business information.
* Do not place canonical or SEO-critical metadata only inside interactive UI.
Do not use hidden text as a keyword stuffing mechanism.
Do not create content whose primary purpose is manipulating search rankings.
Platform compatibility: The page content should remain functional even when content scripts are removed. Interactive components should therefore have a useful non-JavaScript fallback.

14. Performance Requirements

Images

Compress images, use modern formats when practical, specify dimensions and lazy-load below-the-fold imagery.

CSS

Avoid large duplicate style blocks. Reuse shared styles and keep page-specific CSS close to the page when required.

JavaScript

Essential business content must not depend on JavaScript execution. Keep optional enhancements small.

15. Crawlability & Indexability

Public business pages should be reachable by ordinary links, should not require authentication, and should be allowed to be crawled and indexed unless a deliberate business-owner decision says otherwise.

Good

HTTP 200 for valid business pages
Publicly accessible content
Canonical URL matches the public page
Internal crawlable links
Accurate sitemap entry

Avoid

Soft-404 business pages
Broken canonical URLs
Blocked critical resources
Login-only business pages
Accidental noindex

16. URL & Error Behaviour

A valid business slug should resolve only to its own business page. Invalid, malformed or unknown routes should not accidentally display another business.

Expected public route model
/                     → application root
/register             → registration/information page
/error                → public error page
/{business-slug}      → business page
/{business-slug}/manifest.webmanifest
/{business-slug}/sw.js
/{business-slug}/icon-192.png
/{business-slug}/icon-512.png

17. Pre-Publication QA Checklist

* Business name is real and consistent.
* Physical address is accurate.
* Latitude and longitude point to the actual business location.
* Telephone number belongs to the business.
* Description accurately explains the business.
* SEO title is unique and descriptive.
* Page has a meaningful first image.
* Images have useful alt text.
* PWA name and short name are correct.
* 192×192 and 512×512 icons work.
* Manifest opens successfully.
* Service worker route responds successfully when enabled.
Canonical URL resolves to the expected public URL.
Business page can be viewed without logging in.
Mobile layout is usable.
Important text is visible without JavaScript.

18. Google Validation Workflow

Step 1 — Rich Results Test

Test the live business URL and inspect detected structured data.

Open Rich Results Test

Step 2 — URL Inspection

Inspect the page in the site's Search Console property and run a live test.

Step 3 — Recheck

Confirm indexing eligibility, canonical selection, structured data and loaded resources after changes.

Validation principle: A successful test does not guarantee rankings, rich-result appearance or inclusion in Search. It confirms that Google can process what has been presented to it.

19. Renderer Responsibilities

The public business-page renderer should own technical metadata rather than requiring business-page authors to duplicate it.

The renderer should generate

HTML <title>
Meta description
Canonical URL
Robots directives
Open Graph metadata
Twitter metadata
LocalBusiness JSON-LD
PWA manifest
PWA icon endpoints
Service worker endpoint
Business-specific cache key

The page author should provide

Accurate business facts
Accurate address
Accurate coordinates
Accurate contact details
Accurate service descriptions
Authentic images
Useful visible content

20. Extended Data Contract — Reserved Fields

These fields are intentionally documented now so the rendering engine can be expanded without changing the page-authoring model later.

Field Status Purpose
data-logo Recommended Official business logo URL.
data-hero_image Recommended Explicit social/hero image instead of relying on first image.
data-same_as Recommended Official identity URLs.
data-opening_hours Recommended Structured weekly opening schedule.
data-price_range Optional Relative price range where meaningful.
data-map_url Optional Business-controlled map or location URL.
data-area_served Optional Locations or regions genuinely served.
data-keywords Optional Internal categorization only. Never use it as hidden keyword stuffing.
Implementation note: Reserved fields are not automatically guaranteed to work until the rendering engine explicitly supports them.

21. web-pages.SKILL

The following compact specification is intended to be copied as plaintext and supplied to an AI agent that is generating or editing a business page.

web-pages.SKILL — click inside the field, then copy
The field uses browser text selection for easy copying. Use Ctrl+A inside the field, then Ctrl+C.

22. Current Implementation vs. Target Specification

Already represented by the current renderer

Business name
Short name
Description
Phone / WhatsApp
Address
City / region / country / postal code
Latitude / longitude
Business category
SEO title
Theme/background
PWA enable flag
Dynamic manifest
Dynamic service worker
192/512 icon routes
First-image extraction
Canonical/SEO/OpenGraph generation

Recommended next renderer expansion

Explicit hero image field
Explicit business logo field
Structured opening hours
Official sameAs profile array
Price range
Area served
Improved LocalBusiness subtype validation
Stable PWA manifest id
Expanded structured-data validation