--- title: "How to Move Documentation Out of Your README" canonical: https://supportpages.io/guides/move-documentation-out-of-your-readme updated: 2026-08-13 --- You will finish with a README that does its job in one screen, task-based documentation living somewhere with search and stable URLs, and no dead links left behind on the package registries that mirror your README. ## Before you start Separate the two audiences before you move a line. A README serves people evaluating the project and people contributing to it. A help centre serves people trying to use the thing. Those readers want different pages, and the reason the README grew is that it has been serving both. Check where else your README is rendered. Package registries, mirrors and search results display it outside the repository, and the rewrite has to survive all of them. ## Steps 1. **Read the README as a stranger who wants to use the product.** Count how many lines pass before the first useful instruction. If the answer is more than a screen, the split is overdue. 2. **Sort the content by audience.** What the project is, how to install it, how to run it once, licence and contributing details stay. Every option table, troubleshooting section, configuration reference and how-to moves. 3. **Publish the moved content before deleting anything.** Get the new home live, check it renders, then trim the README in a single commit. The reverse order guarantees a window where the content exists nowhere. 4. **Rewrite relative links as absolute URLs.** A link written as `docs/config.md` resolves against the repository and breaks everywhere the README is rendered outside it. Anything you expect to survive the move needs a full URL. 5. **Rehost the images.** Images referenced by a repository-relative path do not render outside the repository, and images in a private repository do not render for customers at all. 6. **Leave a signpost rather than a stub.** One short section near the top with a link to the documentation. Resist keeping abbreviated versions of the moved sections, because abbreviated versions become the version people read. 7. **Deal with the anchors people bookmarked.** Deep links into README headings are how developers share sections, and there is no redirect mechanism for a heading that no longer exists. Where a section was widely linked, keep a heading of the same name containing one line and a link. 8. **Update the repository metadata.** The repository description and website field, the homepage field in your package manifest, and the documentation link on your registry listing all point at the README by default. ![One README separated into contributor documentation and user documentation.](/images/guides/figures/move-documentation-out-of-your-readme.webp) *One file, two readerships, neither served well.* ## Common mistakes **Keeping a copy in both places.** The README copy is the one people find first and the one nobody updates, so the canonical version loses by default. Move it or keep it, not both. **Deleting before publishing.** A README trimmed in the same session the new site is being built leaves the project undocumented for however long the deployment takes, and that window always turns out to be longer than planned. **Moving contributor documentation into a customer help centre.** Build instructions, test commands and release processes are for people with the repository checked out. They belong beside the code, not in a section customers have to scroll past. **Assuming markdown renders identically everywhere.** Callout syntax, task lists, footnotes and inline HTML that work on your repository host degrade unpredictably on registries and in documentation generators. **Trimming the README until it says nothing.** The remaining page still has to explain what the project is and get someone running in one screen. A README that is only a link is a worse landing page than the one you started with. ## When this stops scaling A README is genuinely the right home for documentation, and not a compromise, while the project has one audience and one page's worth of instructions. Small libraries with developer users are best served by exactly that. Moving early adds a deployment, a domain and a second place to forget. Three signals mark the real threshold. The README has a table of contents, which means it has become a manual pretending to be a landing page. Non-developers are being sent to it, and they now have to read a repository page to find out how to change a setting. Or the file's history shows documentation changes outnumbering everything else, which means every docs edit is running through code review whether it needs it or not. Past that point the content needs its own home, and the ongoing question is how it stays true as the code moves. [SupportPages](https://supportpages.io) generates help centre articles from your repository, which keeps the documentation tied to the code it describes without keeping it inside a single file. If your README grew because that adjacency was the only thing holding your documentation together, that is the property worth preserving.