Mark up content so a reader can find it
None of the 4 pages read pass fully; 1 partly. The page at /blog/alineacion-cognitiva-ecommerce-guia-2025 is barely structured: No <main> element and nothing carrying role="main".
Read prompt
My website dropshippingdesdecero.com scored 37/100 on Good for Bots (Poor). Good for Bots measures one thing: whether a language model can read a site and cite it.
I need you to: mark the content up so a parser can find it.
The check it fails is "Content is marked up so a reader can find it", worth 13.04 points. What the scanner saw: None of the 4 pages read pass fully; 1 partly. The page at /blog/alineacion-cognitiva-ecommerce-guia-2025 is barely structured: No <main> element and nothing carrying role="main".
The scan checked a sample of 4 pages. It does not establish which other pages have the same issues. Use the findings below to locate the responsible templates, components or configuration, and apply the fix wherever the same issue occurs. Pages in the sample with findings:
- https://www.dropshippingdesdecero.com/: The homepage is partly structured: Only one landmark (region) outside the content root.
- https://www.dropshippingdesdecero.com/blog/alineacion-cognitiva-ecommerce-guia-2025: The page at /blog/alineacion-cognitiva-ecommerce-guia-2025 is barely structured: No <main> element and nothing carrying role="main".
- https://www.dropshippingdesdecero.com/blog: The page at /blog is unstructured markup: no content root, no usable heading outline and no landmarks.
- https://www.dropshippingdesdecero.com/recursos-gratis: The page at /recursos-gratis is barely structured: No <main> element and nothing carrying role="main".
Review the site's public page templates and shared layout components. Fix missing
content roots, heading structure and landmarks wherever they occur, including
templates outside the reported sample. Check the server's HTML response from each
page type: a shared layout fix can introduce a second `<main>` on pages that
already have one.
Semantic elements help a reader of raw HTML find the page's content and distinguish
it from navigation and other surrounding material.
Three things, all from the HTML standard. Change the markup; do not change what the page
looks like.
**1. One content root.** Wrap the page's dominant content in a single `<main>`.
```html
<body>
<header>…site header…</header>
<main>…the article, the docs page, the product copy…</main>
<footer>…site footer…</footer>
</body>
```
The standard allows exactly one `<main>` per document that is not marked `hidden`, and
its ancestors may only be `<html>`, `<body>`, `<div>`, an unnamed `<form>` or a custom
element, which makes a `<main>` inside `<section>` or `<article>` invalid. Put the real
content inside it: a `<main>` that holds a sliver of the page while the article sits in a
sibling `<div>` marks nothing. If a framework template makes the element impossible,
`role="main"` on the wrapper is an acceptable substitute.
**2. A heading outline that holds together.** Exactly one idea per level, starting at
`<h1>`, and never skipping a level on the way down.
```html
<h1>What this page is about</h1>
<h2>First section</h2>
<h3>A detail</h3>
<h2>Second section</h2>
```
`<h1>` → `<h3>` is invalid; `<h3>` → `<h2>` on the way back up is fine. Use heading
elements for headings and CSS for size: a `<div class="text-2xl">` is invisible to the
outline. If a heading is an image or an icon, give it real text and hide it visually
rather than leaving the element empty.
**3. Landmarks around the content.** At least two of these, outside `<main>`:
```html
<header> <!-- the site header: becomes the banner landmark -->
<nav> <!-- navigation -->
<footer> <!-- the site footer: becomes contentinfo -->
<aside> <!-- related content -->
<search> <!-- a search form -->
```
Two rules that surprise people. `<header>` and `<footer>` only count as the page's banner
and contentinfo when they are children of `<body>`; inside `<article>` or `<section>` they
are that section's own header and footer and are not landmarks at all. And a `<form>` is
only a landmark when it has an accessible name, so give a search form
`aria-label="Search"`.
Do not add landmarks that describe nothing: five unlabelled `<nav>` elements are worse
than one. And do not wrap the whole body in `<main>`: that puts the header and footer
inside the content root, which removes the landmarks this asks for.
The report's content and navigation breakdown is diagnostic. It measures extracted
text in marked regions, not content quality. Keep useful navigation; do not remove
links or add filler to change a percentage. If much of the text is labelled "other",
check whether the real main content has a meaningful wrapper. The reported start of
main text follows HTML order, which can differ from the visual layout.
The whole report, as markdown, is at https://goodforbots.com/r/dropshippingdesdecero.com.md?scan=cmusu2dch002h01ozh5ghrjbo. Read it first: this prompt covers one finding, and the report has everything the scan saw.
When you are done, summarise what you changed and how to check it against a running instance. Do not try to run the Good for Bots scan yourself: it only sees what is already deployed, it is rate-limited, and re-running it is the site owner's call once the change ships.