@moorage/plugin-seo 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @moorage/plugin-seo
2
2
 
3
+ ## 0.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Documentation only; the plugin itself is unchanged. The README and listing now say the plugin can be installed from the EmDash registry, use the current names of the Redirects buttons, explain the permissions it asks for, and answer "Is it free?" in the licence's own terms. The copyright notice now names GoSi Tech, the legal owner of Moorage; the licence terms are unchanged.
8
+
3
9
  ## 0.1.0
4
10
 
5
11
  ### Minor Changes
package/LICENSE CHANGED
@@ -6,7 +6,7 @@ FSL-1.1-MIT
6
6
 
7
7
  ## Notice
8
8
 
9
- Copyright 2026 Moorage
9
+ Copyright 2026 GoSi Tech
10
10
 
11
11
  ## Terms and Conditions
12
12
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @moorage/plugin-seo
2
2
 
3
- SEO & Schema Markup for [EmDash](https://emdashcms.com): one linked structured data graph, noindex and snippet rules, a Google preview, on-page SEO checks and redirects import from WordPress. Runs on any EmDash site, self-hosted or on Moorage, with no account and no key.
3
+ SEO & Schema Markup for [EmDash](https://emdashcms.com): one linked structured data graph, noindex and snippet rules, a Google preview, on-page SEO checks and redirects import from WordPress. Runs on any EmDash site, self-hosted or managed, with no account and no key.
4
4
 
5
5
  ## What it does today
6
6
 
@@ -13,7 +13,7 @@ It does not write the page title, the sitemap or robots.txt; EmDash core and you
13
13
 
14
14
  ## Install
15
15
 
16
- From npm, registered in your site's code:
16
+ From **Plugins** in your EmDash admin (it is listed in the [EmDash registry](https://plugins.emdashcms.com/plugins/@moorage.dev/seo)), or from npm, registered in your site's code:
17
17
 
18
18
  ```sh
19
19
  pnpm add @moorage/plugin-seo
@@ -31,22 +31,20 @@ export default defineConfig({
31
31
 
32
32
  `sandboxed` needs a sandbox runner: on Cloudflare it is the Worker Loader binding from `@emdash-cms/cloudflare`; on Node add `@emdash-cms/sandbox-workerd` and set `sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox"`. Without a runner, list the plugin under `plugins: [seo]` instead, which runs it in-process. Requires EmDash 1.2.0 or newer.
33
33
 
34
- Installing from the Plugins screen in the EmDash admin (the registry) is not available yet.
34
+ It asks for four permissions: read content, read bylines, read the content schema, and manage redirects. The registry lists a fifth, read redirects, which managing them includes. It makes no requests to any outside service.
35
35
 
36
36
  ## The SEO page
37
37
 
38
38
  One page, **SEO**, in the admin sidebar, with three tabs. It works before you touch it: the site is described as an organisation named after the site, each content type is guessed from its name (posts and blog become blog posts, services become services, team becomes people), and your pages are checked by themselves.
39
39
 
40
40
  - **Overview**: how many pages were checked, how many have nothing to fix and how many do; a warning whenever a content type is hidden from Google; one question if you have not said who the site is for; then **Your details**, the few things Google still needs for your kind of site (an address, opening hours and a phone number for a local business; a logo and profiles for a company); then the pages to fix, each with what is missing and a link to the page; and, folded, pages that are fine but could be better.
41
- - **Redirects**: your redirects, with Change and Remove on each; add one by typing the old address and where to send visitors; import a list exported from WordPress (Redirection, Yoast SEO Premium or Rank Math), which is checked before anything is added and can be removed again as a batch; export as a copyable list. EmDash already redirects a page's old address when you change it.
41
+ - **Redirects**: your redirects, with Change and Remove on each, and three buttons above the list. **Add a redirect**: the old address, where to send visitors, and the kind (permanent unless you choose otherwise). **Import from WordPress**: paste a list exported from Redirection, Yoast SEO Premium or Rank Math; it is checked before anything is added and can be removed again as a batch. **Export**: a copyable list. EmDash already redirects a page's old address when you change it.
42
42
  - **Settings**: who the site is for (a local business, a company or a person) and what you do, then folded sections ordered by how much they matter for that kind of site. Each title says whether the section is needed, worth adding or optional, and what is already filled in: address and phone, opening hours (two ranges a day for split shifts), logo, profiles elsewhere, more about you, and content types (what each kind of content is, and whether it is hidden from Google, which asks before it saves). One location for now. A local business is described as an organisation until it has an address, because Google requires one.
43
43
 
44
44
  Admins can change settings. Editors see a read-only page with the pages to fix.
45
45
 
46
46
  In the entry editor, the **Google preview** panel shows how the published page may look on Google (address, title, description), what kind of page it is, whether it is in search results, and up to three things to fix. Admins can also change one page's type, open Google's Rich Results Test for the page, and view the markup. A dashboard widget shows the number of pages to fix.
47
47
 
48
- Not yet: Product and Event types (they need price and date fields on the collection), and FAQ (Google stopped showing FAQ results in May 2026). Use the `json_ld` field for those today.
49
-
50
48
  ### The checks
51
49
 
52
50
  To fix: no title; a title that says nothing, such as "Home"; no search description; the same title as another page; a canonical address that points at a different page. Worth a look: a title that may be cut off; no image for shared links; an article with no author; pictures without alt text; a page with almost no text. Hidden pages are counted separately, and content without a page of its own (testimonials, for example) is left out. There is no score, and no keyword, readability or word-count rule: Google documents none of them as ranking factors.
@@ -55,19 +53,20 @@ Not yet: Product and Event types (they need price and date fields on the collect
55
53
 
56
54
  ## FAQ
57
55
 
56
+ - Is it free? Free to use on any number of sites, your own or your clients', with no account and no key. You may read, change and self-host the code. The licence (FSL-1.1-MIT) does not allow making the plugin available to others in a commercial product or service that substitutes for it or offers substantially the same functionality. Each release becomes MIT two years after it is published.
58
57
  - How do I add schema markup to EmDash? Install this plugin; it adds structured data (JSON-LD) to every page.
59
58
  - How do I add my own structured data to one page? Add a JSON field named `json_ld` to the collection and paste the schema.org object into the entry.
60
59
  - Is there a Yoast alternative for EmDash? EmDash core covers titles, descriptions, sitemaps and canonicals; this plugin adds the schema graph, robots rules, previews and checks.
61
60
  - Does it check my page while I type? No. EmDash does not let a general-purpose plugin read unsaved text. The panel and the checks describe the published page, as Google sees it: changes to the page show up once you publish, and changes in the SEO panel show up as soon as they are saved.
62
61
  - Is there an SEO score or a traffic light? No, on purpose. You get a list of things to fix that can reach zero.
63
62
  - Does it add FAQ rich results? No. Google stopped showing FAQ rich results in May 2026.
64
- - How do I import redirects from WordPress? Export them from Redirection, Yoast SEO Premium or Rank Math, open SEO > Redirects > Import a list from WordPress, paste the list and press Check list. Nothing is added until you confirm.
63
+ - How do I import redirects from WordPress? Export them from Redirection, Yoast SEO Premium or Rank Math, open SEO > Redirects > Import from WordPress, paste the list and press Check list. Nothing is added until you confirm.
65
64
  - Why were some redirects skipped? EmDash has no regular-expression redirects. Exact addresses and "everything under a folder" are converted; other patterns are listed for you to rewrite by hand. Redirects to another website and addresses with a `?` are not supported by EmDash.
66
65
  - Why does a large import take a while on Cloudflare? Sandboxed plugins may only do a few operations per request, so a long list is added a few rows at a time in the background. You can leave the page.
67
66
 
68
67
  ## Changelog
69
68
 
70
- See [CHANGELOG.md](CHANGELOG.md) once the first version is released; unreleased changes are in the repository's `.changeset` folder.
69
+ See [CHANGELOG.md](CHANGELOG.md); unreleased changes are in the repository's `.changeset` folder.
71
70
 
72
71
  ## Develop
73
72
 
@@ -79,4 +78,4 @@ pnpm --filter @moorage/plugin-seo validate
79
78
 
80
79
  ## Licence
81
80
 
82
- FSL-1.1-MIT; see LICENSE.
81
+ [FSL-1.1-MIT](LICENSE), the Functional Source License. Free to use, change and self-host, including on client sites. Not allowed: making the plugin available to others in a commercial product or service that substitutes for it or offers substantially the same functionality (the licence's "Competing Use"). Each release becomes MIT two years after it is published. This is a summary; the LICENSE file is what applies. Moorage is a product of GoSi Tech, which holds the copyright.
package/dist/index.mjs CHANGED
@@ -7,7 +7,7 @@
7
7
  /** @type {import("emdash").PluginDescriptor} */
8
8
  const descriptor = Object.freeze({
9
9
  "id": "seo",
10
- "version": "0.1.0",
10
+ "version": "0.1.1",
11
11
  "format": "standard",
12
12
  "entrypoint": "@moorage/plugin-seo/sandbox",
13
13
  "capabilities": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "seo",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "declaredAccess": {
5
5
  "content": {
6
6
  "read": {}
@@ -13,6 +13,18 @@
13
13
  "installation": { "file": "listing/installation.md" },
14
14
  "faq": { "file": "listing/faq.md" },
15
15
  },
16
+ // Registry listing only: the EmDash version a site needs, and the gallery.
17
+ "release": {
18
+ "requires": { "env:emdash": ">=1.2.0" },
19
+ "artifacts": {
20
+ "screenshots": [
21
+ { "file": "./images/overview.png", "lang": "en" },
22
+ { "file": "./images/google-preview.png", "lang": "en" },
23
+ { "file": "./images/redirects.png", "lang": "en" },
24
+ { "file": "./images/settings.png", "lang": "en" },
25
+ ],
26
+ },
27
+ },
16
28
  "publisher": "did:plc:cus3srdqglppyowqrw3hvjfj",
17
29
 
18
30
  "license": "FSL-1.1-MIT",
package/listing/faq.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## How do I add schema markup to EmDash?
2
2
 
3
- Install this plugin. Every page gets structured data (JSON-LD) straight away; fill in "Who you are" to make it accurate.
3
+ Install this plugin. Every page gets structured data (JSON-LD) straight away; say who the site is for on the SEO page to make it accurate.
4
4
 
5
5
  ## How do I add structured data to one page?
6
6
 
@@ -12,7 +12,7 @@ EmDash core covers titles, descriptions, sitemaps and canonicals. This plugin ad
12
12
 
13
13
  ## How do I import redirects from WordPress?
14
14
 
15
- Export them from Redirection, Yoast SEO Premium or Rank Math, open SEO > Redirects > Import a list from WordPress, paste the list and press "Check list". Nothing is added until you confirm.
15
+ Export them from Redirection, Yoast SEO Premium or Rank Math, open SEO > Redirects > Import from WordPress, paste the list and press "Check list". Nothing is added until you confirm.
16
16
 
17
17
  ## How do I noindex a collection in EmDash?
18
18
 
@@ -22,6 +22,10 @@ Open SEO > Settings > Content types and choose "Hide from Google and other searc
22
22
 
23
23
  Not by itself: a plugin cannot set the page title or serve files from the site root. Both are done by the theme.
24
24
 
25
+ ## Is it free?
26
+
27
+ Free to use on any number of sites, your own or your clients', with no account and no key. You may read, change and self-host the code. The licence (FSL-1.1-MIT) does not allow making the plugin available to others in a commercial product or service that substitutes for it or offers substantially the same functionality. Each release becomes MIT two years after it is published.
28
+
25
29
  ## Is there an SEO score?
26
30
 
27
31
  No, on purpose. You get a list of things to fix that can reach zero.
@@ -11,4 +11,4 @@ import seo from "@moorage/plugin-seo";
11
11
  emdash({ sandboxed: [seo] });
12
12
  ```
13
13
 
14
- Then open **SEO** in the admin sidebar. It works before you change anything; three short steps make the result more accurate.
14
+ Then open **SEO** in the admin sidebar. It works before you change anything; answering one question about who the site is for makes the result more accurate.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moorage/plugin-seo",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "SEO for EmDash: schema markup, structured data, Google preview, noindex rules, redirects import and SEO checks. A Yoast alternative.",
5
5
  "keywords": [
6
6
  "emdash",