Set your SEO rulebook and style guides

Set the rules every draft for a brand must pass: approved sources, voice, structure, search snippet, risk review, glossary and written style guides.

Business planUpdated October 4, 20267 min read
On this page

The rulebook holds the rules every draft for a brand must pass before a person sees it. Use it to set where facts can come from, how your articles sound and are structured, and what needs extra review.

Note

Available on the Business plan.

Before you start

Open a brand's rulebook

  1. In the sidebar, click SEO Tool.

  2. Under Brands, click your brand.

  3. Click the Rulebook tab. Until you save once, the tab reads Rulebook (not set).

The page shows the rulebook for your brand. Until you save, the boxes hold generic defaults. Saving creates a new version. Each time Pinned writes an article, it records which version it used, so old articles are never judged by new rules.

The button at the bottom of the form shows the version you are about to create, such as Save as version 1.

Add approved sources and preferred pages

This is the one setting you must fill in before Pinned can write for the brand.

  1. In the Sources and links card, find Approved source domains, one per line.
  2. Type one domain per line. The hint shows the format: mayoclinic.org, cdc.gov and nih.gov.
  3. Optional: in Preferred pages to link to, one per line, list pages on your own site to link to first when they fit the topic. Paths such as /collections/best-sellers or full URLs both work.
  4. Set Minimum cited sources and Minimum internal links.

Every factual claim must cite a page on one of your approved domains, and the page must be reachable. Subdomains count. If you paste a full URL, only the domain is kept. Generation refuses to start while the list is empty.

Internal links are checked against your live store. A page that no longer exists blocks the draft.

Set your voice and style

In the Voice and style card:

  1. In Rulebook name, type a name for this rulebook.
  2. In Tone guidance, describe how articles should sound. Your words are handed to the model as written. Leave it blank for the default: warm, clear, practical, never clinical or salesy.
  3. In Banned words and phrases, one per line, list words to avoid. They are matched as whole words, ignoring case. A draft containing one is sent back to the model.
  4. In Banned characters, separated by spaces, list characters to avoid. The em dash is banned by default.
  5. Set Minimum words and Maximum words.

Set the structure

In the Structure card:

  1. Choose a level in Section heading level and in FAQ question heading level. The options are h2, h3, h4 and h5.
  2. Set Minimum sections.
  3. Select Require an intro paragraph before the first heading if every article needs one.
  4. Select Require a closing call-to-action section that links to the brand's own site if every article should end with one.
  5. In Required sections, one heading per line, list headings that must appear. A section is found if its heading contains your text, ignoring case.
  6. Select A missing required section blocks the draft (otherwise it is only a warning) to make those sections mandatory.
  7. Select Require an FAQ section if you want one, then set FAQ: minimum questions and FAQ: maximum questions.

Set the search snippet

In the Search snippet card, set Meta title: maximum characters, Meta description: minimum characters and Meta description: maximum characters.

Turn on risk review

Use risk review for claims that need a second pair of eyes, such as health or pricing statements.

  1. In the Risk review card, select Enable risk tiering: drafts matching a tier 2 pattern need compliance sign-off before publishing.

  2. In Risk patterns, one per line: code | tier | label | pattern, add one line per rule, like this:

    RISK-001 | 2 | Treatment claim | \b(cure|cures|treats?)\b

The code must look like RISK- followed by three digits. The tier is 1 or 2. The pattern is a regular expression.

  • Tier 1 is flagged for the reviewer.
  • Tier 2 blocks publishing until compliance approves.

For how sign-off works, see Write, review and publish blog posts.

Lock translation terms in a glossary

The Locked glossary for translations card holds terms that must be rendered one way in every translation, such as product names that stay in English. Translations that ignore the list are blocked.

  1. Find the box for the language. Each language you picked for this brand has one.

  2. Type one term per line as source term = locked rendering. To list renderings to avoid, add a bar and then the renderings separated by commas. For example:

    CPAP mask = mascarilla CPAP | máscara CPAP

You can also use -> or => instead of the equals sign.

If the card says no languages are picked yet, click Translations tab and choose languages there. See Translate your store automatically.

Add banned constructions

For patterns that plain phrases can't express, like "it's not X, it's Y":

  1. Click Advanced: regex constructions to open it.
  2. In Banned constructions as regular expressions, one per line, add one pattern per line.

Save your rules

  1. Click Save as version 1. The number is the next version.
  2. Wait while the button reads Checking….

A green message confirms the version you saved. Every draft generated from then on is checked against it. If Pinned refuses the save, a red message explains why, and everything you typed stays in the form.

Upload written style guides

If you already have editorial guidelines, upload them in the Written style guides card. Use one Markdown file for each language.

  1. Under English guide (en), choose a file. English guides are used when writing and refreshing English articles.
  2. Under Spanish guide (es), choose a file. Spanish guides are used when localizing an article into Spanish. Files ending in .md, .markdown or .txt are accepted.
  3. Leave the checkbox that starts with "Fill the boxes above from the file" selected if you want the boxes filled in from the file. Lists are added to, never emptied. Numbers and tone are replaced. If a language model is configured, it reads the document. Otherwise plain pattern matching is used.
  4. Click Save guides as version 1.

Pinned fills in what it finds: banned words, approved sources, pages to link, required sections, tone, word count, FAQ and meta limits. It also hands the whole file to the model whenever it writes in that language.

A message tells you which guides were saved and which boxes were filled. Check those boxes afterward. Only the boxes are enforced, not the file.

Once a guide is saved, the card shows its size in characters and lines and a Preview. To remove a guide, select the checkbox that reads "Remove the English guide" (or "Remove the Spanish guide") and save again. Until you upload one, the card reads No English guide yet.

Tip

The guides save separately from the boxes above. Save any box changes first, then upload your files.

Edit, import or export the rulebook as JSON

Use this to copy rules between brands or keep a backup.

  1. At the bottom of the page, click Advanced: edit, import, or export the rulebook as JSON.
  2. In Rulebook JSON, copy the text to export it, or paste in rules from another brand to import them.
  3. Click Validate and save new version. The button reads Validating… while it checks.

Unknown keys and patterns that don't work are rejected, and the message names the field. This area also holds settings with no box above, such as per-rule severity overrides and per-language vocabulary. Those are kept when you save the form.

Troubleshooting

Generation won't start

The Approved source domains, one per line box is empty. Add at least one domain and save.

A draft keeps being sent back or blocked

Check your Banned words and phrases, one per line and Banned characters, separated by spaces. A draft that contains one goes back to the model. A draft with an internal link to a page that no longer exists is blocked, so update your Preferred pages to link to, one per line list if pages moved.

Pinned can't read my risk pattern lines

Each line needs four parts: RISK-001 | 2 | Label | regex. Check the code, the tier (1 or 2), the label and the pattern. The message lists the lines it could not read.

Pinned can't read my glossary lines

Each line needs the form source term = locked rendering, with renderings to avoid after a bar. The message lists the lines it could not read.

My JSON was rejected

Read the message: it names the field with an unknown key or a pattern that doesn't work. Fix it and save again.

Pinned only uses essential cookies — to keep you signed in and remember your preferences. No ads, no cross-site tracking. Privacy Policy