Lorem Ipsum Generator

Generate Lorem ipsum placeholder text by paragraph, sentence, word or list item, plain or wrapped in HTML. Use it to fill a layout while the real copy is still being written.

Placeholder Text

1 Lorem Ipsum Generator example

One paragraph, opening line kept

1
2
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.

2 Placeholder Latin keeps reviews on the layout

Use Lorem ipsum when you want feedback on the design. The text is a scrambled passage from Cicero that a printer cut up in the 1500s for a type specimen. It has the letter distribution and word lengths of real prose without meaning anything. Put readable English in a mockup and the review turns into a discussion of the copy; with Lorem ipsum, people look at the layout.

Swap in real text before sign-off. Real copy runs longer than expected, has awkward headings and rarely fills the box neatly, so a design tested only with tidy Latin can break at launch. Use Lorem ipsum early, then test with one very long and one very short real example.

3 What each option does

Units

Paragraphs for body copy, sentences for a card or a tooltip, words for a headline, and list items for a menu or a bullet list. Count goes up to 200.

Opening line

With Start with "Lorem ipsum" ticked, the output opens with the familiar line. Untick it for text that looks less like an unfilled template.

HTML tags

Wrap in HTML tags puts each paragraph in a p element and list items in li inside a ul, ready to paste into a template or a CMS field.

Varied lengths

Each sentence has 8 to 18 words and each paragraph 3 to 6 sentences, so the block does not look machine-uniform.

How to use the Lorem Ipsum Generator tool

  1. Choose what to generate: Paragraphs, Sentences, Words or List items.
  2. Set Count (up to 200), then click Generate. Sentences run 8 to 18 words and paragraphs 3 to 6 sentences, so the block does not look mechanical.
  3. Start with "Lorem ipsum" keeps the familiar opening line. Untick it for text that looks less like an unfinished template.
  4. Wrap in HTML tags puts paragraphs in p elements and list items in li elements inside a ul, ready to paste into a template.
  5. Copy takes all of it; the panel header shows the word and character count.

How to generate placeholder text in JavaScript, PHP and Python

JavaScript / Node.js

const VOCAB = "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua".split(" ");

const rand = (min, max) => min + Math.floor(Math.random() * (max - min + 1));
const word = () => VOCAB[Math.floor(Math.random() * VOCAB.length)];

function sentence() {
    const text = Array.from({ length: rand(8, 18) }, word).join(" ");
    return text[0].toUpperCase() + text.slice(1) + ".";
}

const paragraph = () => Array.from({ length: rand(3, 6) }, sentence).join(" ");

console.log(paragraph());

// In a React app, faker is the usual choice:
// import { faker } from "@faker-js/faker";
// faker.lorem.paragraphs(3);

PHP

<?php
// composer require fakerphp/faker
$faker = Faker\Factory::create();

echo $faker->paragraph(), PHP_EOL;
echo $faker->paragraphs(3, true), PHP_EOL;
echo $faker->sentence(12), PHP_EOL;

// Which is mostly used inside a factory rather than on its own:
// Post::factory()->count(20)->create();

// In a Laravel factory definition:
// 'title' => fake()->sentence(6),
// 'body'  => fake()->paragraphs(5, true),

Python

# pip install faker
from faker import Faker

fake = Faker()

print(fake.paragraph())
print(fake.text(max_nb_chars=400))
print(fake.sentence(nb_words=10))

# Faker also produces realistic-looking data, which is usually
# more useful than Latin when you are testing a table layout:
print(fake.name(), fake.company(), fake.email())

Names and companies from Faker look real but are not. Do not seed a staging database with them and then email it.

Common errors and how to fix them

Lorem ipsum shipped to production
Add a CI step that greps the codebase for "lorem" and fails the build. It takes one line and catches placeholder text before every release.
The design falls apart with real copy
Latin has tidy word lengths and no long compound nouns. Test with a very long German heading and a two-word one before you sign off a layout.
Placeholder text got indexed by Google
It is embarrassing more than harmful, but the page has nothing to rank for. Replace the text and request re-indexing in Search Console.
Screen readers announce the Latin as English
This matters only if the placeholder ships. If a demo needs to be accessible, mark the block with lang="la" so screen readers switch to Latin pronunciation.

Good to know

The text comes from Cicero's De finibus bonorum et malorum, written in 45 BC, which an unknown printer cut up in the 1500s to make a type specimen. The first word is a fragment: "dolorem ipsum" was split across a line break, leaving "lorem ipsum", which means nothing in Latin.

Specifications and references

This tool follows the specifications below. Read them when you need the exact normative wording, for example to settle an edge case between two implementations.

Frequently Asked Questions

Why Latin and not English?

Because reviewers cannot read it. Placeholder text in a language they understand pulls their attention to the copy, and a layout review needs it on the layout.

Can I start with the classic opening line?

Yes. Leave Start with "Lorem ipsum" ticked and the first paragraph opens with the familiar line. Untick it for text that looks less like a template.

What lengths can I generate?

Paragraphs, sentences, words or list items, up to 200 at a time. Set Count and you get exactly that many. Sentences run 8 to 18 words and paragraphs 3 to 6 sentences, so the block does not look mechanical.

Can I get it wrapped in HTML?

Yes. Tick Wrap in HTML tags and each paragraph comes out inside a p element, and list items inside li elements in a ul, ready to paste into a template or a CMS field.

Is placeholder text bad for SEO?

Only if it ships. Google will index a page of Lorem ipsum, which is embarrassing more than harmful, but the page then has nothing to rank for. Strip it before launch, for example with a CI step that fails the build on "lorem".

Related

The panel header shows the word and character count, and the word counter adds a reading time estimate. If the placeholder goes into a Markdown file, the Markdown editor previews it, and the UUID generator makes the fake ids your fixtures need.

More Generators

Browse all generators

Copied to clipboard!