Wrap your main content in an article element so it can be lifted out cleanly
Place blog posts, docs, and product descriptions inside an article element within main.
What this signal tests
We check that pages carrying a piece of primary content - a blog post, documentation page, news story, product description - wrap that content in an article element, and that the article covers at least sixty percent of the text inside main. List pages and indexes are exempt because they do not present a single self-contained piece.
Why it matters for your visibility in AI
The article element is HTML's official marker for content that could stand on its own and be syndicated, quoted, or republished independently - exactly the unit AI assistants try to extract when they answer a user's question with a citation. Extractors treat article as the strongest possible boundary: everything inside is fair game, everything outside is probably chrome. The concrete consequence is precision in citation. When an AI tool retrieves your page, the article element tells it where to start and stop quoting. Without one, the tool guesses at boundaries and often quotes too little (missing your key sentence) or too much (pulling in the author bio and "related posts" sidebar that follow your conclusion).
Pass criteria at a glance
| Criterion | Passes when |
|---|---|
| Primary-content pages have <article> covering >=60% of <main>. |
How we test it
We first classify the page: if it is a list, archive, or index page, the check is skipped. For content pages, we look inside the main element for one or more article elements, then compute what fraction of the text content of main lives inside an article. Pages where article elements account for sixty percent or more of the text in main pass; pages where the article is missing or covers only a small fraction of the content fail.
Show technical detection method
If not a list/index page, assert <main> contains <article> covering >=60% of <main> text.
If your site fails: how to fix it
- Wrap each blog post body in an article element starting at the post title and ending after the post content, but before related-posts widgets or comment sections.
- In WordPress, most modern themes already emit article wrappers via the_post template tag; if yours does not, override single.php to add <article> around the the_content call.
- In a static site generator like Hugo or Eleventy, edit the post layout template to wrap the main rendered Markdown output in an article element with sensible class names.
- For product pages, wrap the product detail block (image, title, description, price, specs) in an article; keep reviews and related products outside the article.
- Avoid using article for every card or thumbnail on a list page - the element is meant for self-contained pieces, not for layout. Use section or div for repeated card grids.
Quick facts
| Maturity | ESTABLISHED |
|---|---|
| Weight | medium |
| Category | Content Clarity |
Primary sources
Related signals
Frequently asked questions
What is the difference between article and main?
main is the structural region of the page that holds the primary content; article is the content unit itself. Main is a wrapper; article is the wrapped thing. On a blog post, main is the column between header and footer; article is the post body within that column.
Should every page have an article element?
No. Home pages, category indexes, search results, and dashboards usually should not. The article element is for self-contained pieces - a blog post, a documentation page, a single product. List and navigation pages are better served by main alone, with section elements grouping content.
Can a page have more than one article element?
Yes, when each is independently meaningful - for example, a forum thread page where each reply is its own article. For a typical blog post or doc page, however, one article is the right shape, since it represents a single self-contained piece of content.
Run your own scan
Run a free scan and see how your site grades across all 155 AI-readiness signals.