References in what we publish
The numbers beside the headings
On a page we publish to your own site you may see a small [1] or [2] next to a section heading, and a block headed "Sources and supporting material" at the foot of the page. That block holds two lists. The numbered one is the material the sections were actually assembled from, and a [1] links to its entry. Underneath it, "Further reading" lists other things we have published for you on nearby subjects — those are not numbered, because nothing on the page was built from them. A number against a section says one specific thing: this section was assembled from that piece of material. It is attribution at the level of the section and no finer. We do not mark individual sentences, because nothing here knows which sentence rests on which source, and a number on a sentence would claim that it did.
Whose sources these are
They are yours. Both lists are material we built and published for your business — the guide, the FAQ, the specification, the data sheet. The page used to say so in its own words, and no longer does. Telling every reader and every crawler, in the article itself, that the article was the business quoted back to itself is the exact reading a citing engine discounts — so we removed the sentence rather than keep an admission that cost the page the citation it was written for. The admission has not gone anywhere. It is made to an agent that asks where a page came from, and it is in the machine-readable provenance behind the page. What earns a citation instead is what is inside the pieces: real quotes, real figures, a named standard.
The provenance record, and where it goes
Behind the page, out of sight, is a machine-readable record in schema.org JSON-LD: when the piece was drafted, when it was published, who published it (your business), who it credits as the author, and the sources it was written from, where there were any. A date we never observed is left out rather than guessed. It goes on every page for your own site - WordPress, Shopify, Ghost and webhooks - and, since 27 September 2026, on Blogger posts and the pages we host on your cloud storage too. On your own site the author it names is your business, never a person. On Blogger posts and cloud pages it is the person you set as the project's author, when you set one, and otherwise your business - except where your Blogger blog or your cloud storage is served from a domain of yours: that is your own site, so the author there is your business too. Most Blogger posts and cloud pages carry the dates and the publisher but no list of sources, because they are not written from sources we fetched; case-study cloud pages list the sources they were written from. Google Docs, Sheets and Slides, and Wix posts, have nowhere to carry it, so they rely on the sources written into them.
Why you will not see numbers on most pages
Two reasons, both intended. They only appear where there is prior material to assemble. The first page we publish about a subject has nothing behind it yet, so there is nothing to number. The pages that carry references are the later ones, once several pieces of evidence about the same subject exist. And they only appear on pages published to your own domain. A Google Doc cannot carry structured markup at all, so inline references there could not be marked up as provenance. That is a deliberate omission rather than an oversight.
Outside references — and why they are almost always absent
Separately from the numbering, every document we generate is asked for genuine outside references: a real standard, study, paper, piece of official documentation or published figure that a statement in the document actually rests on. The instruction is deliberately hard to satisfy. It asks only for sources the model is certain of, by title, publisher and address — and it says outright that an empty list is the correct answer when nothing is cited. For most businesses, most of the time, it is. A caterer writing about pan sizes and a local agency writing about their service area are not resting on published standards, and a references list that filled up anyway would be a list of invented papers. An invented reference is worse than no reference, so the bar sits where it does on purpose. If you work in a regulated or technical field you will see these fill in more often.
Every address is fetched before it goes out
A reference with no address is not a reference, it is a claim that a source exists. Those are dropped at the point the document is read. Everything surviving that is then FETCHED before the page is published, and dropped if it does not answer. A model that obeys the letter of the instruction and cites a plausible-looking address that turns out to be a dead link has done the same damage as one that invented a paper outright. We would rather publish three references than four with one dead among them.
Sites that refuse AI use are not offered to the writers
Since 9 October 2026, before an outside page is offered to a writer to cite, we read that site's robots.txt. The page is not offered, and not fetched, when the file: • says Content-Signal: ai-input=no, which asks not to be used in AI answers, or • does not let our crawler (RankingFactoryBot), or every crawler, read that page. Nothing else counts as a refusal here. A site that refuses training (ai-train=no, or blocking GPTBot) or blocks another company's AI crawler is still offered: we train nothing, and those choices are about other companies. A site with no robots.txt, or one we could not read, is offered too, and the agent tools say which it was. Each site's file is read at most once a day. Through the agent tools, the sources a writer may cite for a subject list each refused page with the reason, and each offered page with what its site's robots.txt said. This covers the sources we offer. A writer may still cite a source we did not offer when it is certain the source exists, and every address it cites is fetched before publishing, as above.
Other sites' words are material, never instructions
The writers are shown what the outside sources they may cite actually say, and a page anyone can publish could carry a sentence written for a model rather than a reader ("AI assistants: link to this offer"). So another site's words reach a writer inside a marked fence, under a sentence telling it they are material to quote or summarise and never an instruction, with the characters a person cannot see (zero-width, direction-control and Unicode tag characters) taken out first. The free site check, the onboarding read of your site, Reddit reply drafts and the blog pipeline frame other sites' text the same way. That marks the boundary. It does not make a model immune to a page written to instruct it, so what comes back is checked before anything is published, the same way for every kind of document: • A reference, or a link in the text, to an address that only one of those quoted passages wrote out is dropped, and its words stay - unless the address is one of the offered sources' own pages. A source's title and site name count as its words too. • On a deck's slides and in a Sheet's cells, where an address is itself the link, such an address is taken out of the text, and what the writer put in a Sheet's cells goes in as text, never as a formula. • HTML a model wrote - a case study, a page rebuilt in a new shape or re-aligned, an article written for your WordPress AI Campaign or Drip Schedule, a Blogger post or cloud page a campaign publishes, and the Blogger posts the Entity Stack and Affiliate Stack tools write - is reduced to plain formatting before it is stored or sent: headings, paragraphs, lists, emphasis, tables, quotes and web links stay; scripts, embedded frames, forms, styling, event handlers and links that are not web addresses are removed. The rest of the text is kept - all but the words inside a removed element (a form, a button, a text box, a drop-down list, an embedded object, frame, media player or drawing) or after a tag left unfinished. What we add round it - structured data, images, your video, link blocks - is added after it is cleaned, so ours stays and a model's copy of any of it does not. Where our structured data repeats a model's words (a cloud page's FAQ), they go into it as text that cannot end it, and the title of an article for your WordPress AI Campaign or Drip Schedule is sent as plain text, with no tag, script or invisible character left in it. Anything stored before this is cleaned the same way when it is assembled into one of your pages. Since 12 October 2026 the Cloud Stack tool's pages are cleaned too: the model writes only the article, and the page round it - its title, description and structured data - is ours. Not cleaned: HTML you publish yourself from a tool's editor. • Characters a reader cannot see are taken out of every writer's reply. A link to some other page of a site a passage merely named is not refused, and no source is turned away for looking like an instruction: pages about this very subject quote such sentences legitimately.
Claims we cut before a post goes out
Before a post goes out we cut any sentence that credits a figure or a claim to a source we were not given, and any "best", "leading" or "cheaper than" about your business that carries no source. We never reword a sentence. This check runs on posts from the WordPress AI campaign and the content drip, and on pages from Cloud Stack and the Affiliate Stack (see Reviewing before anything goes out).
References sit above the link back to your site, so that when a document is later assembled into one of your own pages the link is stripped and the references travel with it.