Content
Titles, descriptions, headings and the substance of the page itself — what a searcher sees before they click, and what they find after.
Duplicate page titles
Write a unique title for each page that describes what only that page is about.
- Id
- DUPLICATE_TITLE
- Fix estimate
- 4 min per page
Page answers 200 with nothing in it
Serve the page's content in the HTML, or answer 404 if there is none: an empty 200 is indexed as a page about nothing.
- Id
- EMPTY_PAGE
- Fix estimate
- 15 min per page
Missing page title
Add a <title> tag of roughly 50–60 characters that says what the page is about.
- Id
- MISSING_TITLE
- Fix estimate
- 4 min per page
Title arrives only after JavaScript runs
Send the title in the HTML the server returns; everything that reads the page before running scripts sees it without one.
- Id
- TITLE_ONLY_IN_RENDERED_HTML
- Fix estimate
- 20 min per page
Search clicks dropped vs the prior 30-day period
- Id
- CLICKS_DROP
- Fix estimate
- 20 min per page
Duplicate meta descriptions
Give each page its own one- or two-sentence description of what is on it.
- Id
- DUPLICATE_META_DESCRIPTION
- Fix estimate
- 4 min per page
High impressions but low click-through rate
Rewrite the title and meta description to better match what searchers are looking for.
- Id
- HIGH_IMPRESSIONS_LOW_CTR
- Fires at
- ≥ 100 impressions
- Fix estimate
- 15 min per page
Title barely matches the page content
Rewrite the title so it reflects what the page actually says — a mismatched title costs clicks and rankings.
- Id
- IRRELEVANT_TITLE
- Fires at
- < 0.3 score
- Fix estimate
- 8 min per page
Placeholder "lorem ipsum" text left on the page
Replace the placeholder text with real content — it is visible to visitors and search engines alike.
- Id
- LOREM_IPSUM_PLACEHOLDER
- Fix estimate
- 15 min per page
Missing H1 heading
Add one H1 heading near the top of the page that matches its main topic.
- Id
- MISSING_H1
- Fix estimate
- 5 min per page
Images missing alt text
Add a short alt attribute describing each image for screen readers and image search.
- Id
- MISSING_IMAGE_ALT
- Fix estimate
- 2 min per page
Missing lang attribute
Declare the page language on the html element, for example lang="pl", so screen readers and search engines know how to read it.
- Id
- MISSING_LANG
- Fix estimate
- 5 min per page
Missing meta description
Add a meta description of roughly 120–155 characters summarising the page.
- Id
- MISSING_META_DESCRIPTION
- Fix estimate
- 4 min per page
Clicks on a search query fell vs the prior 30-day period
- Id
- QUERY_CLICKS_DROP
- Fix estimate
- 20 min per page
A search query ranks for this page but almost nobody clicks
- Id
- QUERY_HIGH_IMPRESSIONS_LOW_CTR
- Fires at
- ≥ 50 impressions
- Fix estimate
- 15 min per page
Average search position worsened vs the prior 30-day period
- Id
- RANKING_POSITION_WORSENED
- Fires at
- ≥ 3 positions
- Fix estimate
- 25 min per page
Structured data missing required properties
- Id
- STRUCTURED_DATA_INVALID
- Fix estimate
- 10 min per page
Template image missing alt text
One image the theme prints on every page (a logo or icon) has no alt text — add it once in the template and every page is covered.
- Id
- TEMPLATE_IMAGE_MISSING_ALT
- Fix estimate
- 5 min per page
Thin content
Expand the page with genuinely useful detail, or merge it into a stronger related page.
- Id
- THIN_CONTENT
- Fires at
- < 200 words
- Fix estimate
- 30 min per page
Duplicate H1 across pages
- Id
- DUPLICATE_H1
- Fix estimate
- 5 min per page
Duplicate image alt text
- Id
- DUPLICATE_IMAGE_ALT
- Fix estimate
- 2 min per page
Empty heading tags
Give every heading text, or use a styled div where the tag was only there for spacing.
- Id
- EMPTY_HEADING
- Fix estimate
- 3 min per page
Heading levels skip a rank
Move down one heading level at a time, so an H1 is followed by an H2 before any H3.
- Id
- HEADING_ORDER_SKIP
- Fix estimate
- 5 min per page
Share card is missing tags
Fill in the four tags a share card needs: title, description, image and url.
- Id
- INCOMPLETE_OPEN_GRAPH
- Fix estimate
- 10 min per page
Meta description barely matches the page content
Rewrite the description using the vocabulary of the page itself so Google keeps it instead of substituting its own.
- Id
- IRRELEVANT_META_DESCRIPTION
- Fires at
- < 0.2 score
- Fix estimate
- 6 min per page
Low text-to-HTML ratio
- Id
- LOW_TEXT_RATIO
- Fires at
- < 10 %
- Fix estimate
- 20 min per page
Meta description too long
- Id
- META_DESC_TOO_LONG
- Fires at
- > 160 characters
- Fix estimate
- 3 min per page
Meta description too short
- Id
- META_DESC_TOO_SHORT
- Fires at
- < 70 characters
- Fix estimate
- 3 min per page
Article has no author in its markup
Name the author in the article markup: an answer engine cites what it can attribute.
- Id
- MISSING_ARTICLE_AUTHOR
- Fix estimate
- 10 min per page
Article has no date in its markup
Add datePublished, and dateModified when it changes: undated advice is quoted less and trusted less.
- Id
- MISSING_ARTICLE_DATE
- Fix estimate
- 10 min per page
No BreadcrumbList markup
Emit BreadcrumbList JSON-LD on pages below the top level so search results show the path instead of a bare URL.
- Id
- MISSING_BREADCRUMB_MARKUP
- Fix estimate
- 10 min per page
Missing character-encoding declaration
Declare <meta charset="utf-8"> early in <head> so text renders correctly everywhere.
- Id
- MISSING_CHARSET
- Fix estimate
- 3 min per page
No favicon found
Add a favicon — Google shows it next to your result on mobile, and browsers show it on every tab.
- Id
- MISSING_FAVICON
- Fix estimate
- 10 min per page
No llms.txt
Add an llms.txt naming what the site is and where its canonical explanations live, the way robots.txt names the sitemap.
- Id
- MISSING_LLMS_TXT
- Fix estimate
- 30 min per page
Missing Open Graph tags
- Id
- MISSING_OPEN_GRAPH
- Fix estimate
- 5 min per page
Organization markup has no logo
Add a logo property to the Organization block, pointing at a square image of at least 112 px.
- Id
- MISSING_ORGANIZATION_LOGO
- Fix estimate
- 10 min per page
Site identity not marked up
Add an Organization or LocalBusiness block naming who the site belongs to, so search engines can tie the pages to one entity.
- Id
- MISSING_ORGANIZATION_MARKUP
- Fix estimate
- 15 min per page
Organization markup has no sameAs links
List the brand profiles you control in sameAs, so search engines can confirm the entity against sources they already trust.
- Id
- MISSING_SAMEAS_PROFILES
- Fix estimate
- 10 min per page
Missing structured data (JSON-LD)
- Id
- MISSING_STRUCTURED_DATA
- Fix estimate
- 15 min per page
Missing Twitter/X Card tags
Add twitter:card, twitter:title, twitter:description and twitter:image so links shared on X show a preview instead of a bare URL.
- Id
- MISSING_TWITTER_CARD
- Fix estimate
- 5 min per page
More than one H1
Keep a single H1 per page and demote the extra ones to H2 or H3.
- Id
- MULTIPLE_H1
- Fix estimate
- 5 min per page
Multiple meta descriptions
- Id
- MULTIPLE_META_DESCRIPTION
- Fix estimate
- 4 min per page
Multiple title tags
- Id
- MULTIPLE_TITLE
- Fix estimate
- 4 min per page
Title longer than recommended
Trim the title to roughly 60 characters so it is not cut off in search results.
- Id
- TITLE_TOO_LONG
- Fires at
- > 60 characters
- Fix estimate
- 3 min per page
Title shorter than recommended
Expand the title with a few descriptive words so searchers know what to expect.
- Id
- TITLE_TOO_SHORT
- Fires at
- < 30 characters
- Fix estimate
- 3 min per page