UNPKG

@awesomate/hosting-mcp

Version:

Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases

95 lines (83 loc) • 3.64 kB
# SEO checklist — exact formats ## `<head>` (every page, unique per page) ```html <title>Primary keyword — Brand</title> <!-- ≤60 chars --> <meta name="description" content="…"> <!-- ≤155 chars, compelling --> <link rel="canonical" href="https://DOMAIN/PATH"> <meta property="og:title" content="…"> <meta property="og:description" content="…"> <meta property="og:type" content="website"> <!-- or article/product --> <meta property="og:url" content="https://DOMAIN/PATH"> <meta property="og:image" content="https://DOMAIN/og.png"> <!-- 1200×630 ideally --> <meta name="twitter:card" content="summary_large_image"> ``` ## `robots.txt` (site root) ``` User-agent: * Allow: / Sitemap: https://DOMAIN/sitemap.xml ``` Only `Disallow:` paths that genuinely shouldn't be indexed (admin, cart, thank-you). Don't block CSS/JS. ## `sitemap.xml` (site root) ```xml <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>https://DOMAIN/</loc><lastmod>YYYY-MM-DD</lastmod></url> <url><loc>https://DOMAIN/about</loc><lastmod>YYYY-MM-DD</lastmod></url> </urlset> ``` List only real, canonical, indexable URLs (no dupes, no query-string variants). ## JSON-LD (in `<head>` or end of `<body>`) Pick the type that fits; validate before shipping. ```html <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "Brand", "url": "https://DOMAIN/", "logo": "https://DOMAIN/logo.png" } </script> ``` Common types: `WebSite` (+ `SearchAction`), `Organization` / `LocalBusiness` (add `address`, `telephone`, `openingHours`), `Product` (`offers`, `brand`, `gtin`), `Article` (`headline`, `datePublished`, `author`). **Don't add `FAQPage` or `HowTo` expecting search features** — Google retired FAQ rich results for all sites on 2026-05-07 and HowTo earlier. Both remain valid schema.org markup, but they earn nothing; only add them if the visible FAQ itself is useful. Multiple entities on one page: combine them in ONE script tag using `@graph`, with stable `@id` fragments cross-referencing instead of duplicating: ```json { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://DOMAIN/#organization", "name": "Brand", "url": "https://DOMAIN/", "logo": "https://DOMAIN/logo.png" }, { "@type": "Article", "@id": "https://DOMAIN/PATH#article", "headline": "…", "datePublished": "YYYY-MM-DD", "publisher": { "@id": "https://DOMAIN/#organization" } } ] } ``` Keep `@id` values stable across rebuilds (URL + `#fragment`, never random). Validate at https://validator.schema.org (schema validity); use Google's Rich Results Test only for types Google actually supports as rich results. ## `llms.txt` (site root — AI discoverability) Plain markdown so assistants can read + cite the site. Keep it current and under 10KB. Honest framing: **Google ignores llms.txt** — it serves the other AI assistants (see [ai-discoverability.md](ai-discoverability.md)). ``` # Brand — what we do One-paragraph plain-English description of the business/product and who it's for. ## Key pages - [Home](https://DOMAIN/): … - [Pricing](https://DOMAIN/pricing): … - [Contact](https://DOMAIN/contact): … ## Facts - Location, hours, contact — only true, verifiable facts. ``` ## Length + quality rules - Titles ≤60, descriptions ≤155 chars, each unique across the site. - One `<h1>` per page; descriptive; not keyword-stuffed. - Alt text on meaningful images. - Every claim in `llms.txt`/JSON-LD must be true — never invent facts or reviews.